Sudipto Ghosh
Office: 468 CS Building
Office Hours: 11 am - noon TR
Wenjun Ni
Office: CSB 120 lab
Office Hours: W 8-10, Th 5-6, F 12-1
Lecture Time and Place:
12:30-13:45, TR, Clark A207

The course introduces students to principles, concepts and techniques associated with team-based development of complex software systems. It is assumed that students know how to program and have developed programs using the Java language. Major topics include system and requirements engineering, object-oriented design, and systematic code testing techniques. Students will learn to use software tools.


CS253 and all the prerequisites for CS253 including CS160, CS161, and CS200.

Communication with instructor and GTA

You must have a Colorado State University eIdentity (eID), before you can be installed into the CS314 RamCT courseware system. The CS314 RamCT page will have all of the course notes, assignments, and discussions, so it is very important for you to be installed on this system. Visit the eIdentity and eServices web page to get your eID. You will not be able to take part in the course until you have an eID.

Once the semester starts, communication with the instructor and GTA may be done by posting messages on the RamCT discussion group or by email. The instructor will create appropriate topics under which students will be able to create discussion threads.


  • Required Text:

    • This semester we are using a custom text that is available at the CSU bookstore. It contains chapters from three different textbooks, all published by McGraw Hill. ISBN: 9781121650077

  • Supplementary Text:

    • None

  • Lecture slides:

    Class notes will be available on RamCT.


Here are the formally graded elements of the course and associated weighting:

An overall course grade will be awarded based on continuous evaluation in the form of quizzes, individual assignments, team projects, a midterm exam, and a final. Quizzes, assignments, and projects will be given throughout the semester, so be prepared! The following table shows each component.

  • 10% - Assignments
  • 30% - Projects
  • 10% - Quizzes
  • 20% - Midterm
  • 30% - Final

Grades will be assigned according to the following table. The actual cutoffs may be adjusted depending on the performance of the entire class; cutoffs can be lower but never higher. After the midterm exam and before the final, we will announce "approximate" letter grades so that you know where you are.

[90-100] A-, A
[80-90) B-, B, B+
[70-80) C, C+ (no C- will be given)
[60-70) D
[0-60) F

Individual assignments
  • There will be about 3 assignments covering topics such as software safety, black-box testing, and white-box testing. Assignments must be done individually. Assignments will require writing short papers and/or programming.
  • We may give some assignments to make you prepare for in-class exercises. For example, there may be a code inspection exercise in class that requires you to read the code before coming to class. Some points will be assigned to such assignments.
  • Programs must be turned in electronically by 11:59 pm on the due date on RamCT.
  • Written reports must be printed and turned in at the beginning of class on the due date.
Team projects

You will work in teams of three to develop a software application. During the course of the semester, you will identify and analyze requirements, use techniques learned in this class to develop a high level object-oriented design, implement a working prototype, and develop a test plan. The projects will involve iterative, incremental software development. Individual grades depend on the contribution of each team member; they may be adjusted up or down.


Short unannounced quizzes may be given in class throughout the semester. The intent is:

  1. Review material covered in reading assignments or earlier lectures.
  2. Reinforce material covered in the same lecture.
  3. Motivate material to be covered in remainder of the lecture.

All quizzes will be discussed in class. Quizzes may be individual or team-based. Make up quizzes will not be given. The lowest quiz grade will be dropped.


There are two exams: one midterm and one final. The midterm exam will be held in class during the regular class period. The final exam will be held in the designated time slot.

Exam Date Material
Midterm March 7, in class Material covered until March 5
Final May 13, 9:40 -- 11:40 AM Comprehensive


We will be glad to re-grade the same submission if you feel that there was a mistake in grading. Contact us within 4 calendar days for a re-grade. Work will be re-graded in its entirety, and may result in an increase, decrease, or no change in the grade. Note that, once we have graded an assignment, we will not allow you to re-do and re-submit it for grading.

Late and Makeup Policy

  • Late assignment or project work will not be accepted without prior permission. If you cannot finish the work by the deadline, contact the instructor as soon as possible. Extensions will be granted on a case-by-case basis and are more likely when permission is sought in advance, for reasons which are unexpected and beyond your control, and which involve only a short extension. The instructor reserves the right to assign a score penalty to the late work, depending on the circumstances and degree of lateness.

  • Late penalties for design and discussion assignments are as follows:
    • Up to 12 hours late: 10% penalty
    • 12 to 24 hours late: 25% penalty
    • 24 to 48 hours late: 50% penalty
    • More than 48 hours late: No credit

    Note that the percentages refer to the total points available for the deliverable, not the points that you have received. That is, if an assignment is worth 100 points, and you get 76 and are 7 hours late, you will receive 66 points.

  • If you miss a quiz or an exam, you receive a score of zero.

Professional Conduct

All students are expected to conduct themselves professionally. We (the instructors and GTA) assume you are familiar with the policies in the student information sheet for the department and the department conduct code. Additionally, you are computing professionals, albeit perhaps just starting. You should be familiar with the code of conduct for the primary professional society, ACM. You can read the ACM Code of Conduct HERE.

This course will adhere to the CSU Academic Integrity Policy as found in the General Catalog and the Student Conduct Code. At a minimum, violations will result in a grading penalty in this course and a report to the Office of Conflict Resolution and Student Conduct Services.

Students not already familiar with the CSU Honor Pledge should review this clear and simple pledge and always adhere to it. Academic dishonesty will be dealt with severely. The first instance of cheating will result in negative credit. The second instance will result in a failing grade and other penalties dictated by departmental and university policies.

We work to maintain an environment supportive of learning in the classroom and laboratory. Towards that end, we require that you be courteous to and respectful of your fellow participants (i.e., classmates, instructors, GTAs and any tutors). In particular:

  • Please turn off the ring on your cell phone. If you are expecting an emergency call, sit near the door and slide out discretely to take it.
  • In class use of electronic devices in general, and laptops specifically, is permitted as a courtesy so that you may better participate and learn. If at any time the instructor judges that an electronic device is becoming a distraction the student may be asked to to turn it off and put it away.

We require you to follow the guidelines listed below for postings on RamCT:

  • Be professional.
  • Be courteous.
  • Do not post any questions about your grade or any grading issues. Such questions are private communication and must be emailed.
  • Do not post any opinions regarding your graded assignment, or any aspect of the course. You will have a chance to submit anonymous reviews at the end of the semester. Email feedback to the instructor regarding the course is acceptable and welcome.
  • The instructor reserves the right to delete postings that do not promote a conducive learning experience for students in the class.