CS 372 Spring 2016 > Syllabus
CS 372 Spring 2016
Syllabus
COURSE: | CS 372 Software Construction. 3 credits. |
Time & place: | 3:30–4:30 pm MWF, 104 Chapman. |
Prerequisites: | CS 311. |
INSTRUCTOR: | Glenn G. Chappell, Dept. of Computer Science. |
Office: | 201B Chapman. |
Office hours: | 11–1 MWF, 11:30–1 T on spring 2016 class days, or by appointment. |
Office phone: | [474-]5736. This is also voice mail. |
E-mail: | ggchappell@alaska.edu |
Paper mailbox: | Inside the Computer Science Department office, 202 Chapman. |
TEXT: | E. Freeman, E. Robson, K. Sierra, & B. Bates, Head First Design Patterns |
Recommended: | R.C. Martin,
Clean Code: A Handbook of Agile Software Craftsmanship
S. McConnell, Code Complete, 2nd ed. |
WEB PAGE: | http://www.cs.uaf.edu/~chappell/class/2016_spr/cs372 |
Course Topics & Goals
CS 372 covers techniques for designing and coding complete computer applications and other large-scale software projects. Topics include use of version control, advanced features of modern C++, software-development methodologies, unit testing and test-driven development, build tools, code review, debugging, performance measurement, and object-oriented design, including refactoring and standard design patterns.
After taking this class, students should:
- Have increased proficiency in software development—specifying, designing, coding, testing, debugging, and optimizing—and in performing code review.
- Understand various common software development methodologies.
- Be familiar with the use of a version-control system in managing a software project.
- Understand the different kinds of software testing, how unit tests are developed, and the test-driven development methodology.
- Have a good understanding of object-oriented design, including standard design patterns.
Important Dates
Mon, Jan 18 | No class (AK Civil Rights Day) |
Mon, Mar 14–Fri, Mar 18 | No class (Spring Break) |
Fri, Mar 25 | Last day to withdraw (“W” on transcript) |
Fri, Apr 22 | No class (SpringFest) |
Mon, May 2 | Last regular class meeting |
Thu, May 5 | Final Exam 3:15–5:15 pm in the classroom |
Also see the Semester Plan, to be posted on the class webpage.
Procedures
Class Meetings—Lecture-discussion, along with in-class pair programming and code review sessions.
Class Participation—Students are expected to be involved in discussions of lectures, readings, and videos, and to participate actively in pair programming/code review sessions.
Group Projects—Students will complete three small software-development projects, each of which will include specification, design, coding, and testing. Students will give short in-class presentations on various phases of each project.
Projects will be done in teams, with different projects involving teams of different sizes. Each team member must participate in each project activity (design, implementation, testing, documentation). Further, each team member must be a presenter for at least one of the project presentations.
Each project will have multiple due dates, with different deliverables.
Homework—Homework will be assigned periodically. Assignments must be done individually.
Exam—One exam will be given: a comprehensive Final. See Important Dates.
Grades
Course grades will be based on points earned, using a 90-80-70-60 scale. The +/− grading system will not be used. Point totals will be as follows.
Assignments (total) | 100 pts |
Group Projects (total) | 160 pts |
Class Participation | 80 pts |
Final Exam | 60 pts |
TOTAL | 400 pts |
Policies
Students are expected to be at every class meeting on time, and are responsible for all class content, whether present or not. If absence from class is necessary, work may be made up only if the instructor is notified as soon as possible; in particular, absences due to scheduled events must be arranged ahead of time. In-class pair programming and code review, by its nature, does not allow for make-up work.
Students who fail to attend the first class meeting after registering for the class, or who miss six consecutive class meetings, may be dropped/withdrawn, unless the instructor is notified ahead of time.
Academic dishonesty will not be tolerated, and will be dealt with according to UAF procedures.
Students must pay the CS lab fee. Payment allows access to the Chapman 103 lab.
UAF academic policies: http://www.uaf.edu/catalog/current/academics
CS Department policies: http://www.cs.uaf.edu/departmental-policies