Hacker News new | ask | show | jobs
by Shank 3854 days ago
I'm currently in an undergraduate program for Computer Science at the University of Wyoming.

At my level (third year Computer Science classes), I've had the following class composition:

- 2 classes dedicated to learning C++ (COSC 1010 was skipped, but included here for numbers, and COSC 1020)

- 2 classes dedicated to algorithms in C++ (COSC 2030, 3020)

- 1 class dedicated to math (COSC 2300, discrete structures)

- 1 class dedicated to functional programming (3015) (mostly proofs related to recurrence relations)

In the future, it looks like my courses will be filled with networking, operating systems, compilers, and a couple other math topics.

The problem is that most students only get a very foundational introduction to programming in this program. Students are tasked with writing code, but only limited quantities in very specific areas. That's algorithm development and implementation.

The answer might be that students should be taking software development or some other degree, but right now CS is the route most students try to take to become developers. This isn't a good approach, because at the end they have very little development experience -- only some algorithms and knowledge of computers.

I too would answer with "self taught" for how I learned to program -- definitely not from this program thus far.

1 comments

In my opinion, it is very easy to teach the basic principles of software development and design. Algorithmic thinking is much harder to teach. A CS background sets you up to contribute ideas and produce efficient solutions to challenging problems. A software development background sets you up to implement ideas and solve problems quickly.

Obviously these are generalizations, but that's what I have seen in my experience.