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:

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