Well, after 12 years as a web designer & developer, today is my last day in the tech industry...it was a detour (albeit a profitable one) from my dream of teaching. In a couple of weeks, I'll be in a public high school classroom teaching Web Design I
and II, and Comp Sci I and II, which includes the fundamentals of programming. The district's goal is to develop a very strong technology education department by 2010.
I am going to leave my development background, as well as the existing Comp Sci curriculum out of the discussion; the curriculum isn't the best, and I've been told that I can turn it into whatever I want. I have each student for approximately 3 hours each
week for half of the school year (18 weeks), and class size for CompSci is between 1 and 2 dozen students.
As such, the question: What programming language do you all feel is best for:
* Ease of learning and ease of use
* Availability of a free or low-cost development environment that is conducive to learning
* Introducing students to programming and programming concepts
* Giving the more advanced students a leg up on the AP exams
* Serving as a foundation for knowledge that students can build upon in college and once they are in the workforce
* Bonus points given if there is some sort of "official" basic certification for students to pursue as part of this course.
Assume that I have complete freedom over the whats and hows of implementation.
Discuss, keep it civilized if possible ![]()
Thanks!
Pete
-
-
leeappdalecom wrote:
double post
-
I mean the obvious choice is C#, the .Net framework is very good for learning OO, C# will introuduce them to C style syntaxt, and Express and Academic versions of Visual Studio are easily obtained.
Also theres plently of support and documentation, exam tracks and certification etc etc.
Plus when they leave education it will allow them to ease into commercial software development.
-
AP Computer Science exams: your courses (at least the II course) should help prepare students for those exams unless there are specific courses that serve that purpose in the school's curriculum.
AP courses teach Java since that's the language on the exam.
http://www.collegeboard.com/student/testing/ap/sub_compscia.html?compscia
http://www.collegeboard.com/student/testing/ap/sub_compsciab.html?comsciab
I would really stick with Java for both courses so you don't have to waste a lot of time in the II course teaching students the rudimentary aspects of Java like syntax and can focus on teaching them core concepts like algorithms, data structures, etc. -
Ultimately what language you use will depend on what the school is required to teach them - if the exam is in Visual Basic, teach them VisBasic; if the exam is on a C deriviative (such as Java), teach them that.
If you are asking what should you be teaching them, it once again depends. If you're looking at students who are going to be going into the computer industry, teaching a language such as C# or Java is a good way into the C/C++ family without too much overhead in memory management etc. If, on the other hand, the students are more likely to use their programming knowledge in the context of Excel in a less computer-orientated field (such as banking/finance or accounting) then Visual Basic (but not nessisarilly VB.NET) is the way to go.
Because you are teaching in an academic institution, you may be able to obtain Visual Studio for free via the Microsoft Academic Alliance - you will need to ask your school whether they can qualify under this scheme. This will be ideal if your students are going to learn VB.NET, C# or C++/C, particularly if Windows Forms are one of the things you intend to develop (it does Console apps pretty well too).
For Java development, either NetBeans or Eclipse will tend to do the job. Both are free to download.
For Visual Basic without VB.NET, I would suggest simply using the macros from inside Microsoft Access or Microsoft Excel, since the main purpose of VB (not .NET) is to create macros to manipulate data inside a spreadsheet or database app. Manipulation of data inside an Excel spreadsheet at the Visual Basic macro level is very important for people moving into finance, where Excel is used ubiquotously.
Edit: For a more theoretical bent on computer science, particularly when it comes to mathematical or linguistic computation, Haskell is also a good choice (it's IDE sucks tho). This isn't a good choice for starting out in the programming profession however. -
leeappdalecom wrote:I mean the obvious choice is C#, the .Net framework is very good for learning OO, C# will introuduce them to C style syntaxt, and Express and Academic versions of Visual Studio are easily obtained.
Also theres plently of support and documentation, exam tracks and certification etc etc.
Plus when they leave education it will allow them to ease into commercial software development.
This will prepare the students best. The lastest language features - stay on the cutting edge, sir. Forget Cobol, etc... ?
I've always seen CIS depts. dangle the "write a game" and "cool animation, 3D effects, and mashups of other media".
This excites the learner; it is compelling.
C#, XNA, and they can write games for the xBox 360 and Vista! (and XP pro sp2 though not optimized).
I personally dislike VB, and it is always lagging in the most important and newest .NET features that C# hosts, since C# is the .NET native language and VB.NET is not.
My .02 -
evildictaitor really got it down for classical CS training.
My 2 cents is that Java would be a good starter for high school students (allows to learn C derivatives as said already, plus is a little friendly to newcomers is what I find).
Anywho, what I would suggest though, is that to get your youngish students really "into" programming, I would offer the course (for both I and II probably) in the classical programming style (teaching the theory and concepts, do projects that treat basic text data and I/O).
Then the other half could be focused on using the said classical CS training to make more interesting projects, like graphical projects using Processing. I would think that would get your students really involved as its more on the creative/fun side of programming. Making simple interactive graphical projects is definitely in the "now" of the industry, plus its a cool way to keep students motivated, is what I would think. I wouldnt expect many students to like staring at static lines of code many hours a day when they're new to the whole thing.
Processing is an IDE using Java "to program images, animation, and interactions" and its fun to use.
The site: http://processing.org/
Examples: http://processing.org/exhibition/index.html
Learning for beginners: http://processing.org/learning/basics/index.html
-
Please GOD tell me you're coming to work in my school. Tech classes are 100% boring.
And they don't teach a language here at all
-
Lloyd_Humph wrote:Please GOD tell me you're coming to work in my school. Tech classes are 100% boring.
And they don't teach a language here at all
Then what do they teach?
-
-
What about BlueJ and the accompanying book and education materials?
I did an OU course in it a year ago; and whilst I was irritated about how much it hide it's definately a good starting point for OO -
The billions have already been made in the PC and web programming worlds.
Do your students a favor and teach them programming skills that will give them an edge in the future, such as robotics. -
First, thanks for all of the discussion. It's very helpful, especially since I am not a "traditional" programmer.
Randolpho wrote:
Well, in PA, in order to teach, you need to be certified. Certification requires having some form of education background -- either majored or minored in .edu as an undergrad, or enroll in a post-grad certification program. My BA is in English & History, so when I decided to pursue teaching, I found a certification program that was actually an M.Ed. with certification. My primary certification is in English since that was the path of least resistance for me. In addition to classes, you also need to student teach and take a couple of exams. Once I got my initial certification in English, getting add-on certifications was a matter of taking the subject-matter exam and then apply for additional certification if you passed. So, in addition to English, I am also certified to teach Social Studies, Business & Computer Technology, and Technical Education.
Computer Tech as an overarching topic can be found in both the Business & Computer Science certification (exam touches on office applications and that sort of thing) as well as the Technical Education (which touches on the more technical aspect such as ABC's of programming, TCP/IP, and that sort of thing.
It's important to note that teaching requirements can vary quite a bit between states. As far as money goes, that also varies; I've seen as low as $20k. In the public district that I'll be teaching in, I'll be making almost $50k, which is a significant pay cut over what I'm making as a developer...but I'm not in it for the money. I'll also probably do some freelancing work when time allows.
Feel free to email or PM me if you have any specific questions.
Pete -
blowdart wrote:What about BlueJ and the accompanying book and education materials?
I did an OU course in it a year ago; and whilst I was irritated about how much it hide it's definately a good starting point for OO
It's god awful. We've finally ditched it this year as students ended the course understanding things less than they did at the start. If you don't undrstand the basic mechanics of programming, BlueJ can only hinder you. -
Detroit Muscle wrote:The billions have already been made in the PC and web programming worlds.
The reason the early pioneers made billions from PC and the Internet is because of the risks involved. They took that risk, it paid off. Not everyone likes risk because risk often doesn't pay off.
Robotics is a great area to study, but please don't underestimate the business demand for, and profitability of software development.
-
leeappdalecom wrote:I mean the obvious choice is C#, the .Net framework is very good for learning OO, C# will introuduce them to C style syntaxt, and Express and Academic versions of Visual Studio are easily obtained.
Also theres plently of support and documentation, exam tracks and certification etc etc.
Plus when they leave education it will allow them to ease into commercial software development.
I agree. However, I have seen both the local community colleges as well as the Universities resist teaching either C# or VB in the computer science department. I understand this is a problem across the country. I lobbied for several years at a local college to use either or both C# and VB with Visual Studio in their introduction and intermediate programming courses and they simply refuse to do so. They are still using C, C++ and Java as enrollments fall.
I am curious about what other developers have encountered in this regard.

-
raymond wrote:
I am curious about what other developers have encountered in this regard.
I often have the priviledge of speaking to University Professors in Maths and CS, and they often tend to shy away from using C# or VB simply because it's propietary, and they don't want to be tied to a provider.
They'd actually reduce their student's own ability to get jobs, because they'd prefer to be attached to Sun Systems (who can do no wrong) than to Microsoft (who, we all know, is second only to Al Gore in evilness)
-
evildictaitor wrote:
The reason the early pioneers made billions from PC and the Internet is because of the risks involved. They took that risk, it paid off. Not everyone likes risk because risk often doesn't pay off.
Robotics is a great area to study, but please don't underestimate the business demand for, and profitability of software development.
I am currently doing robotics research towards my MSEE. Software is the most challenging part of robotics.
You could compete with MS in PC software. Or you could compete with Google in Web software. Or you could compete with NOBODY in coal mining robot software.
Getting into PC or Web programming is what Wall Steet calls the "rowboat approach" - always looking backwards, at past successes.
Thread Closed
This thread is kinda stale and has been closed but if you'd like to continue the conversation, please create a new thread in our Forums,
or Contact Us and let us know.