Don't know if you are also interested in computing education in other countries (in my case germany). I tried to translate the school names/types but they might not be correct. The first part might not be so interesting for you, you may skip it. 1: Well in middle school we practically had only stuff like how to use word and nothing else was offered (most kids did know more about computers than the teachers). At that time I learned Flash with a bit of ActionScript, by myself. The school didn't have a beamer so teachers used blackboards and overhead projectors. After that I went to something thats a combination of your high school and an apprenticeship (called IT-Assistant). There I learned Assembler, C and C++. As well as some analogue and digital wiring and of course windows administration. The teachers that had access to beamers (not in every room) used them often. However teachers that actually teached programming languages or the other technical disciplines used them more often than for example teachers that taught math or business administration. After finishing I did an internship in a game development studio, there I propably learned most of the things I know now. 2: Then I went to college to make my bachelor in "Medieninformatik", a combination of computing and media design. I didn't actually finished it. I did all the courses, but when I was writing my bachelor thesis I was not into the subject, lazy, didn't like the language and didn't know what to write... To answer you question many teachers use beamers and powerpoint. The college also offers a learning/content management system (called moodle) and a few teachers also use that. Many teachers don't use paper and offer their presentations, materials, source codes on their website. Most propably do so because many students use a laptop anyway. Again the teachers that actually teach technical disciplines used modern media (beamer, moodle, internet, laptops) more often than others. Many teachers don't take roll and the one that do, do have the worst and most uninteresting classes that would be empty if they weren't. Classes I would like to take, but that weren't offered: -Compiler design, I did buy the dragon book, but found it too hard to read/follow. Some simpler explanation would be nice, but the college didn't offer anything in this direction. -Cryptography, I did read the and enjoy the book "Practical Cryptography", but again there where no courses offered. When I was looking for a subject for my bachelor thesis I couldn't find any teacher that would do a thesis that contained anything in this direction. -Writing secure software (not security software), actually this might be something that should be part of software engineering. Most of the time you only do hacks. Actually learning how to write software that doesn't contain bug and security holes was never teached. Most teacher think it is enough to use Java or some application server to make software secure. -Game development. Was not offered, I had 2 courses in computer graphics but they were way to simple. Classes I did have to take but would prefer I didn't: -Business administration, I already had that before. And I generally find it uninteresting. -Project management, well it was nice to know how a project is managed, but some of the development models seem to be used just to say "I develop software the way it is recommend by ISO ... or DIN ...". And as far as I know most companies have project managers that do the planning, not the developers. -Operating systems, generally it would have intrested me to learn more about Linux. However, the actual classes I visited should have been called, Linux shell scripts for dummies. -computer graphics 1, the teacher was a huge XNA fanboy. When I submitted my OpenGL application he was like: What some of the header files are from 5 years ago? This can't be modern. I would like to see a better check of dependencies. For example we had programming 1 and 2. But you could enroll in programming 2 even if you didn't manage to do the first (and the first one was really easy). That resultet in a huge slowdown. And if you were supposed to work in groups, you could end up with someone that didn't have the slightest clue about programming. The same problem arised in other classes. Also we almopst exclusivly used Java. Only one teacher required us to use C on Linux to write a small application that used RPC. The students that never learned C/C++ by themself had real problems in doing so and most ended up useing a modified version of someone elses program. In some projects I also used C++, C# and Scala, but it was never required. What did it bring me in my job. Well currently I don't work. But I was working for a small development studio that used TCL and C/C++, most of the things I learned didn't help very much. Most things I learned by myself help me more. Various programming/scripting languages, OpenGL, xml and transformations, ... What I would suggest? -Even if it is not modern, a basic understanding of C/C++ especially pointers is often required. -If anybody needs a scripting language, I can recommend Python. I wouldn't recomend Tcl as it is not as clean/maintainable. -Don't use always the same IDE, let the students try some out. Maybe teach them how to write a makefile, so they understand whats a compiler and whats a linker. For example students don't know how to start their own Java application without Netbeans or Eclipse. (I am serious!) -Try to teach them how to handle projects that do use more than one language. -Try to make your projects interesting. E.g. if your students are supposed to write a sorting algorithm (quicksort or something) don't let them sort an array of random numbers. Give them an actual use case. Don't know a good example for that one, at the moment. -Maybe let them choose their own project. Ask the students what software they would like to write and then create a task for them that involves their decision. Sorry for my bad english. Some parts sound strange even to me, but I didn't know what to write instead. -Christoph On 07.10.2011 18:30, Bob Pendleton wrote:
I went to school way back in the dark ages starting college in fall 1971. I then went back to graduate school in starting in January 1981. I now teach at Austin Community College in Austin Texas. So, I have a limited view of what is being taught in the world at large and a limited view of how it has changed. I also have no good idea of how the educational system is meeting the needs of the students. At the risk of starting a huge flame war, I would like to ask you all to tell me about the courses you had/have to take in school and what they were worth to you when you got out into the working world. Also, what kind of classes do you wish you had taken. What kind of classes you wish had been required. And, what books, online resources, materials you use to fill in the gaps. Also, did you schools do anything "interesting" to aid your learning? Did they use online systems, or was it all just sit in a class and listen traditional lectures? To give a silly example, I've eliminated the use of paper in my classes. I have flexible due dates on homework and projects (why not, the computer does most of the grading). I've also eliminated in class tests. I only take roll the first couple of weeks to make sure people are coming to the right class. OTOH, I work with people who still do everything on paper, take roll every class and make attendance 10% or more of the grade. Have your instructors embraced the 21st century or are they still holding onto the 19th century? I want to hear your experience and opinions on computing education. Bob Pendleton P.S. The school I went to changed their name from "The Computer Science Department" to the "School of Computing". They were never comfortable with the use of the term "computer science" and I agree with the name change. Despite occasional slip ups I've stopped calling is computer science and started calling it simply "computing". Oh, yeah I went to the University of Utah.
--------------------- To unsubscribe go to http://gameprogrammer.com/mailinglist.html