Introduction to Programming (2020 Fall Semester)

Course Description
This course intended to introduce you basic programming and design techniques. This course will be a mixture of lectures, hands-on or paper reading assignments, and exams. Students are encouraged to ask questions during lectures. 


Textbook
No specific textbook. All required reading material will be provided.

Instructor
Chuang-Wen You (游創文), Room #9417, 4th Floor, Extended Education Building, Nanda Campus (南大校區推廣教育大樓4樓9417室); Office hour: by appointment via email, email: cwyou2004 (at) gmail (dot) com


Teaching assistants & office hours
Jui-Wei Huang; Office hour: appointment by email, email: intro.prog.arts (at) gmail.com

Course material
Please download from the NTHU eLearn Course Webpage


Schedule

Weeks Dates Topics Homework Computer-Based Test

1

9/15

Course Introduction & Logistics [slides]

2

9/22

Variables, Datatypes & constants, Operators, Expression & statements [slides]

Homework 1 (due: 9/29) Lab 1

3

9/29

Basics of Functions, C Input/Output, Coding Style, If/else statement, C-style casting [slides]

Homework 2 (due: 10/6) Lab 2

4

10/6

Functions and modular programming, Variable scope, while/for loops, Array, C strings [slides]

Homework 3 (due: 10/13) Lab 3

5

10/13

Switch-case statement, Pointer, Multidimensional array [slides]

Homework 4 (due: 10/20) Lab 4

6

10/20

Recursive function, Stack, Queue [slides]

Homework 5 (due: 10/27) Lab 5

7

10/27

User-defined datatype, sizeof, typedef, dynamic memory management, linked list [slides]

Homework 6 (due: 11/3) Lab 6

8

11/3

Other user-defined datatypes, modular programming, extern and static keywords, pointer arithmetic [slides]

Pre-midterm exercise

9

11/10

Midterm exam

10

11/17

Review [slides]

Lab 7

11

11/24

Object-oriented programming [slides]

Lab 8

12

12/1

C++ namespace, I/O library, string, inheritance [slides]

Homework 7 (due: 12/8) Lab 9

13

12/8

Object life cycle, function overloading, stringstream [slides]

Homework 8 (due: 12/15) Lab 10

14

12/15

Boolean type, pointer & reference, operator overloading, virtual inheritance [slides]

Homework 9 (due: 12/22) Lab 11

15

12/22

Containers, iterator, template, useful algorithms from STL [slides]

Homework 10 (due: 12/29) Lab 12

16

12/29

Review [slides]

Pre-final exercise Lab 13

17

1/5

Dynamic memory allocation for C++ [slides]


18

1/12

Final exam


Grading

Homework + Hands-On Assignment + Exam + Participation

References
TBD



Last Update: Jan. 26, 2021