An introduction to engineering design processes, illustrated by the design and implementation of a software system, and to effective oral and written communication in a team context. Principles of software design, project management and team work are developed in the lectures and tutorials, and students apply these concepts in the laboratories as they work in a team to design and implement a complex software system. Students learn and practice oral and written communication techniques in lectures and in meetings with their communication instructor, and apply these techniques in a variety of documents and presentations, such as short status reports and longer design proposals and design reviews. Students learn software development tools such as version control (git), debuggers, code verifiers and unit test frameworks and gain experience in graphical user interface design and algorithm development.
45.7 (Fall), 49.6 (Winter), 95.3 (Full Year)