scription: Description: Description: Description: Description: Description: Description: Description: Description: Description: Description: Colorado State University Computer Science Department


CS314 Software Development Methods
Fall 2013


Basic Course Information

Course Structure

Planned Weekly Schedule

Expectations & Policies for Gradable Work

Grading Policies

Important Dates

Links to Related Material

Code of Conduct


Basic Course Information

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.


Course Structure

The course consists of in-class discussions, problem solving studios, exams, assignments, and exercises/quizzes.

 

In-class Discussions

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

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.

 

Exams

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.

 

Assignments

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.

 

In-class Exercises

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.

 

Online Quizzes

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.


Planned Weekly Schedule

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)

 


Expectations & policies for gradable work

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.


Grading and Cheating Policies

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%)

 

Letter Grading Scale

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 Grading Process

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.

 

Cheating Policy


Important Dates

 

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 Course Materials

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).


Code of Conduct for the Department of Computer Science

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

  1. Respect the rights of others and protect fundamental human rights including respect of the diversity of all cultures, and to foster a safe and comfortable social environment.
  2. Avoid harm to others:
    1. All members are expected to treat one another with professional courtesy at all times. Harassment or humiliation of one member by another will not be tolerated.
    2. Members will dress appropriately for an educational and professional setting, refraining from modes of dress that may shock or disturb others.
    3. Members will refrain from using offensive or abusive language.
    4. Members will refrain from offensive public displays, including on computer monitors, wall posters, or engaging in overt public disturbances.
  3. Be honest and trustworthy:
    1. Members will relate honestly with one another, will not submit work that is not their own (unless properly cited), will keep their promises, and will act to merit the trust of others.
    2. Members should adhere to the ACNS policy on acceptable use of computing resources.
  4. Be fair and take action not to discriminate:
    1. Members will treat others fairly, evenhandedly and without capriciousness. a. Members will not single out any other Members or groups of Members for discrimination or criticism or unwelcome treatment especially based on race, physical characteristics, age, gender, religious convictions, or membership in any cultural group.
  5. Honor property rights:
    1. Members will respect the personal property of others.
  6. Give proper credit for intellectual property:
    1. Members will respect the work product of others, and will never claim ownership of intellectual work of others as their own.
  7. Respect the privacy of others:
    1. a. Members will respect the rights of others to be left alone, and will refrain from unwelcome actions towards them, and unwanted intrusions into their affairs.

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.