| me |
Research | Publications |
Teaching | Students | CV | Software | Funding | Activities |
![]() |
Lecture
(#17050). TTH 12:30PM to 2PM in ENS 116. Labs: Tue 6:30 PM to 9:30 PM in ENS 307 or Wed 6:30-9:30PM in ENS 307 Office Hours: TTH 2:00 PM-3:00 PM in ACES 5.118 Teaching Assistant: TBD |
| Lectures (T/TH) |
Laboratory (T or W) |
Assignments, Quiz, Project, and Exams | |
| Week 1 (8/30) |
Lecture
1.
Overview |
||
| Week 2 (9/4, 9/6) |
Lecture 2. Collaborative Software Development Version Control System) Version Merging and Conflict Resolution Problem Report Database |
Exercise
1a:
Subversion
Version Control System Exercise 1b: Project - Saros (Distributed Pair Programming) |
|
| Week 2 (9/11, 9/13) |
Lecture
3. Requirements Analysis using UML Use Cases and Statecharts Lecture 4. Object-Oriented Design and Analysis using UML Class Diagram and Message Sequence Charts |
Exercise 2: UML |
Quiz 1. Subversion and Version Merging (Thursday) |
| Week 3 (9/18, 9/20) |
Lecture
5. UnixCommands Part 1 Lecture 6. Unix Commands and Shell Scripting Part 2 |
Exercise 3: Unix Environment and Command-line Utilities and Shell Scripting | Quiz 2. Unix Commands and Shell Scripting (Thursday) |
| Week 4 (9/25, 9/27) |
Class Presentations. |
Project Part A. New Feature Proposal. Maximum 5 Slides in PPT/PDF. Maximum 5 pages report in Word/PDF (Due: Tuesday, 12:29PM)
|
|
| Week 5 (10/2, 10/4) |
Lecture 7. Information Hiding Principle Lecture 8. Design Patterns Part 1 Abstract Factory, Factory Method, Singleton, Adapter, Flyweight, Bridge, Observer, Mediator, Strategy, Visitor |
Exercise
4: UML |
Assignment 1. Paper Review Report
(Max 500 words due in class Tuesday 12:29PM) On the criteria to be used in decomposing systems into modules, DL Parnas |
| Week 6 (10/9, 10/11) |
Lecture 10. Design Patterns Part 2 Lecture 11. Design Patterns Part 3 |
Exercise
5:
Improving Design Design Pattern and Refactoring |
Quiz 3. Design Patterns (Thursday) |
| Week 7 (10/16, 10/18) |
Lecture 12. Design Patterns Part 4 Lecture 12. Refactoring |
Assignment 2. Investigation and Analysis of Design
Patterns (Maximum 5 pages report due in class Thursday
12:29PM) |
|
| ek 9 (10/23, 10/25) |
Lecture
13. Testing,
Statement, Branch, and Path Coverage, JUNIT Lecture 14. Continuation on Test Coverage, Test Generation, and Regression Test Selection |
Exercise 6:jUnit Testing | Assignment 3. Paper Review Report (Max 500 words due in class Thursday 12:29 PM) Regression test selection for Java software, Harrold et al. |
| Week 10 (10/30, 11/1) |
Continuation
on
Test Coverage, Test Generation, and Regression Test Selection |
Quiz 4. Test Coverage/ Generation (Thursday) |
|
| Week 11 (11/6, 11/8) |
Lecture
15.
Build Management and Documentation, ANT, JAVADOC Lecture 16. Debugging and Eclipse Debugger, GDB, DDD, Delta Debugging Lecture 17. Software Inspection, Hoare Logic |
Exercise
8:
Eclipse Debugger Exercise 9: Bug Finding & FindBug |
Assignment 4. Paper Review Report (Max 500 words due in class Thursday 12:29 PM) Yesterday, my program worked. Today, it does not. Why? |
| Week 12 (11/13, 11/15) |
Class
Presentations and Demo |
Project Part B. New Feature Implementation Progress. Maximum 5 Slides in PPT/PDF. Maximum 5 pages report in Word/PDF (Due: Tuesday, 12:29PM)
|
|
| Week 13 (11/20, 11/22) |
Lecture
18.
Hoare Logic, Loop Invariant, Lecture 19. Data Flow Analysis, Program Slicing |
Exercise 10: Program Understanding | Assignment 5. Test Generation (Both
test programs and hard copy report report due in class Thursday
12:29 PM) |
| Week 14 (11/27, 11/29) |
Lecture
19. Dynamic Program Analysis, Profiler, and Runtime Verification Lecture 20. Software Visualization |
Assignment 6. Assertions based on
Weakest Preconditions (Both program and hard copy report
due in class Thursday 12:29PM) |
|
| Week 15 (12/4, 12/6) |
Class
Presentations and Demo |
Project Part C. New Feature Implementation Final Demonstration. Maximum 5 Slides in PPT/PDF. Maximum 5 pages report in Word/PDF (Due: Tuesday, 12:29PM)
|
|
Students are encouraged to use their personal laptops. It is
a student's responsibility to install required software and ensure
that it is working correctly. Students are strongly
encouraged to install all necessary software systems and environments in
the beginning of the class to ensure timely progress of weekly labs,
assignments, and projects. If a student chooses to use software systems
that are not endorsed by the teaching team and, and as a result, if this
makes it inconvenient or unable for the teaching team to grade his or her
assignments, the student may not receive any score for the
assignments.
Unix or Linux installation for BASH shell scripting and running Unix
commands, or MacOS with X11 or Terminal, or Cygwin
installation for Windows OS; Subversion
Client installation or Subclipse
Eclipse plug-in; Account creation in Assembla
and Piazza; Eclipse
Classic 3.7.1 or later or Eclipse versions of Eclipse for Plug-In
development; ArgoUML or
other UML diagram software systems; JUnit;
Ant; Eclipse debugger; gdb;
FindBug and Java
6 or later versions.
![]() |