Description and Topics

Course Overview #

Software Design (SoftDes) is an introductory course in computing that teaches students how to design, write, and maintain software in the Python programming language. SoftDes is not just a programming course, but rather a course that explores and teaches the practice and profession of software engineering. This includes describing problems and their solutions in a logically precise way, writing well-styled code that clearly communicates the intent behind the code, and analyzing the design, usability, and performance of software. This also includes discussion of ethical issues that are becoming a critical part of software engineering in an increasingly technology-reliant world.

Thus while much of the day-to-day work of SoftDes involves programming, the course concepts cover a far broader range of ideas. Students will learn how to break a problem down into smaller, more concrete tasks, how to obtain and handle data in an ethical way, how to use version control to maintain and collaborate on code, and how to choose the right software or programming tools for a given task. As in other introductory courses, students will also learn standard constructs in Python, including basic syntax, data types, common libraries and modules, classes, and object-oriented design. Finally, students will also learn about common ethical issues that may come up in the practice of software engineering, and ways to approach these issues in practice.