Principles of Software Development
Fall 2021

Course Description

A study of software development. Software engineering principles and structured methods are discussed as a prelude to the focus on object-oriented approaches. All phases of the software lifecycle are covered, including analysis, design, implementation and testing, and maintenance. Other topics include user interface design and development, software reuse and the design of reusable software components, software patterns, and web-based client-server programming.


Experience with an object-oriented programming language.

Office Hour Schedule

Additional hours to be announced.

Day Hours Instructor Location
Make sure to use the correct link!
Monday 9:00am ‐ 10:30am Nikhil Online via Zoom
Tuesday 5:15pm ‐ 6:15pm Sami Online via Zoom
Wednesday 10:00am ‐ 11:30am Nikhil Online via Zoom
1:00pm ‐ 3:00pm Berk Online via Zoom
1:30pm ‐ 3:00pm Sami Online via Zoom
Thursday 9:15am ‐ 9:45am Sami Online via Zoom
Friday 1:00pm ‐ 2:00pm Berk Online via Zoom

Practice Assignments

To sharpen your Java skills and make sure you are ready for CS 601 it is advised that you complete the following practice assignments. Start with Practice as it outlines how to set up your development environment for this class.

There are also lots of good practice problems you can find on the internet.