• Instructor: Juan Zhai
  • Email: juan.zhai AT rutgers.edu
  • Location: ARC-105
  • Time: Tuesday/Thursday 5:00 PM - 6:20 PM
  • Instructor Office Hours: Tuesday 9:00 AM - 11:00 AM, Hill 403
  • TA: Kaidong Hu, kaidong.hu AT rutgers.edu
  • TA Office Hours: Monday 3:00 PM - 5:00 PM, CBIM (with the label: Office Hours for CS431)
  • Please send emails starting with "[431]:" in your subject title.
  • Syllabus

No required textbook. Lecture slides will be provided in Sakai. Recommended materials:

  • Software Engineering. Ivan Marsic.
  • Software Engineering: A Practitioner's Approach. Roger S. Pressman, Bruce R. Maxim.
  • Design Patterns: Elements of Reusable Object-Oriented Software. John Vlissides, Ralph Johnson, Richard Helm, Erich Gamma.
  • Modern Compiler Implementation in C. Andrew W. Appel.

Do not copy code for programming assignments. Discussions are encouraged. See Rutgers University Academic Integrity Policy and the Department of Computer Science Integrity Policy .

  • one term-long team project: 40%
  • two small assignments: 5% * 2
  • three presentations (in groups): 10% + 10% + 5%
  • one in-class midterm exam (closed books): 10%
  • in-class final exam (open books): 15%

Date Lecture Notes Date Lecture Notes
1/21 Intro to Software Engineering 1/23 Requirement Analysis
1/28 Requirement Analysis 1/30 Architecture Design
2/4 Architecture Design 2/6 Architecture Design
2/11 Detailed Design 2/13 Design Principles
2/18 Design Patterns 2/20 Design Patterns
2/25 Construction & Testing 2/27 Delivery & Maintenance
3/3 Project Design Presentation 3/5 Poject Design Presentation
3/10 SE Review 3/12 Mid-term
Spring Recess. No Class.
3/24 Software Engineering Tasks 3/26 Program Analysis
3/31 Program Analysis 4/2 Intro to Artificial Intelligence
4/7 AI for SE 4/9 AI for SE
4/14 SE for AI 4/16 SE for AI
4/21 Project Demo Presentation 4/23 Project Demo Presentation
4/28 Crazy Idea Presentation 4/30 Final