Course Number: CS 262
Transcript Title: Programming Practices
Created: February 17, 2015
Updated: July 10, 2015
Total Credits: 4
Lecture Hours: 40
Lecture / Lab Hours: 0
Lab Hours: 0
Satisfies Cultural Literacy requirement: No
Satisfies General Education requirement: No
Grading options: A-F, P-NP, audit
Repeats available for credit: 0
Introduces and establishes practices for developing large-scale software systems, including relational databases, software development tools, distributed version control, inspection and test, and agile methods. Prerequisite: CS 162. Audit available.
Upon successful completion of this course, students will be able to:
- Construct and maintain a relational database, including normalization. Evaluate the ACID properties of a database.
- Use modern tools for program construction and delivery, including configuration management systems and continuous integration services.
- Use distributed version control for large, sophisticated software products, utilizing branching, merging, tagging, signing and similar features of the system.
- Use industry-grade techniques for software inspection and test, including Fagan inspection, unit test frameworks, regression test frameworks and test coverage tools.
- Apply practices from agile methods to software construction, such as pair programming, test-first, and standups.
Outcome Assessment Strategies
Homework, observation, class discussion, examination.
Course Activities and Design
Lecture, in-class and out-of-class assignments, discussion and examination.
Course Content (Themes, Concepts, Issues and Skills)
- relational database
- ontinuous build/integration
- bug tracking
- build systems
- configuration management systems
- distributed version control
- test driven development
- unit test
- regression test
- acceptance test
- pair programming
- iterative development