Instructor: Borja Sotomayor (email@example.com). Office: Eckhart 120-B. Office Hours: MWF 10:30-11:30
Developing a software system (e.g., an application, a web server, an operating system, etc.) requires much more than just knowing how to program. Software development encompasses multiple activities, such as systems design, implementation, testing, debugging, deployment, documentation, and maintenance, all weaved together by following a specific methodology. Not just that, software development is a highly collaborative activity, where certain soft skills, like effective communication and the ability to give/receive feedback, can be key to the success of a software project.
This class bridges the gap between knowing how to program and knowing how to develop software: it is intended for students who have just completed CMSC 15200 Introduction to Computer Science 2 or CMSC 16200 Honors Introduction to Computer Science 2, and will cover fundamental concepts and skills in software development, providing a solid foundation before students move on to majors-level classes that require developing complex software systems. The class will cover foundational topics in software development in lectures, but will also include hands-on labs, guest lectures from industry speakers, and a collaborative quarter-long project, where the entire class, divided into teams with specific responsibilities, will work on developing new features for an existing software system.
Please see the syllabus for more details.