Expectations & Policies for Gradable Work
Instructor: Prof. Robert B. France
email (
Tel: 970-491-6356
Fax: 970-491-2466
Lecture Times and Location: Tuesdays, Thursdays: 12:30 to 13:45 (12:30-1:45 PM); Computer
Science Bldg., Room 130.
Office Hours: Tuesdays, Thursdays 14:00-16:00 (2-4 PM), or by appointment via email
Teaching Assistant (TA): Sai Mandalaparty
TA Office Hours: Tuesdays: 3-5 PM; Fridays: 4-6 PM
Description: 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 in Java and C++ and have very good working knowledge of
object-oriented programming using the Java programming language.
Prerequisite: completion of CS253 with a C or better (this is a strict requirement; no waivers)
Major Learning Activities: Students in this course will learn to
·
develop and evaluate software requirements and design models consisting
of UML class, sequence, and activity diagrams,
·
use design patterns to improve designs,
·
systematically test programs,
· develop informed opinions about software engineering techniques and trends, and
·
work in teams to produce solutions to software
development problems.
Outside Class Work Expectations: The typical expectation for a college course at CSU is that students will work a minimum of 2 hours outside of class per class credit hour. This 3 credit class will thus require you to work at least 6 hours per week.
Learning Resources/Texts:
Required Texts:
Recommended Reference Text:
Required Tools:
Students will need to have access to UML modeling tools.
Students can also use basic computer-based drawing tools to produce software models (creating models using such tools requires more effort). Assignments with hand-drawn models will NOT be marked.
The course consists of lectures, design studios, discussions, exams, assignments, and quizzes.
Design studios give students an opportunity to relate concepts introduced in lectures to software development practices. In a design studio, groups of students will work in groups (3 to 4 students per group) on problems given by the lecturer. Students must hand in the solutions they develop at the end of each design studio in order to obtain points for the design studio. There will be 5 design studios held in this semester. Each is worth 2 percentage points.
During the semester, students will be given 3 topics to discuss on RamCT discussion boards. Each discussion will be open for 7 days: Discussions will start on midnight on Sunday and end on midnight of the following Sunday. A student will be awarded a maximum of 2 percentage points for each discussion they participate in. A student must do the following to receive points for a discussion:
· Post an opinion on the topic before Wednesday during the discussion week (1 point). No partial points will be given.
· Respond to at least 2 other postings made by students (1 point). No partial points will be given.
Three (3) exams will be given in this course. Each exam is closed-book, closed-notes and will be held in the classroom assigned to this course (Computer Science Building, Room 130). Exam grades will not be curved.
Students can work in teams of two persons on assignments. There are a total of four assignments. ALL assignments are due on Tuesday of the due week by midnight; assignments must be submitted via RamCT. No late submissions will be allowed.
Quizzes will be used to help students prepare for the exams and to gauge student understanding of the material covered in lectures. All quizzes will be in class. Students can expect a quiz every 1 or 2 weeks. A total of 8 quizzes (possibly more) are planned. The best 5 quiz scores will be used as the final quiz grade for each student (each quiz is worth 2 percentage points). Quizzes may or may not be announced prior to the day they are held.
The planned lecture, assignment design studio, discussion, and exam schedule is given below. Please note that his is a plan; details may change during the semester. A more accurate weekly schedule will be maintained on RamCT once the semester starts. That is the schedule you should use once the semester starts.
Week-Dates |
Topic/Tasks |
1 – Aug 21, 23 |
Course Overview/Intro to SE – Aug 21 OO Design principles – Aug 23 Student task: Form
Assignment teams |
2 – Aug 28, 30 |
Modeling-in-the small: Modeling programs – design class models – Aug 28, 30 |
3 - Sep 4, 6 |
Design class models (cont’d) Discussion Topic 1: What makes programming
challenging? |
4 - Sep 11, 13 |
Design studio 1: Class modeling exercises – Sep 11 Software validation & verification (V&V) – Sep 13 HW 1 due - Sep 11 |
5 - Sep 18, 20 |
Systematic software testing HW 2 due - Sep 18 |
6 - Sep 25, 27 |
Exam 1 Review
– Sep 25 Exam 1: OO programming and class modeling - Sep 27 |
7 – Oct 2, 4 |
Design studio 2: Software testing using JUnit Design studio 3: Software testing exercises |
8 - Oct 9, 11 |
Exam 2 Review
– Oct 9 Exam 2: V&V and
software testing – Oct 11 |
9 – Oct 16, 18 |
Design Patterns Discussion Topic 2: What makes software modeling
challenging? |
10 – Oct 23, 25 |
Design Patterns (cont’d) – Oct 23 Design studio 4: Design patterns exercises – Oct 25 HW 3 due- Oct 23 |
11 – Oct 30, Nov 1 |
Modeling behavior – sequence diagrams Discussion Topic 3: What difficulties did
you encounter when using design patterns? |
12 - Nov 6, 8 |
Modeling behavior – state machines |
13 - Nov 13, 15 |
Requirements engineering Modeling-in-the-large: Model Driven Development HW 4 due- Nov 13 |
14 – Nov 20, 22 |
No classes (Thanksgiving Break) |
15 – Nov 27, 29 |
Design studio 5: Requirements and design modeling of
a system |
16 – Dec 4, 6 |
Course review – Dec 4, 6 Dec 4: Submission of polished design studio 5 models for bonus assignment points |
17 – Dec 11 |
Final Exam: Dec
11, 2012; 11:50-13:50 (11:50AM – 1:50 PM); CS Bldg. Room 130 |
Exams:
There will be 3 exams. Each exam will be held in the lecture classroom.
· Exams are closed book and closed notes.
· There will be no make-up exams. The exam dates are posted in the schedules given earlier.
· A student caught cheating on an exam will receive 0 points for the exam and be reported to the university.
· Exam grades will not be curved.
Assignments:
· Late submissions are not allowed.
· A team/student caught cheating on any assignments will be given a 0 for the assignment and will be reported to the university.
· All assignments must be submitted via RamCT by Tuesday midnight of the due week.
· Assignment grades will not be curved.
· For programming assignments: Programs will be executed on the Linux machines in the open lab. Make sure your code runs successfully on those machines. Your grade will include points for correctly executing multiple test cases, employing good OO style, and commenting appropriately.
· For programming and modeling assignments, do not expect the provided problem descriptions (the requirements) to be complete. An important skill that we would like you to develop in this course is the ability to analyze stated requirements to identify missing and inconsistent requirements (real-world requirements of non-trivial systems are rarely stated initially in a complete and consistent manner!).
· Do not make assumptions about what is required in an assignment – if you identify problems in the requirements you will need to ask questions to clarify the requirements.
· A RamCT discussion forum will be set up for each assignment. This is where you will post your questions on the requirements and we will try to respond to a posting on the discussion board within 2 working days. If you do not get a response within 2 working days please send email to cs314@cs.colostate.edu.
· The last 15 minutes of each class will also be used to answer questions on assignments. For programming assignments you are expected to practice defensive programming, that is, your program should be robust enough to tolerate errors introduced by users. For example, you should not assume that a user will always provide correct inputs to the program, and you must provide feedback to the user that clearly identifies the errors made.
Quizzes:
· Quizzes will be given approximately every week or two (as we finish each set of material). We will go over the quizzes as soon as they are turned in.
· Make up quizzes will not be given. If you miss a class in which a quiz is given you will get a 0 for the quiz.
· The day on which a quiz will be given will be posted as a RamCT announcement at least 2 days before the quiz is given.
· A student caught cheating on any quiz will receive 0 points for ALL quizzes.
Discussions: Students must participate in online discussions on a posted topic if they are to receive credit for the discussion part of the course. To get a point for a discussion, a student must post, in a professional manner, either his or her views on the discussion topic, and comment on postings made by at least 2 other students.
· Students are expected to behave professionally during the online discussions. Students who behave in an unprofessional manner will have significant points deducted from their final grade and will be reported to the relevant university officials. In particular, use of profane and discriminatory language will not be tolerated.
· A student must do the following to receive all 2 points for a discussion:
o Post an opinion on the topic before Wednesday during the discussion week (1 point).
o Respond to at least 2 other postings made by students (1 point).
Design Studios: Students will work in groups on a problem in classes that are designated as design studios. To get points for a design studio, each group must hand in a solution to the problem at the end of the class. A role call will be made at the start of each design studio.
Points will be allocated as follows:
· Assignments (24%)
· Design Studios (10%)
· Discussions (6%)
· Quizzes (10%)
· Mid-semester exam 1 (10%)
· Mid-semester exam 2 (10%)
· Final exam (30%)
Your letter grade will be based on the total percentage points you gain. There will be some opportunities for bonus work. Letter grades will be assigned as follows:
· A: 100-90%
· B: 80-89.9%
· C: 70-79.9%
· D: 60-69.9%
· Fail: Below 60%
The teaching assistant (TA) will grade all assignments. If you find a discrepancy in the grading talk to the TA first, and then to the professor if you still disagree.
We will try our best to return assignments within 5 working days after the due date. Grades will be posted to RamCT as soon as they are available. Written assignments and exams will be returned in lecture.
Midterm and final exams marks will not be curved. Bonus questions will be given on exams, and other opportunities in the form of bonus tests and quizzes may be provided during the semester. Assignments, quizzes, design studios, and discussions will not be curved.
Aug. 20 |
Classes begin at CSU, Access to RamCT for CS314 opens |
Sep. 5 |
Registration closes |
Sep. 27 |
Exam 1 (in class) |
Oct. 11 |
Exam 2 (in class) |
Oct. 15 |
Last day for course withdrawal |
Dec. 4, 6 |
Presentation of system models developed in design studio 5 |
Dec. 7 |
Last Day of Classes at CSU |
Dec. 11 |
Final Exam; 11:50-13:50 (11:50AM – 1:50 PM); CS Bldg. Room 130 |
Links to related materials on the web.
· Software lifecycle models from Softpanorama: Useful information on software process models
· OMG UML Resource Page: Contains articles and tutorials on the UML.
· Patterns Home Page: Information about software patterns. Includes links to implementations of patterns (including Gang of Four patterns).
In addition to responsibilities enumerated in the Colorado State University Student Conduct Code, the Computer Science Department advocates rights and responsibilities of conduct for all its Members: faculty, staff and students, in accordance with the intent of the Code of Ethics of the Association of Computing Machinery. In particular, all department members are obligated to
For questions, explanations, or to report violations, contact your instructor or appropriate department administrator. Mediation of violations will be conducted within the Department and may be referred to the CSU Student Conduct and Conflict Resolution Office.