登入

課程

學年/學期 Academic Year/Semester 099 學年 第 2 學期
課程名稱 Course Name
703050-001
(中 Ch.)計算機程式設計(二)
(英 Eng.)Computer Programming (II)
授課教師 Instructor 蔡銘峰
修別 Type of Credit 必修 學分數No. of Credits 3.0
備註 Note
N/A
課程目標 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
教學方式 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.
每週課程進度與作業要求【請詳述每週課程內容/授課方式與學生預習內容/學習活動/課後作業】
Week    Topics
1    Course Introduction; World of Programming; Unix Basics; Pipe and redirection;
2    Utilities for Development, Debugging, and Optimization: editors – emacs/vi; gcc; make and makefiles; gdb/cgdb; valgrind – memory error checker; gprof – code profiler
3     Process Control: suspend, resume, kill, foreground, and background (ps, ^Z, jobs, kill, bg, fg, &); C Revisited
4    Pointer, Array, and Strings: pointer arithmetic and arrays, C string library, string manipulation
5    C Preprocessor: #define, conditional compilation, parameterized macros; Advanced Pointers (1)
6    Advanced Pointers (2): malloc, calloc, realloc, and free; memory leaks and garbage collection, dynamic arrays
7    Abstract Data Types: structures, unions, typedef, enum, casting; Basic Data Structure (1): Stack and Queue
8    Basic Data Structure (2): Linked List, Ordered Linked Lists, Double-Linked Lists, Tree
9    Midterm
10    Bitwise Operations: shift and exclusive or, inclusive or, xor encryption, testing bits
11    Module Programming: modules, public and private, extern modifier, headers, makefile for multiple files
12    Portability Problem: modularity, word size, byte order problem, alignment problem, null pointer problem
13    Basic Algorithm: searching and sorting
14    Problem Solving (1)
15    Problem Solving (2)
16    Problem Solving (3)
17    Scripting – Bash; Perl: regular expression, string processing; Scripting – Python: functional programming
18    Final Exam
評量工具與策略、評分標準 Evaluation Criteria
o Midterm: 20%
o Final Exam: 40%
o Labs & Assignments: 40%
o Bonus (participation): < 5%
教學助理基本資料 Teaching assistant tasks
教材與教學準備、實驗或實習輔助、作業諮詢與批改
指定/參考書目 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
N/A
本課程附件 Course attachments
N/A
課程進行中,是否禁止使用智慧型手機、平板等隨身設備。

需經教師同意始得使用



 
學生自評核心能力填答率: 65.31% (32/49)
能力項目說明:
A.具備有效的溝通表達能力 B.培養邏輯推理、獨立思考與創新能力
C.理解自然科學與數位科技 D.養成終身學習與自我提升能力
E.了解當代主題意識與具有國際視野 F.培養團隊合作的能力
G.擁有公民素養並能履行公民責任 H.能接受多元文化與培養人文關懷之精神
I.具有專業及道德責任的認知 J.具有藝術涵養