Bass said:
Dr Herbie said:
*snip*
If you were to ask me what kind of jobs a CS education should perpare you for, I'd say high algorithmic stuff. You are competent in robotics, computer vision, business intelligence (statistical algorithms), scientific computing, machine learning, bioinformatics.
This is the kind of stuff that a background in mathematics is much more useful then knowing what "MVC" is. If you don't know what MVC is, no problem. But if you don't know what the "central limit theorem" is, your education has failed you.
I have to agree with you that an undergraduate CS curriculum should teach students broad subject areas and not narrow in on any particular methodology. I remember hearing that people in their 30s or 40s tend to become more adament and less willing to accept
alternative perspectives on ideas. If this is the case, then younglings need sufficient exposure to these topics so that they can play around with many different ideas before they regress into suit and tie state.
At my school, CS covers mostly data structures/algorithms and computer systems. Java/C are taught, but only to support coursework. Not for "job training". In fact, they are going to swap out java as the introductory language with ML since they found students
were struggling too much with java nuances, which prevented them from diving deeper into lecture.
And then we have Information Systems, which focuses more on design patterns (we learn MVC using RoR), unit testing, working on project teams (we have small real world client IS projects in our junior/senior years), creating ERDs and db schemas, code reuse,
picking up new programming languages on the job, and documentation. It is essentially where the "software engineering" skills are taught.
Whether or not both curriculum should really be one remains a question to be answered.
As for the original question, "Should programming be taught to focus on real world projects?"...I think it depends. If the goal of the programming course is to enable you to better apply complex statistical models to answer a question, then the course should
be very basic. If it's a high school intro programming course that aims to teach students what computer science is, then it should focus more on algorithms and in general how software is made. If it's a programming course part of a cs curriculum, it should
focus more on the science and not the engineering aspects.
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.