Week |
Tuesday |
Thursday |
1
|
Jan 9
|
Lecture 1: Introduction and setup
|
- Course overview, administration, set up
- Projects and team work
- Introduction to software engineering
|
|
Jan 9
|
Lecture 2: Project 1 application specification
|
- Customer requests, goals, requirements
- Discussion of features, options, considerations
- Technical advise on data structure organization
|
|
2
|
Jan 14
|
Lecture 3: Software development process, version control
|
- Source code management, version trees
- Version control, Concurrent Versions System (CVS)
- Linux software development tools
|
|
Jan 16
|
Lecture 4: Graphical User Interface (GUI)
|
- Introduction to GUI programming
- Portable graphics library SDL
- SDL introduction, API, demo
|
|
3
|
Jan 21
|
Team meetings
|
- Software development and documentation
- Implementation of alpha version
- Testing, debugging, packaging
|
|
Jan 23
|
Team meetings
|
- Software development and documentation
- Implementation of alpha version
- Testing, debugging, packaging
|
|
4
|
Jan 28
|
Lecture 5: Team presentations
|
- Project status and discussion
- Software specification for users and developers
- Data structure design, implementation, status
|
|
Jan 30
|
Lecture 6: Team presentations
|
- Project status and discussion
- Software specification for users and developers
- Data structure design, implementation, status
|
|
5
|
Feb 4
|
Midterm Exam and Competition
|
- Oral exam: main project responsibility, Q+A
- Peer evaluation: individual project contribution
- Team competition: Chess tournament
|
|
Feb 6
|
Break
|
- Wrap up Project 1
- Collect data from team accounts
|
|
6
|
Feb 11
|
Lecture 7: Project 2 application specification
|
- Customer requests, goals and requirements
- Discussion of features, options, considerations
- Technical advise on project partitioning
|
|
Feb 13
|
Lecture 8: Project 2 technical discussion
|
- Application components, pipeline structure
- Technical advise on approach and algorithm
- Technical advise on data structure organization
|
|
7
|
Feb 18
|
Team meetings
|
- Software specification and documentation
- Discussion of features and goals
- Project architecture, team partitioning
|
|
Feb 20
|
Team meetings
|
- Software specification and documentation
- Software architecture design
- Software partitioning, definition of APIs
|
|
8
|
Feb 25
|
Lecture 9: Software optimization, C++ concepts
|
- Linux compiler tool chain, optimization
- Software profiling and coverage testing
- Introduction to C++ concepts,
classes and objects
|
|
Feb 27
|
Team meetings
|
- Software development and documentation
- Implementation of alpha release
- Testing, debugging, packaging
|
|
9
|
Mar 4
|
Lecture 10: Outlook towards C++
|
- C++ classes, a deeper look
(1),
(2)
- Members, methods, constructors, destructors
- Function overloading, default arguments
|
|
Mar 6
|
Team meetings
|
- Software development and documentation
- Implementation of beta release
- Optimization, testing, debugging, packaging
|
|
10
|
Mar 11
|
Lecture 11: Team presentations
|
- Project status and discussion
- Software presentation for users and developers
- Approach, implementation, demonstration
|
|
Mar 13
|
Lecture 12: Team presentations
|
- Project status and discussion
- Software presentation for users and developers
- Approach, implementation, demonstration
|
|
Final
|
Mar 18
|
Final Exam
|
9:30am - 4:00pm in EH 1151
Refer to Lecture 12 for details
|
|
|