Introduction to Software Engineering
“The only things that matter are lives and money.”
Text: (none)
Prof: Dr Elisa Baniassad, Dr Gail Murphy, Dr Marc Palyart
Elisa shares a lot of her experience, and how things work in the “real world”, which is helpful for an engineering class. She is also pretty approachable and sympathetic to any concerns that you might have. Dr Murphy created a lot of useful examples, and live-coded in class which was also a great way to learn. Dr Palyart followed a similar approach to Dr Murphy.
Difficulty
The on going “agile development” project during labs is the only thing that really matters. It is where most of your learning takes place, and you don’t get a lot of help for that, so its pretty tough. The classes look at various buzzwords, design patterns and software development processes and these are assessed in the exams. The in class material is not very hard to understand at all.
Key Concepts
Design of Web Applications
Implementation with TypeScript, JavaScript, Mongo etc
Software development processes
Testing
Hard Concepts
Networking: If, you, like me, have never taken a networking course, a lot of how the internet etc is working will seem like magic.
Nodejs: Return of asynchronous programming. Common source of bugs.
Git: Took me a while to get comfortable uploading etc with git.
Self-learning: Sometimes, you just have to use google and your own ingenuity to come up with a band-aid solution to get stuff working when you understand less than you would like and don’t have time to learn more.
Conclusion
Project is great experience, working as a group and learning new skills. Really hard though! Classes are okay, not much you couldn’t read from a book.