學年學期 Academic Year / Semester 103學年度第2學期 Spring Semester, 2015
開課單位 Course Department 資科一 Freshman Class of Department of Computer Science
課程名稱 Course Name (中 Ch.)計算機程式設計(二) (英 Eng.)Computer Programming (II)
授課教師 Instructor 蔡銘峰 TSAI MING-FENG
職稱 Title 專任助理教授 Assistant Professor
學分數 No. of Credits 3.0
修別 Type of Credit 必修 Required
先修科目 Prerequisite(s)
點閱核心能力分析圖與授課方式比例圖
課程目標 Course objectives

This course is designed to provide a substantial exposure to the C programming language in a Unix environment for students with basic programming experience.

課程大綱 Course Description

The content of the course includes the following topics:

o Part I – Advanced Features of C
• Pointer and Arrays
• C Preprocessor
• Bitwise Operations
• File Input/Output
• Debugging and Optimization
• Advanced Pointers
• Modular Programming
• Portability Problem

o Part II – Advanced Unix Tools
• Unix Basics: essential commands, pipes, redirections
• Effective Programming: emacs/vi, svn/git, make, gdb
• Useful Tools: grep, sed, diff, xargs, find, …
• Scripting: Bash, Perl/Python

o Part III: Simple Data Structure and Algorithms
• Queue, Stack, Linked List
• Searching, Sorting

上課進度 Class schedule

Week    Topics
1    Course Introduction
2    Unix Basics: Process Control
3     Unix Basics: Setup Environment
4    C Revisited; Pointer, Array, and Strings
5    Advanced Pointers (1): malloc, calloc, realloc, and free
6    Advanced Pointers (2): Dynamic Allocation
7    Module Programming
8    Basic Data Structure (1): Stack and Queue
9    Midterm
10    Basic Data Structure (2): Linked List
11    Basic Data Structure (3): Tree
12    Basic Algorithm (1): Big O nation, Algorithm Analysis
13    Basic Algorithm (2): Searching and Sorting
14    Problem Solving (1)
15    Problem Solving (2)
16    Problem Solving (3)
17    Basic Shell Programming
18    Final Exam

教學方式 Teaching approach

The course will involve lectures by instructor, lab exercises, and programming assignments on various topics. Students are expected to participate the exercises, and write the assignments on their own. There will be a midterm conducted as a written test, and a final exam including written and programming tests.

教學助理工作項目 Teaching assistant tasks

教材與教學準備、實驗或實習輔助、作業諮詢與批改

課程要求/評分標準 Course requirements/Grading standards

o Midterm: 30%
o Final Exam: 35%
o Labs & Assignments: 35%
o Bonus (participation): < 5%

參考書目 Textbook & references (為維護智慧財產權,請務必使用正版書籍)

o The C programming Language (2nd Edition), K&R.
o Advanced C, Peter D. Hipson.
o C Unleashed, Richard Heathfield et al.
o Unix Unbounded a beginning approach, AMIR Afzal.

課程相關連結 Course related links

本課程附件 Course attachments
課程進行中,是否禁止使用智慧型手機、平板等隨身設備。

需經教師同意始得使用