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 11
|
Lecture 2: Project 1 application specification
|
- Customer requests, goals, requirements
- Discussion of features, options, considerations
- Technical advise on data structure organization
|
|
2
|
Jan 16
|
Lecture 3: Software development process, version control
|
- Linux software development tools
- Source code management, version trees
- Version control, Concurrent Versions System (CVS)
|
|
Jan 18
|
Team meetings
|
- Software specification
- Software partitioning
- Software documentation
|
|
3
|
Jan 23
|
Lecture 4: Graphical User Interface (GUI)
|
- Introduction to GUI programming
- Portable graphics library SDL
- SDL introduction, API, demo
|
|
Jan 25
|
Team meetings
|
- Software development and documentation
- Implementation of alpha version
- Testing, debugging, packaging
|
|
4
|
Jan 30
|
Lecture 5: Team presentations
|
- Project status and discussion
- Software specification for users and developers
- Data structure design, implementation, status
|
|
Feb 1
|
Lecture 6: Team presentations
|
- Project status and discussion
- Software specification for users and developers
- Data structure design, implementation, status
|
|
5
|
Feb 6
|
Midterm Exam
|
- Oral exam: individual contribution to Project 1
- Q & A
|
|
Feb 8
|
Chess Tournament
|
- Team competition: Chess tournament!
- Wrap up Project 1
- Peer and course evaluation
|
|
6
|
Feb 13
|
Lecture 7: Project 2 application specification
|
- Customer requests, goals and requirements
- Discussion of features, options, considerations
- Technical advise on project partitioning
|
|
Feb 15
|
Lecture 8: Project 2 technical discussion
|
- Application components, communication
- Technical advise on approach and algorithm
- Technical advise on client/server networking
|
|
7
|
Feb 20
|
Lecture 9: Project 2 technical discussion
|
- Software specification, requirements
- Technical advise on approach and algorithm
- Technical advise on networked communication
|
|
Feb 22
|
Lecture 10: Project 2 technical discussion
|
- Software specification, requirements
- Technical advise on GUI programming
- Crash course into GTK+ programming
|
|
8
|
Feb 27
|
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 1
|
Team meetings
|
- Software development and documentation
- Implementation of alpha release
- Testing, debugging, packaging
|
|
9
|
Mar 6
|
Lecture 12: Outlook towards C++
|
- C++ classes, a deeper look
(1),
(2)
- Members, methods, constructors, destructors
- Function overloading, default arguments
|
|
Mar 8
|
Team meetings
|
- Software development and documentation
- Implementation of beta release
- Optimization, testing, debugging, packaging
|
|
10
|
Mar 13
|
Lecture 13: Team presentations
| |
- Project status and discussion
- Software presentation for users and developers
- Approach, implementation, demonstration
|
|
Mar 15
|
Lecture 14: Team presentations
|
- Project status and discussion
- Software presentation for users and developers
- Approach, implementation, demonstration
|
|
Final
|
|
Mar 22
|
Final Exam: Chat Program Field Test
|
8:00am - 10:10am in MDE AUD (RD)
(or Monday, 4:00pm - 6:10pm in HG 1800, QV)
Refer to Lectures 12 or 13 for details!
|
|