Live data from Hacker News

What did you cover in your undergrad CS degree?

catalystclass.com

31–40 of 57 posts

Re: What did you cover in your undergrad CS degree?

#31

Personally I find things like version control and system administration to be things that students should learn for themselves. They should be encouraged, even actively encouraged (in fact they are already in most institutions) but there shouldn't be a class dedicated to this stuff. You are in University, studying CS ffs. If you can't learn such petty things for yourself, what good are you?

Things like version control should be taught along with the "first week setup" stuff in courses that cover CS topics. For example, in your CS101 class you should learn how to do some basic version control while you're learning to write your first Python/Java/whatever "Hello World". This way you can all be learning about Git (or whatever is being taught) together and students and maybe TAs can help out with skills (though email, course discussion pages, etc) so that the professor can spend more time on course content.

One of the big values of college is having a lot of other people around you learning the same things at the same time. This can be helpful when learning about subject matter and about tools like version control.

Re: What did you cover in your undergrad CS degree?

#33

Earlier quoted context omitted.

While I agree that a course on version control wouldn't make any sense, I'm pretty torn about this. Most of the developers I know have shitty git habits, and it's not an accident.

I think the best approach is to integrate tasks like version control across many subjects. For instance, many programming exercises in various subjects taught at my university give the students a basic framework with missing functions, or a test harness, or some other piece of code that needs to be finished. These could have been shared via a version control system, and delivery could be made that way as well (using…

I agree with integrating version control into the exercises/labs. When I was at school, we had to submit our work over email/Blackboard, but submitting work through a version control system makes much more sense.

Re: What did you cover in your undergrad CS degree?

#34
Very little that was directly transferable to the real world. Some may argue this doesn't apply to CS, but I think applied computing science is what I'd look for.

Things that were not covered included:

- Basic business skills

- Basic sales skills (We all have to sell our ideas, be it to peers, departments, customers.)

- Storytelling skills

- People networking skills

- Understanding very few businesses have technology problems, but instead business problems that they are trying to solve with technology.

- You don't understand anything if you don't understand how the data in any system inputs, exists, interacts, and outputs. You don't understand the business if you don't understand the data. You should not be allowed anywhere near building software for an organization if you don't understand the data.

- Understanding that the data in many ways is the system. No software/system is useful without data.

- Learning an organization's competitive advantage and magnifying it with software. Too often programmers interpret things killing the competitive advantage.

- It's not about you, it's about the user. Users rarely care what you code in, or the frameworks, or whatever you've done to make your own life selfishly easier and continuing to neglect actually getting to know their world, their data, and the the problems they face with it.

- Marketing skills - eliminate feature babble and focus on benefits once you've been in user's shoes working on users problems.

- Communicating with the world to first understand, and then address their needs. You are no better than a technically clueless business guy if you make assumptions as blindly in other ways about the business process.

- How the real world does not start every project with a clean slate like CS projects. This is probably one of the biggest gaps.

- Learning to learn other people's code, refactor + more.

Instead, we learned the theoretical using many languages building the same kinds of things over and over for 4 years. It was awesome to the geek in me. Sprinkle in some UI or database skills, and yes, I did get very good at learning any technology I needed, but implementing it in a meaningful, sustainable way. But the real world used very little of what I learnt for 4 years.

When I took CS in the late 90's I had to learn to build web apps, databases, load balancing, administrating servers, all on my own, not to mention getting a business education largely by learning to swim by diving in.

The social skills are really big. Partially I think CS attracts folks that aren't extroverted, and it can be a problem.

We're at or nearing a crossroads in my opinion where the entire world has come to the internet and technology, and those building technologies and online need to be better bridges in interfacing with humanity.

Re: What did you cover in your undergrad CS degree?

#35
"We believe that the bar for training and hiring of front end JavaScript developers is even more attainable, and that is why we have chosen to be the first, and as of now, the only training program specifically for that market."

You know what I want--a twelve week, intense course on scientific computing in something like Python--for people who already know some core scientific subject and statistics. If we took http://www.drewconway.com/zia/wp-content/uploads/2010/09/Dat... as a guide (and yes, yes, data science is just a name for something that has existed for twenty years), I want a program to move people from traditional research to data science.

Re: What did you cover in your undergrad CS degree?

#36
post #25

The key question that some have touched on is this: What should comprise a CS degree? (E.g., should these (and/or other areas) be a part of a CS degree?) I think the right balance needs to be struck between the academic and vocational views. Big-O, grammar, automata, etc. are the fodder of academic papers, not the Real World. But when you talk about higher ed, here's the rub: its supposed to be the theoretical founda…

> Big-O, grammar, automata, etc. are the fodder of academic papers, not the Real World.

I have personally needed all of those things in the Real World.

I suspect that if more people remembered the stuff they learned in college, it would get a lot more use. "I'm never going to use this in the real world!" can be a terribly self-fulfilling prophecy.

Re: What did you cover in your undergrad CS degree?

#37
post #2

This doesn't look like a CS degree---this looks more like software engineering requirements. CS and SE focus on distinctly different things. I might suggest changing the page title.

Only one or two more check boxes on the survey are covered by a SE degree over a CS one at RIT. I think this is largely vocational degree not even SE. That might reflect an industry bias in the CS degree though (revision control required in all classes, technical writing and software engineering are required in the cs degree)

Edit: I should note that SE and CS are separate departments at RIT, there is a real difference in curriculum and that difference is not what this survey is getting at. A major in the IT department is what is closest to this survey, not SE. Somewhat anecdotal because its one University though.

Re: What did you cover in your undergrad CS degree?

#38

CompSci should include at least a semester or two of business classes, including the delegation lessons in the HBS article posted earlier today.

Be careful when saying things of the form "$DEGREE_PROGRAM should also include at least one class in $SUBJECT." You can make persuasive arguments for the relevance of a dizzying range of subjects, and at some point you have to prioritize.

Re: What did you cover in your undergrad CS degree?

#39
post #34

Very little that was directly transferable to the real world. Some may argue this doesn't apply to CS, but I think applied computing science is what I'd look for. Things that were not covered included: - Basic business skills - Basic sales skills (We all have to sell our ideas, be it to peers, departments, customers.) - Storytelling skills - People networking skills - Understanding very few businesses have technology…

Where I went to school (Purdue) there was the school of engineering and the school of technology. The theory (at least) was that technology had more of the business side of skills as you suggest.

The downside was that more time on business meant less time on engineering, and you ended up with people that dropped out of the engineering school, combined with people that may not have been able to hack it in the first place, and a tiny minority of people that could have passed in the engineering school.

This means that as a signalling tool (which is a large part of the value of a college degree in the workplace) a technology degree was far less valuable than an engineering degree, which causes a feedback loop to keep the number of people with actual engineering talent low in the Tech school.

This is from my observation of EE vs EET as I knew people in both majors. CS was in the school of science, not engineering so it had no equivalent in the school of technology.

Post reply on HN