— CS350-2020Fall

* This course uses KLMS, where lecture notes and announcements will be delivered.

Doo-Hwan Bae (bae@se.kaist.ac.kr)
Office: #503, N1 Building, Phone: 042-350-3539
Office Hours: Tuesday & Wednesday 14:30-16:00 and by appointments 
*by appointments via. Email

Teaching Assistants 
Eunho Cho:  Office: #524, N1; Phone: X7839; email: ehcho@se.kaist.ac.kr
Sumin Park: Office: #524, N1; Phone: X7839; email: smpark@se.kaist.ac.kr

Lecture Hours & Room
10:30-12:00 Monday & Wednesday, N1 #102

Text: No required textbook; Lecture notes will also be given.
Lecture notes will also be given via. KLMS.
Fundamentals of Software Engineering by Ghezzi, et al.
Fundamentals of Software Engineering Principles and Practice by Hans van Vliet

Lecture Topics (but are not limited to)
CS350 Syllabus
CS350 Lecture 0: Overview
1. Overview of Software Engineering:
     ● “Is Boeing 737 MAX design failure or SW bug?” 
     ● Why, What, 4C’s
     ● Technical Debts
     ● The Five Laws of SE for AI
2. Process Models: Heavy-weight process, Prototyping, Agile, DevOps,…
3. Software Modeling: Basics of UML(Unified Modeling Language)
4. Software Requirements Engineering, What vs. How
5. SE Principles: Separation of Concerns, Abstraction, Modularity, etc
6. Software Quality: Correctness, Robustness, Safety, Security, etc.
7. Software Design: Architectural Patterns, Resilient Design Patterns
8. Software Testing: Testing overview, Black-box, and White-box testing,
9. SE trends & other issues if time is available, such as SW2.0

Assignment & Project: 40% / Presentation & Attendance: 10%
Midterm Exam: 25% / Final Exam: 25%

Prerequisite: reasonable programming experience

Important Notes
* Each assignment/project will be open at least 7 days before the due date.
* If you miss the due date of homework or project, there will be a penalty of points off, by 15% per each day.
* Cheating during this course will result in a harsh penalty.
* The instructor reserves the right to change the grading policy if needed.