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


CS314 Software Development Methods
Fall 2011


Basic Course Info

Course Structure & Policies

Grading Policies

Important Dates

Links to Course Materials

·         Weekly Schedule

·         Assignments

·        Reading Assignments

CS Department 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 to 1:45 PM; Computer Science Bldg., Room 130.

Office Hours: Tuesdays, Thursdays 10-11:30 AM, or by appointment via email

 

Teaching Assistant: Bo Bian, Computer Science Building, Room 235, Desk 9

Office Hours: Monday 1-3 pm; Wednesday 10-Noon

 

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:  CS253

 

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. Therefore, this 3 credit class will require you to work at least 6 hours per week.

 

Learning Resources/Texts:

 

Required Texts:

  • Object-Oriented Software Engineering, Timothy Lethbridge, Robert Laganiere, 2nd Edition, McGraw Hill, ISBN 0073220345

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.


Course Structure and Policies

The course consists of lectures, design studios, and discussions. 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.

 

During the semester, students will be given five topics to discuss on RamCT discussion boards. A student will be awarded one percentage point for each discussion they participate in (maximum of 5 percentage points).

 

The planned lecture, design studio, discussion, and exam schedule is given below (this is a plan; details may change during the semester) - all exams are closed-book, closed-notes, and in-class:

Week-Dates

Topic

1 – Aug 23, 25

Course Overview

SE Introduction

2 – Aug 30, Sep 1

Modeling-in-the small: Modeling programs – design class models

3 - Sep 6, 8

Design class models (cont’d)

Design studio 1: Class modeling exercises

4 - Sep 13, 15

Software validation & verification (V&V)

5 - Sep 20, 22

Design studios 2, 3: Software testing using JUnit

6 - Sep 27, 29

Modeling object interactions using UML – sequence diagrams

7 – Oct 4, 6

Exam  review (Oct. 4)

Exam 1 (Oct 6)

8 - Oct 11, 13

Design patterns

9 – Oct 18, 20

Design studios 4, 5: Using design patterns

10 – Oct 25, 27

User interface design principles

11 – Nov 1, 3

Modeling-in-the-large – Model Driven Development

12 - Nov 8, 10

Requirements modeling

13 - Nov 15, 17

Transitioning from requirements to design models

14 – Nov 22, 24

Thanksgiving Break

15 – Nov 29, Dec 1

Design studios 6, 7: Requirements and design modeling of a system

16 – Dec 6, 8

Student modeling presentations

Course review

17 – Dec 16

Final Exam: Dec 16, 2011; 9:40AM to 11:40AM; CS Bldg. Room 130

 

Students will be required to work in teams of two persons on assignments. There are a total of four assignments.

There will also be in-class quizzes. Students should be prepared for at least one quiz every other week.

 

The assignment and discussion schedule is given below. ALL assignments are due on Thursday of the due week by midnight; assignments must be submitted via RamCT. Assignment due dates are marked in red in the first column of the table below. Discussion periods are shown in bold font in the first column of the table, e.g., Discussion 1 will start on Aug. 29 and end midnight on Sep. 3:

Week

Assignments/Discussions

1 – Aug 23, 25

Start HW 1 (OO programming 1)

2 – Aug 29-Sep 3

Discussion Topic 1: What makes programming challenging?

3 - Sep 6, 8

4 - Sep 13, 15

HW 1 due - Sep 15

Start HW 2 (OO programming 2)

5 - Sep 19-24

Discussion Topic 2: Should the quality of a program be judged solely on the generation of correct outputs?

6 - Sep 27, 29

HW 2 due - Sep 29

7 – Oct 4, 6

Exam 1 – Oct 6

Start HW 3 (Design class modeling)

8 - Oct 10-15

Discussion Topic 3: Is there a difference between a software engineer and a programmer?

9 – Oct 18, 20

HW 3 due- Oct 20

10 – Oct 25, 27

Start HW 4 (OO design modeling: design patterns, sequence diagrams)

11 – Oct 31-Nov5

Discussion Topic 4: What makes software modeling challenging?

12 - Nov 8, 10

HW 4 due- Nov 10

13 - Nov 14-19

Discussion Topic 5: What difficulties did you encounter when using design patterns?

14 – Nov 22, 24

Thanksgiving Break

15 – Nov 29, Dec 1

16 – Dec 6, 8

Presentations of train system models

17 – Dec 16

Final Exam: Dec 16, 2011; 9:40AM to 11:40AM; CS Bldg. Room 130

 

Expectations for gradable work

Assignments: Students can work in pairs on all assignments. Assignments will be posted on the web site and on RamCT. All assignments must be submitted via RamCT by Thursday midnight of the due week. 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 – 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 should provide feedback to the user that clearly identifies the errors made.

Quizzes: Quizzes will be given at the beginning of a lecture, approximately every week or two (as we finish each set of material). Quiz dates will be announced in class. We will go over the quizzes as soon as they are turned in.

Discussions: Students must participate in online discussions on a posted topic if they are to receive credit for the discussions 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, or a counterpoint to a posting made by another student. 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.

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. In addition, each group must present the models they develop in design studios 6 and 7 to get the full 10 points for these two studios. A role call will be made at the start of each design studio.

Exams will be given in the lecture classroom. They will be closed book and closed notes.


Grading Policies

Points will be allocated as follows:

·         Assignments   (20%)

·         Design Studios 1-5 (10%)

·         Design Studios 6-7 (10%)

·         Discussions (5%)

·         Quizzes   (5%)

·         Mid-semester exam   (20%)

·         Final exam   (30%)

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 your instructor if you still disagree.

We will try our best to return assignments within 5 working days after the end of the late period. 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 and participation will not be curved.

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.

Cheating Policy.

  • All programming homework will be automatically and manually compared against each other.
  • All parties involved in cheating will be prosecuted no matter who copied from whom. It is your duty to keep your assignments secure.
  • Penalty: You will get no marks for the work and will be reported to the appropriate university authorities.
  • Please be aware of the departmental cheating policy.

Important Dates

 

Aug. 22

Classes Begin at CSU

Aug. 28

 Last day for Special A, B drop/add

Sept. 7

Last day for regular course drop/add

Oct. 6 

Exam 1 (in class)

Oct. 17

Last day for course withdrawal

Dec. 6, 8

Presentation of system models developed in design studios

Dec. 9

Last Day of Classes at CSU

Dec. 16

Final Exam; 9:40 – 11:40 AM; CS Bldg. Room 130


Links to Course Materials

Weekly Schedule

Assignments

Weekly Reading Assignments

 

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.