Computer Science Department Expectations & Policies for Gradable
Work
Instructor: Prof. Robert B. France
email
(france at cs dot colostate dot edu)
Tel: 970-491-6356
Fax: 970-491-2466
Lecture Times and
Location: Tuesdays,
Thursdays: 12:30PM
-1:45 PM; Shephardson, Rm
212.
Office Hours: Mon by appointment via email
Teaching Assistant
(TA): Phillipa Bennett
TA Office Hours: Tues 4pm-5pm, Thurs 2pm-4pm
Grading Assistant
: Amila Suriarachchi
Amila's Office Hours: Fri 12pm-1pm
Other Office Hours
: Dr. Geri Georg
Dr. Georg's Office Hours: Wed 8am-10am
Please see RamCT Office Hours Posting for Rules Regarding Assignments 2 and 3
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,
·
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. This includes reading the course slides and related textbook
chapters before
each class.
Learning
Resources/Texts:
Required Text:
CS314: Object Oriented
Software Development; 556 pgs; McGraw Hill, ISBN: 9781121926684. This book is a
collection of chapters from the following books:
· Object-Oriented Software Engineering, Timothy Lethbridge, Robert Laganiere, 2nd Edition, McGraw Hill.
·
Object-Oriented Design Using Java, Dale Skrien, McGraw Hill.
Required Tools:
· Students must have iClickers to participate in in-class quizzes. iClicker is a response system that allows you to respond to quiz questions posed during class, and you will be graded on these questions. In order to receive this credit, you will need to register your iClicker remote online prior to the second class. To do this, go to http://clicker.colostate.edu/registration.aspx. Login with your eIdentity eName and password. In the iClicker ID field, enter your remote ID and select the "Register" button. The remote ID is the number found on the back of your iClicker remote. iClicker will be used most days in class, and you are responsible for bringing your remote daily.
· 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 in-class
discussions, problem solving studios, exams, assignments, and
exercises/quizzes.
In this course there will be no
formal lectures in which slides are presented to students after the first week
of classes. Students are expected to read the course slides and related
textbook chapters before they come to class. Classes will consist of
discussions that focus on concepts that students have difficulty understanding.
These discussions will be triggered by student questions and by the results of
tests that will be graded in-class.
Problem solving studios give
students an opportunity to relate concepts covered in course slides and the
textbook to software development practices. In a studio, groups of students will work
in groups (3 to 4 students per group) on problems given by the lecturer. Students must submit via RamCT the solutions they develop in a studio by midnight of
the day following each studio in order to obtain a grade for the studio.
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. Exam grades
will not be curved. Students can gain bonus points by answering bonus questions
on an exam.
There
will be three programming assignments. Students must work in teams of two
persons on assignment 1. Students will work in teams of 3 4 to 5
students on a medium-sized software development problem that will be stretched
over two assignments: assignments 2 and 3. All assignments must be handed in by
the due dates. No late submissions will be allowed.
Exercises
serve two purposes: (1) to gauge understanding of concepts covered in course
slides and textbook chapters, and (2) to help students prepare for the exams.
All exercises will be in class. There will be in-class exercises in every class
that an in-class discussion is held.
Quizzes
serve to gauge understanding of concepts covered in course slides and textbook
chapters. Students must complete these quizzes before the classes in which the
covered slides and textbook chapters are discussed.
The planned course schedule is
given below. Please note that this is a plan; details may change during the semester. A more accurate
weekly schedule will be maintained on RamCT once the
semester starts.
The book chapter numbers given in
the table below are the chapters of the compiled version of the book. These are
NOT the
chapter numbers of the Skrien or Lethbridge
books. Visit the RamCT Course Content page to see a
mapping of the compiled book chapter to the chapters in the Skrien
and Lethbridge books.
|
Week |
Tuesday |
Thursday |
|
1 – Aug 27, 29 (Intro) |
Lecture 1: CS314 Course Intro Chapters: 1 In-class exercise: Assessment quiz Assignment: 1. Read chapters and slides
for next week’s classes 2. Find a partner for Assignment
1 |
Lecture 2: Introduction to Software Engineering Chapters: 1 In-class exercise: Software engineering quiz Assignment: 1. Read chapters and slides
for next week’s classes 2. Find a partner for
Assignment 1 |
|
2 – Sep 3, 5 (OOP) |
Lecture 3: OOP Fundamentals Chapters: 2 In-class exercises: Quiz on week 1 lectures Assignment: 1. Read chapters and slides
for next week’s classes |
Lecture 4: OOP Inheritance Chapters: 3 In-class exercise: Chapter 2, 3 exercises Assignment: 1. Read chapters and slides
for next week’s classes |
|
3 – Sep 10,12 (OOP/Design) |
Lectures 5, 6: OOP methods & classes Chapters: 4, 5 In-class exercise: Exercises on methods and
classes Assignment: 1. Read chapters and slides
for next week’s classes |
Lectures 7, 8: Design tips, Design refactoring examples Chapters: 13 (9.1, 9.2), 7 (5.9, 5.10) In-class exercise: Exercises on design tips
and refactoring Assignment: 1. Read chapters and slides
for next week’s classes Due today: Assignment 1 due by midnight |
|
4 – Sep 17, 19 (UML Design) |
Lecture 9: Money class case study Chapters: 6 In-class exercise: Questions on case study |
Lectures 10, 11: Design class models; Sequence diagrams Chapters: 7, 8 In-class exercise: Design modeling exercises |
|
5 – Sep 24, 26 (OOP Studio /Testing) |
Studio 1: OOP and design modeling |
Lecture 12: Software testing principles In-class exercise: Questions on testing principles |
|
6 – Oct 1, 3 (Exam) |
Exam Review |
Exam 1 |
|
7 – Oct 8, 10 (Testing) |
Lectures 13, 14: White box testing; black box testing In-class exercise: Control flow graph and white box testing exercises |
Studio 2: JUnit tutorial, testing
exercises Assignment: 1. Read chapters and slides
for next week’s classes |
|
8 – Oct 15, 17
(Requirements) |
Lecture 15: Requirements principles Chapters: 12 In-class exercise: Questions on requirements
principles and activities Assignment: 1. Read chapters and slides
for next week’s classes |
Lecture 16: Requirements class models, use cases Chapters: 12 In-class exercise: Requirements class modeling exercises Assignment: 1. Read chapters and slides
for next week’s classes |
|
9 – Oct 22, 24
(Requirements) |
Lecture 16: Requirements class models, use cases (cont’d) Chapters: 12 In-class exercise: Use case modeling exercises Assignment: 1. Read chapters and slides
for next week’s classes |
Studio 3: Requirements modeling Assignment: 1. Read chapters and slides
for next week’s classes |
|
10 - Oct 29, 31 (Human
Centered Computing) |
Lecture 17: Human-Centered Computing; User Interfaces Chapters: 14 In-class exercise: User interface exercises Assignment: 1. Read chapters and slides
for next week’s classes |
Lecture 17: Human-Centered Computing In-class exercise: User interface exercises Assignment: 1. Read chapters and slides
for next week’s classes Due today: Assignment 2 due by midnight |
|
11 – Nov 5, 7 (Design
Patterns) |
Lecture 18: Design pattern – singleton, factory patterns
(creational patterms) Chapters: 9, 10 In-class exercise: Pattern exercises |
Lecture 18: Design patterns – Adapter, Façade, Iterator, Observer (structural & behavioral patterns) Chapters: 9, 10 In-class exercise: Pattern exercises |
|
12 – Nov 12, 14 (Design Patterns) |
Lecture 18: Design patterns – case study Chapters: 11 In-class exercise: Questions on case study |
Studio 4: Design patterns |
|
13 – Nov 19, 21 (Exam) |
Exam Review |
Exam 2 |
|
14 – Nov 26, 28
(Thanksgiving) |
No class |
No class |
|
15 – Dec 3, 5 (Studio 5) |
Studio 5: Assignment 3 Wrap-up |
Due today: Assignment 3 due by midnight |
|
16 – Dec 10, 12 (Exam
Review) |
Final exam review |
Final exam review (Final exam – December
19, 2013) |
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 the due
date and time.
·
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. The TA will post answers to questions for each assignment on this
forum. To avoid cluttering the forum do not post your
questions on the forum. Send all questions to cs314@cs.colostate.edu. The TA will
answer questions during her office hours (3 days a week). 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.
·
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.
Exercises/Quizzes:
·
Exercises/Quizzes
will be given in almost every class (exceptions will be classes in which
studios are held, exams are given, and exam reviews are conducted).
·
Make
up exercises/quizzes will not be given. If you miss a class in which an
exercise/quiz is given you will get a 0 for the quiz.
·
A
student caught cheating on any exercise/quiz will receive 0 points for ALL
exercises/quizzes.
Problem Solving Studios: Students will work in groups
on a problem in classes that are designated as design studios. To get points
for a studio, each group must submit, via RaMCT, a
solution to the problem by midnight of the day following the studio. A role
call will be made at the start of each studio.
Points will be allocated as
follows:
·
Assignments (30%)
·
Problem
Solving Studios (10%)
·
In-class
exercises/Quizzes (10%)
·
Online
quizzes (5%)
·
Mid-semester
exam 1 (10%)
·
Mid-semester
exam 2 (10%)
·
Final
exam (25%)
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 exercises/quizzes may be provided during the
semester. Assignments, exercises/quizzes, studios, and discussions will not be
curved.
|
Aug. 26 |
Classes begin at CSU, Access to RamCT
for CS314 opens |
|
Oct. 3 |
Exam 1 (in class) |
|
Oct. 21 |
Last day for course withdrawal |
|
Nov. 21 |
Exam 2 (in class) |
|
Dec. 13 |
Last Day of Classes at CSU |
|
Dec. 19 |
Final Exam; 6:20PM – 8:20PM |
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.