Quote:
Originally Posted by Arka
So what exactly do they teach in SE at mac if they dont really teach much coding (as ive heard)? Is it just all theoretical math and logic classes :/? Does this actually help you become a better software engineer/ programmer?
|
Second year:
- Digital logic and FPGAs. I TA'd this course last year. It's decent.
- Discrete mathematics.
- Imperative programming (was functional also when I took it)
- Algorithms/Data structures
- General engineering math courses on differential equations.
- Control systems
Third year:
- Mathematical computation (how your computer does hard math problems)
- Computer architecture
- Low level programming (assembler)
- Software requirements/security (security is not emphasized)
- Stats
- Control systems
- How to do interviews and write decently
- Software testing (very poorly done course)
- Software concurrency
Fourth year
- Real time systems/control systems
- Capstone project
- Human interface design (terribly done course)
- Computer networking/security
- Databases
So in the end, the majority of courses are geared towards control systems and software design. I'm pretty sure the time investment into control systems that McMaster does for software engineering is a lot greater than other schools. It's likely because many of the professors here worked on software that interfaces with machines (i.e. nuclear shutdown systems). It's good to know, but I wouldn't exactly say it's relevant to a lot of people graduating from the program.
Other than that, the program appears pretty well rounded. The biggest issue I have, without sounding arrogant, is competency by those with any sort of authority. I know for a fact, after going through the capstone project, is that almost
nobody comes out understanding software design. Nobody I've ever worked with in any group project seems to get the whole modularity thing. I think the reason this is, is because nobody (TA's/professors) invest significant time into looking over anyone's work. As long as it
looks right (believe me, it's easy to bullshit a legitimate looking design document) - it is right in their eyes.
That, and I don't think any of them have much practical experience. Everything's simple in theory when it comes to software....
I've honestly learned more about being a competent programmer from the programming subreddit than I have from school.
If you don't care about control systems, McMaster's computer science program isn't bad. It's almost the same as the software engineering programming and the students in my opinion are in general of higher caliber.