Software Engineering

CSCI 301, Spring Semester, 2006

Final Written Test


To the Bottom of the Page


Instructor:         Shieu-Hong Lin

Class website:

Class time:        Tuesday           3:00-4:15PM at Metzger 100 or Grove 4B

Thursday          3:00-4:15PM at Metzger 100

Office Hours: Tuesday & Thursday 1:30-3:00 pm, Math & CS department




Project review groups

  • Web programming projects on subjects like department web portal, contents management, systems,  E-Commerce using open-source technology such as PHP, MySQL, Ruby, and AJAX
  • C++ and GUI projects such as vehicle refuleling scheduling & routing, HMM virtual chat-room.


PHP & MySQL development


UML and Diagram tools


About cumulative weekly reading & progress report:

1.      See the template report here as a word document or a web page. Save the contents in a file and keep that file with you throughout the semester.

2.      By Thursday each week, you should spend around 10 minutes to

  • add an additional record into the file (on top of the previous records) regarding the latest progress made in this class, and
  • email this entire file of progress report as an attachment to me.



Week 1: Introduction

  • Reading #1: (i) Code Complete Chapters 1~2. (discussion leaders: Mamoru  and Aaron) (ii) Software Engineering case study 1 (discussion leaders: Jennifer and Joseph) Class discussion: Tuesday, Feb 7. Report Due: Thursday, Feb 9.
  • Project activity: Form your team, pick your project, and work with your client for the first draft document of the requirements and specification (Homework#1) of your project. 
  • Concepts of formal specification and modeling (Z for specification, UML for modelling)


Week 2: Requirements and specifications: Phase I

  • Reading#2: (i) Code Complete Chapters 3~4 on requirements and specification. (discussion leaders: Ken and Jason)  (ii) Software Engineering case study 2 (discussion leaders: Edmund) Class discussion: Tuesday, Feb 14. Report Due: Thursday, Feb 16.
  • Project activities: Refinement of the requirements and specification. Initial design of the modules. Homework#1 and Homework #2.


Week 3: Architecture Design: Phase I

  • Reading#3 (i) Code Complete Chapters 5~6 on design and classes. (discussion leaders: Kevin, Jennifer, and Chris)  (ii) a classical article on architecture design (discussion leader: Andre) (iii) Mike’s PHP E-commerce presentation. Class discussion: Tuesday, Feb. 21. Report Due: Thursday, Feb 23.
  • Project activities:  Initial design of the modules.  (Homework #2. )
  • Technical coverage: Check here and read Chapter 16 of PHP-MySQL Web Development.


Weeks 4~5: Coding: Phase I

  • Presentation and inspection of requirements and design. Tuesday, Feb 28 and March 7 at Grove 4B. Incorporate feedbacks from your peer reviewer into your documents before the class. Make and bring hard copies of your draft documents for the entire class, and use transparencies or power point (or WORD) documents for a presentation of 15 minutes.
  • Project activities:  Start the coding based on the design.
  • Reading#4 (i) Code Complete Chapters 7~8 on quality routines and defensive programming. (discussion leaders: Aaron and Chris) (ii) the class handout on creational design patterns. Class discussion: Thursday, Mar 2. Report Due: Thursday  Mar 9.
  • Reading#5: (i) Code Complete Chapters 9~11 on pseudo code programming, and the use of variables (Ken, Jason, Kevin, and Joseph).  Class discussion: Tuesday  Mar 14. Report Due: Tuesday  Mar 21.


Weeks 6~7: Testing and debugging: Phase I

  • Project activities:  Coding, testing, and debugging
  • Reading#6: Code Complete Chapter 22 on testing. (Andre and Jennifer).  Class discussion: Thursday Mar 16. Report Due: Mar 28.
  • Homework #4 on testing. Due: Tuesday, April 4.


Weeks 8-9: Mission conference & Preparing for the midterm inspection

  • Written test on the readings from Code Complete Tuesday, Mar 28.
  • Reading#7: Code Complete Chapter 20 and 21 on software quality and collaborative construction. (Chris and Aaron).  Report Due: Tuesday, May 4.
  • Homework #5 on defensive programming. Due: Tuesday, April 11.
  • Midterm project presentation April 3 ~ April 11.


Weeks 10-11: Midterm inspection

  1. Send (i) the requirements and specification, (ii) the code and design documentation, and (iii) related web URL of your project to your peer reviewer for inspection by Tuesday, April 11.
  2. Send your midterm project summary report to Dr. Lin by Tuesday, April 11.
  3. Conduct peer review and code inspection: April 11~April 25.
  4. Write your peer review report and send it to Dr. Lin by Tuesday, April 25.


Code Complete test 1: Questions ( a  set of sample answers)


Weeks 12-14: Revision and fine tuning: requirements, specification, design, and code

  • Reading#8: (i) Code Complete Chapter 23 on debugging. (discussion: Kevin and Joseph).  (ii) Code Complete Chapter 24, 25 26 on refactoring and code tuning. (discussion: Aaron, Chris, and Jennifer).  Class discussion: Tuesday May 2. Report Due: Tuesday May 9.
  • Reading#9: Code Complete Chapter 28 on managing construction and Chapter 29 on integration (discussion: Jason and Kenny). Class discussion: Thursday May 4. Report Due: Tuesday May 16.
  • Reading#10: Code Complete Chapter 31 on layout and style and Chapter 32 on self-documenting code (discussion: Edmond and Mamoru). Class discussion: Tuesday May 9. Report Due: Tuesday May 23.


Related software engineering books

  • specification and requirement analysis: 1  (recommended by Kenny)
  • testing: 1


Written homework assignments: #1, #2, #3, #4, #5

No class on Thursday, May 19


Code Complete test 2: 3:30pm Tuesday, May 23 at Metzger 100.


Final Project Due: Tuesday, May 30.

  • Send (i) your project summary report, (ii) the final code and documentation, and (iii) related web URL of your project to Dr. Lin.


Final Written Test


To the Top of this Page