CS 3302: Introduction to Software Engineering

Quarter Summer, 1998
Instructors

Colin Potts (Part 1: lectures and individual assignments) ( potts@cc 4-5551)

David Smith (Part 2: project)

Teaching Assistants

Tim Volk + Jennifer Race

Class Time TTh 1:30-3:00pm
Class Venue Boggs B6A
Home page URL www.cc.gatech.edu/classes/cs3302_98_summer
News group git.cc.class.3302
Textbook Software Engineering: Theory and Practice, by Shari Lawrence Pfleeger (Prentice Hall, 1998)
Office Hours

Colin Potts (until 7/24) Mon 2-3 & Thu 4-5 (CoC Bldg. 257)

David Smith (from 7/27) t.b.a.

Tim Volk t.b.a.

Jennifer Race Mon, Wed 2-3

Introduction

Software engineering is the discipline of producing software to meet customer needs with the highest quality feasible given resource constraints.

We can't teach software engineering in one one-quarter class, but you can learn the essential principles of software engineering. It is important to remember that you have already been introduced to software-engineering principles for programming-in-the-small in your previous 1000- and 2000-level computer science courses. You are expected to understand the ideas of procedural and data abstraction, information hiding, concurrency, algorithm design and evaluation, and the tools used to reason about programs: discrete mathematics and predicate logic.

Doctors, architects and chemical engineers don’t learn their professional skills just by sitting and listening to lectures and by doing the exercises at the end of the chapter; they have to diagnose the symptoms of real patients, design buildings and defend their designs in critiques, design chemical processes and plants according to scientific. In other words, they learn partly by doing. CS 3302 is the first course in the software engineering sequence that some of you will take that involves a major component of project work. This quarter, we are experimenting by introducing a quick lecture course first and devoting the entire second half of the quarter to team projects. Colin Potts will lead the first (lecture) half of the course; David Smith will lead the second (project) half. This does not mean that the first half will consist only of lectures and will involve no practical work or that the second half will consist only of project work without any lectures on project-related materials. You should plan to attend ALL class periods throughout the quarter, unless a class is explicitly canceled.

Schedule

Date Topic Reading Assignments
T 6/23 Course introduction. Why Software Engineering? (ppt 97 and html/gif slide presentations) Chs. 1 and 2.1-2.2 (55 pages)  
Th 6/25 Programming (ppt 97 and html/gif slide presentations) (Java Date class source code) Ch 6 (22 pages) Assignment #1 (software engineering and programming) available
T 6/30 - no class -    
Th 7/2 Program testing (ppt 97 and html/gif slide presentations) Ch 7.1-7.3 (25 pages)

Assignment #1 due. Model Answer available;

Assignment #2 (program testing) available

T 7/7 System design (ppt 97 and html/gif slide presentations) Ch 5.1-5.6, 5.8-5.10 (49 pages)

Assignment #3 (system design) available

Th 7/9 System design (cont.)  

Assignment #2 due (note extension) Model Answer available

 
T 7/14 - Open-book test - model answers available   Assignment #3 due Model answer available
Th 7/16 System testing and design reviews (ppt 97 and html/gif slide presentations) Chs 5.7, 7.4-7.10, and 8.1, 8.3-8.4 (56 pages)  
T 7/21

Capturing requirements

System delivery and acceptance testing (ppt 97 and html/gif slide prsentations)

Ch 4.1-4.4, 4.6-4.9, 4.12-4.13 (39 pages)

Chs. 8.2, 8.5-8.8 and 9 (33 pages)

Assignment #4 (system testing & design reviews & requirements) available
Th 7/23 Project management Ch 3.1-3.5, 3.7-3.8 (47 pages)  
T 7/28 System evolution and maintenance (ppt 97 and html/gif slide presentations) Ch 10.1-10.3, 10.5-10.8 (35 pages)

Assignment #4 due (model answers and grading scheme now available)

Th 7/30 - Team project -   Take-home test available
T 8/4 - Team project -    
Th 8/6 - Team project -    
T 8/11 - Team project -   Take-home test due
Th 8/13 - Team project -    
T 8/18 - Team project -    
Th 8/20 - Team project -    
T 8/25 - Team project -    
Th 8/27 - Team project -    
T 9/1 - Exam week -    
Th 9/3 - Exam week -    

Assessment

Your grade is divided into three parts: 45% course work (Part 1); 50% project contribution (Part 2); 5% class participation (entire quarter). Opportunities may be given for extra-credit work that goes beyond expected class participation. There will be NO separate final exam. However, a graded project-related assignment (e.g. a debriefing activitiy) that counts toward your Part 2 grade may be scheduled during the final exam period. Any such assignment will be announced in class and on the newsgroup when the final exam schedule is announced. Special arrangements may be necessary for graduating seniors to account for any project-related assignments that are due late in the quarter. These may involve special, accelerated assignments or pro-rating grades. Again, an announcement will be made during the quarter.

Part 1 assignments (45%):

I don't grade on a curve, but I do look at the grade distribution before deciding where the boundaries between grades go. I aim for a 90-80-70-50 split generally, but I look for gaps nearby and try to arrange it so that a difference of 1% does not make a difference between grades. Rather than accumulating percentages over the first half of the quarter, I'm going to award a grade-point equivalent for each assignment or exercise and weight them accordingly. (So an A on assignment 1 would be worth 0.4 of a G.P.) 3.5 and above is an A, 2.5-3.4999 is a B, etc.

Part 2 project work (50%):

Your project grade will be determined largely as a team. Adjustments will be made (up AND down) for any team members who in the opinions of their team members and the instructor deserve it. Further announcements regarding the assignments will be made in class.

Class participation (5%):

Satisfactory class attendance. Active participation in class discussion either in class or in the newsgroup.