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