[gameprogrammer] Re: State of Computing education

  • From: Christoph Harder <shadowomf@xxxxxxxx>
  • To: gameprogrammer@xxxxxxxxxxxxx
  • Date: Fri, 28 Oct 2011 12:44:34 +0200

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


Other related posts: