|
|
|
Ask HN: Help redesign a Comp Sci major
|
|
8 points
by mitguy
5045 days ago
|
|
I have the task of refocusing the Comp Sci program at a small liberal arts college, with an even smaller Comp Sci department. The trad MIT/CM/CalTech theoretical program just doesn't work for these students. Emphasis should be on employable computing skills that can be delivered almost entirely by 1 prof. What should I teach? What can be cut out? What would you call the major? |
|
One of the biggest problems I've found with recent graduates is that the programs they've come from have been nothing more than trade schools for Java and PHP developers, and most of them lack even the basic underlying knowledge of things like algorithms, paradigms and how to make efficient code. This is not Computer Science, this is basic programming and is no better than what you'd get from the numerous video lectures on the web.
In short, employable skills are best left to employers, and academic subjects are best left to academia.
If it were my choice I'd make Computer Science a purely theoretical course from the outset. If these kids don't have a background in Math give it to them so that they can read through the likes of Introduction to Algorithms and TAOCP with no issue. Don't even let them touch code unless it's to illustrate a theoretical aspect of CS.
Once they've got a solid year of CS behind them and they're all of a sufficient standard in the theoretical aspects of CS then they can be introduced to programming. However, I'd steer clear of the employable languages and force them into Python, Lisp, Haskell, Prolog, R and co to reenforce the theoretical background.
Of course, you need these graduates to be employable, so why not offer a course titled "Internship" during the second year? Let them spend a few days each week working in a real company with real developers that can teach them real skills? I graduated from a modest CS programme and thanks to my numerous internships I was offered interviews left right and centre. I learned more about programming in an eight week internship then I did in an entire year at university, despite most of my second year being about learning to program, and because I had real world experience in employable languages the university didn't cover like C# I walked into a job while others in my class with better grades struggled.
You get the idea. Please stop turning academia into a trade school and teach these kids real CS. If you want them to be employable offer a mandatory course where students have to work in a real business and are forced to pick up programming from people that actually know what they are doing.