What is the difference between Management Engineering and Software Engineering?
Software Engineering applies computer science and engineering to the design of software systems. Software Engineering students take a large number of computer science and computer engineering courses at the interface of digital hardware and software, as well as core software engineering courses on software development.
In contrast, Management Engineers design, implement, and manage complex management systems. Increasingly, those management systems are implemented as software and information systems. Therefore, information/software systems design comprises a major theme area in Management Engineering, with a number of courses falling in the areas of computer science, software engineering, and information systems. In this regard, of the 13 other engineering programs offered at the University of Waterloo, only the Software Engineering and Computer Engineering programs have more such courses in their core curriculum.
While Management Engineering students learn how to design and build basic information systems, they do not get training in low-level systems programming. For example, a software engineering student will learn about real time systems, concurrent programming, and operating systems while Management Engineering students will not have any exposure to these topics. Likewise, Software Engineering students do not learn about important application areas of Management Engineering such as supply chain management, operations planning, and inventory control nor do Software Engineering students learn fundamental methods such as stochastics, simulation, and optimization as part of their core curriculum.
Simply put, Management Engineering students learn to solve large real-world problems of businesses and organizations that are implemented in software, while Software Engineering students learn to solve a wide range of software problems including low-level systems programming.
What is the software component in the Management Engineering curriculum?
In first year, students take MSCI 121 Introduction to Computer Programming, where they learn to program using a high level programming language. No prior programming experience is expected!
In second year, students take MSCI 240 Algorithms and Data Structures and MSCI 245 Databases and Software Design. In MSCI 240 students further develop their programming skills by learning how to use data structures and algorithms to solve larger problems. In MSCI 245 students dive into more advanced programming topics, including the design of multi-tier software systems such as websites with a database backend.
In their 3A term, Management Engineering students take MSCI 342 Principles of Software Engineering. In this course, students learn how to work as a team to design software systems that solve a client's problem. An important part of Information Systems, and Management Systems in general, is the design of these systems for use by humans. Therefore, Management Engineering in their 3B term take MSCI 343 Human Computer Interaction.
In their 4A term, students take MSCI 436 Decision Support Systems, where they are challenged to integrate prior skills and knowledge learned from the two major streams of the program – operations research and information systems – to solve a real-world complex problem.
A large number of students further develop their software design skills through their capstone design project (MSCI 401/402) in the 4A and 4B terms. Management Engineering students routinely design sophisticated mobile and web applications to solve real-world problems. Recent examples of such projects include a mobile application to improve the online shopping experience, a merchandize-comparison tool for TJX Canada, a mobile application to make reading books more social, and a software tool to manage information about alumni careers.
Finally, students wishing to specialize further in this stream, are able to take a number of electives in this area, including MSCI 446 Data Mining, MSCI 541 Search Engines, MSCI 543 Analytics and User Experience, and MSCI 546 Advanced Machine Learning, as well as other technical electives offered by other engineering programs.
Do Management Engineers work on software on co-op or in their full-time jobs after graduation?
Software and information systems comprise one of the three theme areas of Management Engineering, together with Operations Research and Analytics and People and Organizations. Students that – through courses and co-op – choose to specialize in the software and information systems area, may build careers as software developers/engineers.
Many students find their passions lie at the intersection of information systems and the other two areas. At the intersection with Operations Research & Analytics, management engineers work in the growing field of data science and machine learning. At the intersection with People & Organizations, management engineers work as managers of software teams or as project/product managers.
Find out more about Management Engineering Careers.