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.
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 submission dropboxes 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, you may communicate with the instructor and GTA by posting messages on the RamCT discussion group or by email to cs314@cs.colostate.edu. The instructor will create appropriate topics under which students will be able to create discussion threads.
In case you have the custom text used by Prof. France in Fall 2013 or Spring 2014, that's fine as well. Let me know and I will be happy to provide any material that is missing in that text.
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.
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 |
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.
QuizzesShort unannounced quizzes may be given in class throughout the semester. The intent is:
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.
ExamsThere 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 | Oct 9, in class | Material covered until Oct 7 |
Final | Dec 19, 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 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.
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.
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 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:
We require you to follow the guidelines listed below for postings on RamCT: