Skip to main content

CS 253 Syllabus

Software Development

Revised: August 2018

Course Description

Techniques for design and construction of reliable, maintainable, and useful software systems. Software development methodologies and object-oriented design for medium and large projects.

Prerequisite & Notes

  • Passing CS 151 with at least a grade of C.
  • 3 credit hours.



After completing this course, you will be better able to apply your skills to the development of medium to largescale object-oriented software systems. You will learn how to program using Javascript. You will be comfortable using the Linux command line. You will have an understanding of the main features of the primary software development methodologies. You will have experience using a number software development tools widely used in industry including source code version control systems and unit testing frameworks. You will understand a set of software design patterns and how to effectively apply those patterns.



  • Head First Design Patterns by E. Freeman, E. Freeman, B. Bates, K. Sierra, and E. Robson, O'Reilly Media, 2004. Other reading resources will be used extensively including
  • Eloquent Javascript: A Modern Introduction to Programming, Second Edition, by Marijn Haverbeke,
  • Web Development with Node and Express, by Ethan Brown, O'Reilly Media. 2014.


Grading Procedure

Grading procedures and factors influencing course grade are left to the discretion of individual instructors, subject to general university policy.

Attendance Policy

Attendance policy is left to the discretion of individual instructors, subject to general university policy.

Course Outline

  1. Javascript Basics
  2. Linux Command Line
  3. Software Version Control using Git
  4. Overview of Software Development Methodologies
  5. Software Testing Basics
  6. Web Applications with Node and Express Basics (very briefly)
  7. UML Class Diagrams
  8. Java Design Patterns
Office of Web Services