This course covers programming and data structures using C++. In addition to basic programming concepts such as variables, arrays, pointers, and functions, students will learn about the standard data structures in C++, such as vectors, sets, maps, and queues. This course will also introduce the basics of object-oriented programming and some useful algorithms in the standard C++ libraries. Weekly laboratory experiments will provide hands-on experience in programming.
- Lab exercises: 20%
- Finish exercise in the weekly lab
- Programming assignments: 50%
- Four programming assignments
- Midterm exam: 15%
- Cover materials from Week 1 - Week 7
- Final exam: 15%
- Comprehensive exam
Here is the tentative schedule for the semester:
DATE | TOPIC |
---|---|
Week 1 | Introduction to computer programming |
Week 2 | Basic syntax, data types, operators |
Week 3 | Control flow and functions |
Week 4 | Array and vector |
Week 5 | Recursion |
Week 6 | Struct and class |
Week 7 | String and stream |
Week 8 | Object-oriented Programming |
Week 9 | Pointer, reference, and iterators |
Week 10 | Inheritance and polymorphism |
Week 11 | Containers |
Week 12 | Containers |
Week 13 | C++ standard algorithm library |
Cay S. Horstmann, Big C++: Late Objects, 3rd Edition
We will have two 80-minute lectures and a one-hour lab each week.
- Stanley Lippman et al., C++ Primer, 2012
- Scott Meyers, Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14, 2014