CS 5704: Software Engineering | |||||
Fall 2015 |
Instructor: | |
Instructor office hours: | After class, or by email appointment |
Teaching Assistant (TA): | Haitham Elmarakeby [marakeby@vt.edu] |
TA office hours: | Tue 9:00-11:00AM at 2160-U Torgersen Hall or by email appointment |
Lectures: | Monday and Wednesday, 2:30-3:45PM, 231 McBryde Hall |
Catalog description:
Study of the principles and tools applicable to the methodical construction and controlled evolution of complex software systems. Tools for all phases of the life cycle are presented; particular attention focuses on the design, testing, and maintenance phases. Attention to measurement models of the software process and product which allow quantitative assessment of cost, reliability, and complexity of software systems.
Detailed Description:
This class has two objectives: (1) provide a useful overview of the state of the art (2) introduce some of the research frontiers of the field. It accomplishes this through a mix of lectures and assignments focused on the state of the art, readings from the research literature, and guest lectures from specialists in sub-areas of software engineering.
Prerequisites
Graduate or senior standing in the Department of Computer Science and a prior course in software engineering, e.g., CS 4704.
The majority of the readings in the course will be papers available through the IEEE or ACM Digital Libraries. The instructor will provide all necessary readings.
The following books are recommended for background and reference:
There are four elements to your grade: a final exam, a research project, short paper summaries, and class attendance and participation.
Distribution of points:
CTTC | 25 % |
Research Project (Assignments) | 30 % |
Course Exam | 25 % |
Class Attendance and Participation | 20 % |
CTTC:
The short paper summaries “allow you” to demonstrate that you've read and thought about the assigned readings. Readings are assigned, as shown in the schedule, each week of the class. You are obliged to write a short summary and analysis of each week's papers. I am not interested in only reading a paraphrase of each paper's abstract. I am interested in reading your assessment of each paper: what points do you believe to be the important ones? Do you believe those points? Why or why not? What points did the author(s) not address that they should have? Since multiple papers are assigned, you'll have to learn how to present incisive, cut-to-the-chase (CTTC) analyses in few words.
Your CTTC's on each topic are due the night before class at 8:00PM (i.e., the night before the discussion of those papers). Each week you will submit a single PDF file with your summary for every paper assigned for that week. Your comments for each assigned paper should use at least half a page of a letter-sized document.
CTTC's must be submitted as follows:
Research Project (Assignments):
The research project allows you to obtain some research experience in software engineering in a particular problem. In this project, you will pick a problem that is of interest to you, review the literature related to that problem, evaluate the current approaches for solving the problem, and propose a new approach of your own to address the problem.
Course Exam:
The final exam will entail your writing an evaluation of some sub-area of software engineering and identifying what you believe to be promising, or at least necessary, research directions. You'll be able to choose, in advance, the sub-area you'll write about. The purpose here is to demonstrate that you've thought substantively about an area of software engineering, to the point where you can identify some important needs, trends, opportunities, insights, ...
Schedule (tentative) | ||||
Week | Date | Topic | Meeting Type | Assignment |
1 | 24 Aug | Introduction to Software Engineering (Guest lecture by Eli Tilevich) | Lecture | Read 3 papers for CTTC1 |
26 Aug | Introduction to Software Engineering (Guest lecture by Eli Tilevich) | Discussion CTTC1 | ||
2 | 31 Aug | Attend Distinguished Lecture by Laurie Hendren at McBryde 655 (see http://manta.cs.vt.edu/cs5944/Talks/Hendren_Graduate_Seminar_Announcement.pdf) | Lecture | Read papers for CTTC2 (see Canvas). Read Assignment 1 (see Canvas). Write a short CTTC for Dr. Hendren’s Distinguished Lecture. |
1 Sep | Submission | CTTC1 due by 8PM (extended because of late adds) | ||
2 Sep | Introduction to the Course. Software Process. | Lecture | ||
3 | 7 Sep | Labor Day. No Class. | ||
8 Sep | Submission | CTTC1 due by 8PM. CTTC2 due by 8PM. Short CTTC for Dr. Hendren’s Distinguished Lecture due by 8PM. | ||
9 Sep | Software Process | Discussion CTTC2 | Read papers for CTTC3 | |
4 | 14 Sep | Requirements | Lecture | |
15 Sep | Submission | CTTC3 due by 8PM. Assignment 1 due by 8PM. | ||
16 Sep | Requirements | Discussion CTTC3 | Read papers for CTTC4. Read Assignment 2. | |
5 | 21 Sep | Software Architecture | Lecture | |
22 Sep | Submission | CTTC4 due by 8PM | ||
23 Sep | Software Architecture | Discussion CTTC4 | Read papers for CTTC5 | |
6 | 28 Sep | Design | Lecture | |
29 Sep | Submission | CTTC5 due by 8PM Assignment 2 due by 8PM | ||
30 Sep | Design | Discussion CTTC5 | Read papers for CTTC6 Read Assignment 3 | |
7 | 5 Oct | Usability | Lecture | |
6 Oct | Submission | CTTC6 due by 8PM | ||
7 Oct | Usability | Discussion CTTC6 | Read papers for CTTC7 | |
8 | 12 Oct | Quality | Lecture | CTTC8 papers available Assignment 4 available |
13 Oct | Submission | CTTC7 due by 8PM Assignment 3 due by 8PM | ||
14 Oct | Quality | Discussion CTTC7 | ||
9 | 19 Oct | Testing and Debugging | Lecture | Read at least 1st paper of CTTC8 before class CTTC9 papers available |
20 Oct | Submission | CTTC8 due by 8PM | ||
21 Oct | Testing and Debugging | Discussion CTTC8 | ||
10 | 26 Oct | Software Repositories | Lecture | Read at least 1st paper of CTTC9 before class CTTC10 papers available Assignment 5 available |
27 Oct | Submission | CTTC9 due by 8PM Assignment 4 due by 8PM | ||
28 Oct | Software Repositories | Discussion CTTC9 | ||
11 | 2 Nov | Development Support | Lecture | Read at least 1st paper of CTTC10 before class CTTC11 papers available |
3 Nov | Submission | CTTC10 due by 8PM | ||
4 Nov | Development Support | Discussion CTTC10 | ||
12 | 9 Nov | Program Comprehension | Lecture | Read at least 1st paper of CTTC11 before class CTTC12 papers available Assignment 6 available |
10 Nov | Submission | CTTC11 due by 8PM Assignment 5 due by 8PM | ||
11 Nov | Program Comprehension | Discussion CTTC11 | ||
13 | 16 Nov | Software Maintenance | Lecture | Read at least 1st paper of CTTC12 before class CTTC13 papers available |
17 Nov | Submission | CTTC12 due by 8PM | ||
18 Nov | Software Maintenance | Discussion CTTC12 | ||
14 | 23 Nov | Thanksgiving Holiday. No Class. | ||
25 Nov | Thanksgiving Holiday. No Class. | |||
15 | 30 Nov | Open Source | Lecture | Read at least 1st paper of CTTC13 before class CTTC14 papers available |
1 Dec | Submission | CTTC13 due by 8PM Assignment 6 due by 8PM | ||
2 Dec | Open Source | Discussion CTTC13 | ||
16 | 7 Dec | Software Visualization and Exam Discussion | Lecture | Read at least 1st paper of CTTC14 before class |
8 Dec | Submission | CTTC14 due by 8PM | ||
9 Dec | Software Visualization and Exam Discussion | Discussion CTTC14 | ||
Exams week | 14 Dec | Exam |
VPI & SU Honor Code is applicable. Consequences of cheating in this class: a letter in your academic file, and the course grade is lowered, most likely to F. Material that is copied from books or Web pages needs to be quoted and the source must be given. If you plagiarize, you run the severe risk of failing the class, in a most disgraceful manner.