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


CS314 Software Development Methods
Fall 2012


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

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

Recommended Reference Text:

  • Object-Oriented Design Using Java, Dale Skrien, McGraw Hill.

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

The course consists of lectures, design studios, discussions, exams, assignments, and quizzes.

Design Studios

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.

Discussions

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.

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 (Computer Science Building, Room 130). Exam grades will not be curved.

Assignments

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

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.


Planned Weekly Schedule

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

 


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


Grading and Cheating Policies

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

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 tests and quizzes may be provided during the semester. Assignments, quizzes, design studios, and discussions will not be curved.

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

Weekly Schedule

Assignments

Design Studios

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.