| Time | 9:00 - 17:00, August 11 - 15, 2008 |
| Venue | Simulated Trading Room |
| Instructor | Shih-Fen Cheng (sfcheng@smu.edu.sg) Office: SIS 4031, Tel: 6828-0526 |
| Teaching Assistant | NGUYEN Thi Duong (thiduongn.2005@sis.smu.edu.sg) |
| Syllabus | Download PDF |
The purpose of this workshop is to teach you the basics of programming in C++. Upon completing this workshop, participants will be able to write moderately complex object-oriented C++ programs, understand the basics of object orientation, and know the core C++ standard library. Another goal is to teach participants how to become a better software developer and write higher-quality code.
Focus areas:
A C++ development environment is required for the workshop. It is recommended that students use Microsoft Visual C++ 2008 Express Edition since the instructor will use this tool for his in-class C++ examples. It can be freely downloaded from Microsoft (http://msdn.microsof t.com/vstudio/express/downloads/).
To reduce setup time, it is strongly recommended that you bring your own laptop with C++ environment pre-installed on it. This is very important as you will be required to perform in- class coding exercises every afternoon.
The following schedule and topics may change based on the experience of the class. We have very limited time, so I will pack a lot into each lecture and lab. I will notify you any major changes in the schedule during the course of the workshop.
Please submit exercises and project handed out in-class everyday to the instructor by email before 9AM next day (e.g., for exercises and project handed out on Monday, submit them before 9AM on Tuesday). You performances on these submissions constitute your participation credit..
When submitting exercises and project, using the following naming rule:
| Session | Topic | Material |
|---|---|---|
| 9:00-10:30 | Course Overview and Introduction The Foundations of C++ Software Development Process/Tools |
1.1 1.2 |
| 10:30-10:45 | Break | |
| 10:45-12:30 | Getting Started with C++, Part 1 | 1.3 |
| 12:30-1:30 | Lunch | |
| 1:30-3:00 | Getting Started with C++, Part 1 Programming Exercises | day1_ex.zip |
| 3:00-3:15 | Break | |
| 3:15-5:00 | Programming Exercises Programming Project 1 | day1_prj.zip |
| Supplementary Materials | ||
| - | Example codes used in lectures | day1_lecture.zip |
| - | Precedence relation table | Precedence.pdf |
| - | Project 1 Solution | day1_prj_sol.cpp |
| Session | Topic | Material |
|---|---|---|
| 9:00-10:30 | Day 1 Exercises and Project Solutions Getting Started with C++, Part 2 | 2.1 |
| 10:30-10:45 | Break | |
| 10:45-12:30 | Additional Notes on Variables and Data Types | 2.2 |
| 12:30-1:30 | Lunch | |
| 1:30-3:00 | Programming Exercises | day2_ex.zip |
| 3:00-3:15 | Break | |
| 3:15-5:00 | Programming Exercises | - |
| Supplementary Materials | ||
| - | Example codes used in lectures | day2_lecture.zip |
| Session | Topic | Material |
|---|---|---|
| 9:00-10:30 | Day 2 Exercises Solutions The Motivation for an OOP Paradigm | - 3.1 |
| 10:30-10:45 | Break | |
| 10:45-12:30 | Object-Oriented Programming Primer | 3.2 |
| 12:30-1:30 | Lunch | |
| 1:30-3:00 | OOP Examples | 3.3 |
| 3:00-3:15 | Break | |
| 3:15-5:00 | Programming Exercises Programming Project 3 | day3_ex.zip day3_prj.zip |
| Supplementary Materials | ||
| Session | Topic | Material |
|---|---|---|
| 9:00-10:30 | Day 3 Exercises and Project Solutions More OOP Examples | - |
| 10:30-10:45 | Break | |
| 10:45-12:30 | Debugging C++ Programs Coding Techniques | 4.1 4.2 |
| 12:30-1:30 | Lunch | |
| 1:30-3:00 | Programming Project 4 | day4_prj_1.txt day4_prj_2.txt |
| 3:00-3:15 | Break | |
| 3:15-5:00 | Programming Project 4 | - |
| Supplementary Materials | ||
| - | Example codes used in lectures | day4_lecture.zip |
| Session | Topic | Material |
|---|---|---|
| 9:00-10:30 | Day 4 Exercises and Project Solutions | - |
| 10:30-10:45 | Break | |
| 10:45-12:30 | An Introduction to the STL | 5.1 |
| 12:30-1:30 | Lunch | |
| 1:30-3:00 | Workshop Wrap-up | 5.2 |
| 3:00-3:15 | Break | |
| 3:15-5:00 | Programming Exercises | day5_ex.txt |
| Supplementary Materials | ||
| - | Example codes used in lectures | day5_lecture.zip |
| - | - | toUpper.cpp |