In this course, we will introduce how to write computer programs for general purposes. The programming language we will study is C++, one of the most popular and powerful programming language nowadays. We will start from the procedural programming part of C++, which is quite similar to the programming language C, and then discuss those object-oriented features of C++. While we will spend a lot of time on how to write correct programs, we will also aim to write ¡§good¡¨ programs, i.e., those running faster, using less memory, generating friendly user interfaces, being more extendable, having better formats, etc. To enhance the learning efficiency, basic concepts of data structure, computational complexity, and algorithm design will also be discussed. There is no prerequisite for this course.
This is a required course for the freshmen in the Department of Information Management in National Taiwan University. In most cases, all students who want to enroll in or audit this course are welcome.
Week | Lecture | Special event | Lab | Special event |
1 | 2013/2/18 | The first lecture | 2013/2/20 | |
2 | 2013/2/25 | 2013/2/27 | ||
3 | 2013/3/4 | 2013/3/6 | ||
4 | 2013/3/11 | 2013/3/13 | ||
5 | 2013/3/18 | 2013/3/20 | Lab exam 1 | |
6 | 2013/3/25 | 2013/3/27 | No class: IM Night | |
7 | 2013/4/1 | 2013/4/3 | No class: Spring Recess | |
8 | 2013/4/8 | 2013/4/10 | ||
9 | 2013/4/15 | 2013/4/17 | ||
10 | 2013/4/22 | 2013/4/24 | ||
11 | 2013/4/29 | 2013/5/1 | ||
12 | 2013/5/6 | Midterm exam | 2013/5/8 | Lab exam 2 |
13 | 2013/5/13 | 2013/5/15 | ||
14 | 2013/5/20 | 2013/5/22 | ||
15 | 2013/5/27 | Project announcement | 2013/5/29 | Guest speaker: Dr. Keynes Cheng |
16 | 2013/6/3 | 2013/6/5 | ||
17 | 2013/6/10 | 2013/6/12 | ||
18 | 2013/6/17 | Final exam | 2013/6/19 | Lab exam 3 |
Project due: 23:59 on 6/23 (Sun).
Date | Before-lecture | Final | Examples | Note |
2013/2/18 | Slides | Introduction | ||
2013/2/25 | Slides | Examples | Basic data types and operations | |
2013/3/4 | Slides | Examples | Selection and repetition | |
2013/3/11 | Slides | Examples | Arrays and C++ standard library | |
2013/3/18 | Slides | Examples | Algorithms | |
2013/3/25 | Slides | Examples | Functions and Randomization | |
2013/4/8 | Slides | Examples | Pointers | |
2013/4/15 | Slides | Examples | Recursion, searching, and sorting | |
2013/4/22 | Slides | Examples | Self-defined data types | |
2013/4/29 | Slides | Strings | ||
2013/5/13 | Slides | Examples | Classes (Part 1) | |
2013/5/20 | Slides | Examples | Classes (Part 2) | |
2013/5/27 | Slides | Inheritance | ||
2013/6/3 | Slides | Polymorphism | ||
2013/6/10 | Slides | Examples | Data structures |
Item | Final version | Covered on |
Materials for Lab 1 | Download | 2013/2/20 |
Materials for Lab 2 | Download | 2013/2/27 |
Materials for Lab 3 | Download | 2013/3/6 |
Materials for Lab 4 | Download | 2013/3/13 |
Materials for Lab 5 | Download | 2013/4/10 |
Materials for Lab 6 | Download | 2013/4/17 |
Materials for Lab 7 | Download | 2013/4/24 |
Materials for Lab 8 | Download | 2013/5/1 |
Materials for Lab 9 | 2013/5/15 | |
Materials for Lab 10 | Download | 2013/5/22 |
Due date | Problems | Data | Solutions |
2013/2/25 | Homework 1 problems | N/A | Homework 1 solutions |
2013/3/4 | Homework 2 problems | N/A | Homework 2 solutions |
2013/3/11 | Homework 3 problems | Homework 3 testing data | Homework 3 solutions |
2013/3/18 | Homework 4 problems | Homework 4 testing data | Homework 4 solutions |
2013/3/25 | Homework 5 problems | Homework 5 testing data | Homework 5 solutions |
2013/4/1 | Homework 6 problems | N/A | N/A |
2013/4/15 | Homework 7 problems | N/A | Homework 7 solutions |
2013/4/22 | Homework 8 problems | Homework 8 testing data | Homework 8 solutions |
2013/4/29 | Homework 9 problems | Homework 9 testing data | Homework 9 solutions |
2013/5/20 | Homework 10 problems | Homework 10 testing data | Homework 10 solutions |
2013/6/3 | Homework 11 problems | Homework 11 testing data | Homework 11 solutions |
2013/6/11 (NOT 6/10!) | Homework 12 problems | Homework 12 testing data | Homework 12 solutions |
2013/6/17 | Homework 13 problems |
Due date | Instructions | Data |
2013/6/24 | Project instructions |
Date | Problems | Solutions | Data |
2013/3/22 | Lab exam 1 problems | Lab exam 1 solutions | Lab exam 1 testing data |
2013/5/6 | Midterm problems | Midterm solutions | N/A |
2013/5/8 | Lab exam 2 problems | Lab exam 2 solutions | Lab exam 2 testing data |
2013/6/17 | Final problems | Final solutions | N/A |
2013/6/19 | Lab exam 3 problems | Lab exam 3 solutions | Lab exam 3 testing data |
Letter | Range | Letter | Range | Letter | Range |
A+ | [90, 100] | B+ | [77, 80) | C+ | [67, 70) |
A | [85, 90) | B | [73, 77) | C | [63, 67) |
A- | [80, 85) | B | [70, 73) | C- | [60, 63) |