|Professor||Dr. Iulian Neamtiu|
|Office hours: Tue./Wed./Thu. 10:45 a.m.--11:30 a.m. Winston Chung Hall room 412|
|Office hours: Mon./Wed. 12:40 p.m. - 1:40 p.m., Winston Chung Hall room 368|
|Lectures||TR 8:10 a.m. - 9:30 a.m., Winston Chung Hall (CHUNG) room 139|
|Lab||F 3:10 p.m. - 6:00 p.m., Winston Chung Hall room 127|
|Grading||Project (50%) + Final exam (25%) + Midterm (20%) + Homeworks (3%) + CwP (2%)|
|Textbook||Fundamentals of Software Engineering (2nd edition) by Ghezzi, Jazayeri, Mandrioli. Book website.|
|Final exam||March 16|
|Prerequisites||CS 14 and CS 100|
Catalog description: A study of software engineering techniques for the development, maintenance, and evolution of large software systems. Topics include requirements and specification; system design and implementation; debugging, testing, and quality assurance; reengineering; project management; software process; tools; and environments.
|Tue||Jan 8||Introduction||Chapter 1|
|Thu||Jan 10||Software: Its Nature and Qualities
Software Engineering Principles
|Chapters 2, 3|
|Tue||Jan 15||The Software Production Process||Chapter 7 (sections 7.1--7.6)
Extreme Programming and Rapid Development (pdf)
|Thu||Jan 17||Software Production in Practice||
Builds Software (available freely from the campus network)
Facebook: Facebook Push Tech Talk (video); Exclusive: a behind-the-scenes look at Facebook release engineering (article)
|Tue||Jan 22||Specification||Chapter 5 (sections 5.1--5.5.1)|
|Thu||Jan 24||Finite State Machines
|Chapter 5 (sections 5.5.3 and 5.5.4)|
|Tue||Jan 29||First-order Logic||Primer (optional)|
|Thu||Jan 31||Logic Specification||Section 5.6.2 (up to, and including, 220.127.116.11)|
|Tue||Feb 5||Midterm review|| |
|Thu||Feb 7||Midterm|| |
|Tue||Feb 12||Design and Software Architecture
Design Notation, Abstraction and Refinement
|Chapter 4 (sections 4.1--4.2.6)
On the Criteria To Be Used in Decomposing Systems into Modules by David L. Parnas (available freely from the campus network)
|Thu||Feb 14||Verification: Introduction||Chapter 6 (up to 18.104.22.168)|
|Tue||Feb 19||Structural (White-box) Testing||Section 6.3.4 (up to, and including, 22.214.171.124)|
|Thu||Feb 21||Functional (Black-box) Testing
Testing in the large
|Chapter 6 (sections 126.96.36.199--188.8.131.52)
Notes on equivalence class testing
|Tue||Feb 26||Verification: Program Analysis||Section 6.4 (omit 184.108.40.206 and 220.127.116.11)
An Axiomatic Basis for Computer Programming by C.A.R. Hoare
(available freely from the campus network)
|Thu||Feb 28||Symbolic Execution||Sections 6.5 (omit 6.5.2) and 6.7|
|Tue||Mar 5||Management of Software Engineering
Tools and Environments
|Chapter 8 (sections 8.1, 8.2 (up to, and
including 18.104.22.168), and 8.3)
|Thu||Mar 7||Review||Ariane 5: Who Dunnit?>
(available freely from the campus network)
|Tue||Mar 12||Project presentations|| |
|Thu||Mar 14||Project presentations|| |
|Sat||  Mar 16  ||Final Exam|| |
ProjectsDetails on iLearn.
Attendance and basic etiquetteStudents are required to attend, follow, and actively participate in all lectures and discussions. All lectures, discussions, and exams start at the stated time. Avoid being late coming to class, as this is very disruptive. Students are requested to refrain from using electronic devices (laptops, cell phones, music players, etc.) during lectures, exams, and discussions. Recording the lecture (audio or video) is prohibited.
If, for some compelling reason, you need to receive calls, be sure to put your cell phone in silent mode, and excuse yourself from the class if you need to take a call.
In class examinationsExams should test your understanding, not your memorization, of the material. Hence, you can use your textbook and your class notes during in-class exams. However, you must check with the instructor before consulting any additional references. No electronic devices can be used during the exam. You must do at least somewhat well in these in-class exams in order to pass the course.
Make-up policyNo quiz make-ups. No midterm make-ups per se, but if for some good reason (e.g., illness), you can't take the midterm on the official date, your final will be comprehensive. You need advance permission from the instructor for this (i.e., prior to the midterm).
Academic IntegrityAcademic integrity will be strictly enforced. Any violation or suspected violation of academic integrity will be dealt with according to the Academic Integrity Policy & Procedures. An excellent, detailed guide to what constitutes academic dishonesty and the procedure in case of academic integrity violations is available here.
What constitutes academic dishonesty?In short: acts including but not limited to, cheating, fabrication, plagiarism, unauthorized collaboration, or facilitating any of the above.
What are the penalties and sanctions for academic dishonesty?In short: if a student is found guilty of academic dishonesty, penalties range from receiving an F for the class and adding a record of violation to the student's file, up to dismissal from the University, depending on the severity of the infraction and the number of prior violations of the integrity code.
Ignorance is no excuse.The above information is not designed to threaten or intimidate the student. Rather, it is presented to inform the individual of the consequences. The important thing to remember is that if there is any doubt in one's mind that an act is in violation of academic integrity guidelines, then the prudent response would be not to do the act. It is a simplistic approach, to be sure, but one that will benefit both the student and the university community as a whole.
Slides used in this course are based on material provided by the textbook authors.