Week |
Tuesday |
Thursday |
1
|
Jan 6
|
Lecture 1: Introduction and setup
|
- Course overview, administration, set up
- Projects and team work
- Introduction to software engineering
|
|
Jan 8
|
Lecture 2: Project 1 application specification
|
- Customer requests, goals, requirements
- Discussion of features, options, considerations
- Technical advise on data structure organization
|
|
2
|
Jan 13
|
Lecture 3: Software development process, version control
|
- Linux software development tools
- Source code management, version trees
- Version control, Concurrent Versions System (CVS)
|
|
Jan 15
|
Lecture 4: Graphical User Interface (GUI)
|
- Introduction to GUI programming
- Portable graphics library SDL
- SDL introduction, API, demo
|
|
3
|
Jan 20
|
Team meetings
|
- Software development and documentation
- Implementation of alpha version
- Testing, debugging, packaging
|
|
Jan 22
|
Team meetings
|
- Software development and documentation
- Implementation of alpha version
- Testing, debugging, packaging
|
|
4
|
Jan 27
|
Lecture 5: Team presentations
|
- Project status and discussion
- Software specification for users and developers
- Data structure design, implementation, status
|
|
Jan 29
|
Lecture 6: Team presentations
|
- Project status and discussion
- Software specification for users and developers
- Data structure design, implementation, status
|
|
5
|
Feb 3
|
Midterm Exam and Competition
|
- Oral exam: individual contribution to Project 1, Q+A
- Team competition: Chess tournament!
|
|
Feb 5
|
Break
|
- Wrap up Project 1
- Peer and course evaluation
- Collect data from team accounts
|
|
6
|
Feb 10
|
Lecture 7: Project 2 application specification
|
- Customer requests, goals and requirements
- Discussion of features, options, considerations
- Technical advise on project partitioning
|
|
Feb 12
|
Lecture 8: Project 2 technical discussion
|
- Application components, communication
- Technical advise on approach and algorithm
- Technical advise on client/server networking
|
|
7
|
Feb 17
|
Lecture 9: Project 2 technical discussion
|
- Software specification, requirements
- Technical advise on approach and algorithm
- Technical advise on networked communication
|
|
Feb 19
|
Team meetings
|
- Software specification and documentation
- Software architecture design
- Software partitioning, definition of APIs
|
|
8
|
Feb 24
|
Lecture 10: Project updates, Intro to C++ concepts
|
- Project specification and discussion
- Technical advise on protocols and algorithm
- Introduction to C++ concepts,
classes and objects
|
|
Feb 26
|
Team meetings
|
- Software development and documentation
- Implementation of alpha release
- Testing, debugging, packaging
|
|
9
|
Mar 3
|
Lecture 11: Outlook towards C++
|
- C++ classes, a deeper look
(1),
(2)
- Members, methods, constructors, destructors
- Function overloading, default arguments
|
|
Mar 5
|
Team meetings
|
- Software development and documentation
- Implementation of beta release
- Optimization, testing, debugging, packaging
|
|
10
|
Mar 10
|
Lecture 12: Team presentations
|
- Project status and discussion
- Software presentation for users and developers
- Approach, implementation, demonstration
|
|
Mar 12
|
Lecture 13: Team presentations
|
- Project status and discussion
- Software presentation for users and developers
- Approach, implementation, demonstration
|
|
Final
|
|
|