Overview
Computer
Programming is the craft of writing a series of instructions that make
a computer (or computers) perform an action or a particular type of
work. The focus is on systematic problem solving. To ensure
the high quality of the programs, good engineering practices
and disciplines will be enforced throughout the process of developing
computer program.
Objective
In this course, students will learn- How to think systematically.
- How to record their thought.
- How to translate their thoughts into programming codes.
- How to measure their performance and quality of their products.
- How to use data to improve their personal processes.
Approach
The most effective way to learn how to write programs is learning-by-doing. Hence, in this course, students will have a lot of opportunity to master the concept of computer programming. To accomplish the objectives of this course:- Students are required to take notes and turn in the notes every week.
- Students must record data into their personal journals and turn in the journal every week.
- Every week, there will be two quizzes: one for checking the understanding of the previous topics and the other for checking readiness of students for the upcoming materials.
- The
assignments will be assigned before each topic is introduced to
encourage the student to prepare for the upcoming lecture. Another assignments will be assigned after each topic to
reinforce the understanding.
Reference
There is no official textbook for this class; however, the one that this class based on isFelleisen, M., et al., How to Design
Programs: An Introduction to Computing and Programming. MIT Press, 2001, ISBN 0262062186 www.htdp.org
Course Outline
The following schedule is tentative only; it may change depending on the circumstances.Week |
Topics |
References |
1 |
Systematic
Thinking Process |
HTDP
|
2 |
Basic
Conditional Expression |
HTDP
|
3 |
Complex
Conditional Expression |
HTDP
|
4 |
Compound
Data 1: Structure |
HTD
|
5 |
Compound
Data 2: Lists |
HTDP
|
6 |
Compound
Data 2: Lists |
HTDP
|
7 |
Composing
Functions |
HTDP
|
8 |
Midterm
Exam |
- |
9 |
Self-referential
Data: Tree |
HTPD
Ch 14 |
10 |
Abstracting
Design |
HTPD
Ch 19 – 20 |
11 |
Generative
Recursion |
HTPD
Ch 25 – 26 |
12 |
Accumulating
Knowledge |
HTPD
Ch 30 – 32 |
13 |
Repeat
week 1 – 3 in C++ |
HTDP
Ch 1 – 4 |
14 |
Repeat
week 4 – 6 in C++ |
HTPD
Ch 6 – 10, 17 |
15 |
Repeat
week 7 – 9 in C++ |
HTPD
Ch 12, 14 |
16 |
Repeat
week 10 -12 in C++ |
HTPD
Ch 19 – 20, 25 – 26, 30 - 32 |
17 |
Final
Exam |
- |
Evaluation
The course evaluation will be divided equally between examinations and assignments. The distribution of each half is shown below.Items | Weight |
Assignments | 40% |
Discussion | 10% |
Quiz | 10% |
Midterm Exam | 20% |
Final Exam | 20% |
Note that the above description is only tentative; it may change at the instructor's discretion.