Hacker News new | ask | show | jobs
by indomitable 1521 days ago
I've been saying this for years. For background: I started my undergrad in 2003, studying Electrical Engineering and Computer Engineering. I ended up switching to Computer Science in 2006 and graduated in 2009, which is also the year I started working as a software engineer. I then did my M.S. in Computer Science while working full-time.

I have often made the comparison that Computer Science and Software Engineering have a similar relationship to Physics and Electrical Engineering. When I was studying EE, I remember that we had a course for Electrodynamics that was offered by the EE department, but the Physics department had their own version of the same topic. Engineering courses are usually more oriented towards tools and applications, and less theory.

I can totally see a Software Engineering degree (or dept) that might have courses with the same titles as those under CS but with a similar shift away from theory. For example, I would imagine a CS Algorithms course using the CLRS book while the SWE version might use something like the Algorithm Design Manual for a textbook instead.

I would see the SWE degree having CS electives and vice versa, but I would still imagine different required core courses. A CS degree might need more math pre-reqs, but I don't think SWE needs as much. I think SWE needs to cover more topics like software testing (I feel like that's almost non-existent in schools), and process management (scrum, kanban, story estimation, CI/CD), technical design and documentation, and more applied practice.

And I don't believe bootcamps are the answer here. Maybe if they were longer, but I wouldn't call them bootcamps at that point, just a trade school.

1 comments

For reference, I graduate from a middle of the road state school in May with a degree in software engineering. Here were the required major courses:

- Introduction to Software Engineering

- Web Design and Development for Small Business

- Graphical Interface Programming

- Intermediate Web Development

- Networking and Data Communications Systems

- Designing User Experiences

- Fundamentals of Project Management

- Object Oriented Systems Development

- Database Management Systems

- Systems Analysis and Design

- Introduction to Programming

- Structured Programming

- Object-Oriented Analysis, Design, and Programming

- Algorithms and Data Structures

- Software Engineering I

- Operating Systems

- Networking

- Calculus I

- Calculus II

- Discrete Mathematics

- Elementary Probability Theory

- Introduction to Statistical Analysis

- College Research Paper

- Physics I

- Biology: Atoms to Cells

- Senior Project

- + two major electives (mine were an independent study building a SCARA robot that is remote controlled and a second independent study on the use of drones in wildfire mitigation)