1
课程详述
COURSE SPECIFICATION
以下课程信息可能根据实际授课需要或在课程检讨之后产生变动。如对课程有任何疑问,请
联系授课教师。
The course information as follows may be subject to change, either during the session because of unforeseen
circumstances, or following review of the course at the end of the session. Queries about the course should be
directed to the course instructor.
1.
课程名称 Course Title
C 程序设计基础 Introduction to C Programming
2.
授课院系
Originating Department
计算机科学与工程系 Department of Computer Science and Engineering
3.
课程编号
Course Code
CS111
4.
课程学分 Credit Value
3
5.
课程类别
Course Type
通识必修课程 General Education (GE)Required Courses
6.
授课学期
Semester
秋季 Fall
春季 Spring
7.
授课语言
Teaching Language
中英双语 English & Chinese
8.
他授课教师)
Instructor(s), Affiliation&
Contact
For team teaching, please list
all instructors
王文锦、工学院生物医学工程系
电话:18138734451Wechat: WenjinRGB
wangwj3@sustech.edu.cn
张振国、理学院地球与空间科学系
电话:19820223664
zhangzg@sustech.edu.cn
9.
实验员/所属学系
方式
Tutor/TA(s), Contact
待公布 To be announced
10.
选课人数限额(可不填)
Maximum Enrolment
Optional
70
2
11.
授课方式
Delivery Method
习题/辅导/讨论
Tutorials
实验/实习
Lab/Practical
其它(请具体注明)
OtherPlease specify
总学时
Total
学时数
Credit Hours
32
64
12.
先修课程、其它学习要求
Pre-requisites or Other
Academic Requirements
None
13.
后续课程、其它学习规划
Courses for which this course
is a pre-requisite
CS205
14.
其它要求修读本课程的学系
Cross-listing Dept.
None
教学大纲及教学日历 SYLLABUS
15.
教学目标 Course Objectives
通过介绍 C语言及程序设计方法,使学生了解程序设计语言的基本结构,理解通过程序设计解决实际问题的基本逻辑和过
程,较好地掌握程序设计的基本思想、方法和技巧,能够独立编写一定质量的程序并团队合作完成简单的研发项目,养成
良好的程序设计思维和习惯,初步具备利用程序设计语言和开发环境求解专业实际问题的能力,为后续的专业学习和科研
打下扎实的程序设计理论和实践基础。
The introduction to C language and programming will help students to understand the basics of program design, and the
general workflow of using programming to solve real-world problems. The students will master the basic ideas, methods
and skills of C programming. They should be able to write qualified programs independently and team-up to finish basic
projects. Most importantly, they will be trained for a programming mindset. The students are expected to use
programming tools to create solutions for actual problems in their following study and research.
16.
预达学习成果 Learning Outcomes
核心能力 1:掌握 C 语言编程的能力,能够独立使用 C 语言实现基本的算法
核心能力 2:熟悉实验设计和执行的基本步骤,以及编程类项目研发的基本流程,完成从 0 1 的项目开发
核心能力 3:初步形成利用编程解决科研和工程领域问题的思维方式,养成良好的编程习惯
Core competence 1: master the C programming, be able to use C implement basic algorithms
Core competence 2: be familiar with the steps of designing and conducting experiments related to computer science,
also the R&D workflow for programming related projects, completing a project’s development from scratch
Core competence 3: form the mindset of using programming to solve problems in science and engineering, also with a
good habit of programming (simple and elegant coding style)
17.
课程内容及教学日 (如授课语言以英文为主,则课程内容介绍可以用英文;如团队教学或模块教学,教学日历须注明
主讲人)
Course Contents (in Parts/Chapters/Sections/Weeks. Please notify name of instructor for course section(s), if
this is a team teaching or module course.)
3
1 C 语言概
课程 11小时):C 语言的发展与特点
课程 21小时):C 语言的上机使用
上机实践(2 小时):介绍 C 语言的集成开发环境,Visual Studio 安装测试,上机环境,程序基本框架,测试简单的 C
程序
2 :顺序程序设计
课程 31小时):数据的类型与运算
课程 41小时):数据的输入与输出
上机实践(2 小时) C 中的基本数据类型float, int, double, char ,常用运算符与表达式,
getchar()/putchar()scanf()/printf()函数使用,
3 :选择结构程序设
课程 51小时):逻辑判别运算
课程 61小时):选择结构实现
上机实践(2 小时):关系运算练习,if-else nested if-else switch-case语句练习,实例分析
4 :循环结构程序设
课程 71小时):三种循环控制语句
课程 81小时):常用实例分析
上机实践(2 小时)for, while, do while break
continue 的使用
5 :数组处理
课程 91小时):一维数组与二维数组
课程 101 小时):字符数组与字符串
上机实践(2 小时):数组的定义与初始化,遍历/排序/查找/增删数据,字符串及处理函数
4
6 :函数实现 1
课程 111 小时):函数及函数调用
课程 121 小时):函数递归调用
上机实践(2 小时):函数原型/定义/调用,形参与实参,值传递,递归算法,递归函数
7 :函数实现 2
课程 131 小时):数组作为函数参数
课程 141 小时):变量作用域与存储类别
上机实践(2 小时):局部与全局变量,动态与静态变量,内部与外部函数
8 :善用指针 1
课程 151 小时):指针变量与访问
课程 161 小时):指针间接引用
上机实践(2 小时):指针与指向,指针变量定义,间接访问运算
9 :利用指针 2
课程 171 小时):指针数组与多重指针
课程 181 小时):指针与函数
上机实践(2 小时):指针数组用法,指向函数的指针,返回指针值的函数
10 :用户自定义数据类型
课程 191 小时):结构体
课程 201 小时):单向链表
上机实践(2 小时):结构体类型,结构体数组使用,指针处理单向链表,枚举类型的定义与使用,typedef 的使用
11 :文件操作
课程 211 小时):文件顺序读写
5
课程 221 小时):文件随机读写
上机实践(2 小时):文件/关闭,顺序写函数,文置与定位,机读写函数掌握读和写的概念,练习读写
txt, csv文件,读写图片文件(OpenCV 算法库)
12 :程序的灵魂-算法 1
课程 231 小时):算法的现实意义
课程 241 小时):算法设计的方法
上机实践(2 小时):测试和实现简单的 C 语言算法,结合机器学习的经典案例,如 PCAK-meansKNNSVM,朴
素贝叶斯分类器,练习算法的 C程序实现
13 :程序的灵魂-算法 2
课程 251 小时):经典算法概述
课程 261 小时):经典算法的 C语言实现
上机实践(2 小时):测试和实现简单的 C 语言算法,结合机器学习的经典案例,如 PCAKmeansKNNSVM,朴
素贝叶斯分类器,练习算法的 C程序实现
14 研发实战 - 人机交互项目 1
课程 271 小时):人机交互算法设计
课程 281 小时):人机交互算法的 C 编程实现
上机实践(2 小时):利用 OpenCV 函数库,设计简单的 C 程序实现人机交互,利用摄像头传感器采集人体数据,对计
算机程序进行控制
15 研发实战 - 人机交互项目 2
课程 291 小时):C 程序的测试
课程 301 小时):C 程序的展示
上机实践(2 小时):利用 OpenCV 函数库,设计简单的 C 程序实现人机交互,利用摄像头传感器采集人体数据,对计
算机程序进行控制
16 :总结与展望
6
课程 311 小时):训练高效务实的编程思维,养成简洁优雅的编程习惯
课程 321 小时):C 语言在“产学研”中的关键角色, 未来该如何选择
上机实践(2 小时):利用 OpenCV 函数库,设计简单的 C 程序实现人机交互,利用摄像头传感器采集人体数据,对计
算机程序进行控制
1
st
weekIntroduction of C language
Lecture 11 hour):The development and characteristics of C language
Lecture 21 hour):The first C program
Exercise2 hours):introduce the IDE of C development, installation of Visual Studiobasic structure of C program,
test of simple C programs
2
nd
weekSequential program design
Lecture 31 hour):Data types and variables
Lecture 41 hour):Data I/O
Exercise2 hours):constant and variablesbasic data typesfloat, int, double, char),operators and expressions
of Cuse case of getchar()/putchar()scanf()/printf()
3
rd
weekDecision-making program design
Lecture 51 hour):Operators and expressions
Lecture 61 hour):Decision-making structure
Exercise2 hours):if-else, nested if-else and switch-case, examples of decision-making programs
4
th
weekLoop control program design
Lecture 71 hour):Three loop introductions
Lecture 81 hour):Loop examples
Exercise2 hours):the control of three loops in Cfor, while, do while),nested looploop state change
iterationsuse case of break and continue
5
th
week Arrays
7
Lecture 91 hour):Single dimensional array and multi-dimensional array
Lecture 101 hour):String and characters
Exercise 2 hours ):definition and initialization of arrays, traversal/sorting/searching/adding/removal of data,
processing of strings
6
th
weekFunctions 1
Lecture 111 hour):Definition and calling of functions
Lecture 121 hour):Recursion
Exercise2 hours):definition and calling of functions, arguments and parameters, value propagation, recursion
function and algorithm
7
th
week Functions 2
Lecture 131 hour):Array as function coefficient
Lecture 141 hour):Variables in functions
Exercise2 hours):local and global variables, dynamic and static variables, private and public functions
8
th
week Pointer 1
Lecture 151 hour):Pointer types
Lecture 161 hour):Pointer reference
Exercise2 hours):pointer and pointing, definition of pointer variables, indirect reference address
9
th
weekPointer 2
Lecture 171 hour):Pointer array
Lecture 181 hour):Pointer to functions
Exercise2 hours):pointer arrays, pointer to functions, functions returning pointer values
10
th
week User-defined data types
Lecture 191 hour):Structure
8
Lecture 201 hour):List
Exercise2 hours):types of structure, use case of structure array, pointer of list, enumerate, typedef
11
th
week File operations
Lecture 211 hour):Sequential I/O of files
Lecture 221 hour):Random I/O of files
Exercise2 hours):opening and closing of files, sequential/random reading and writing functions, file localization,
process txt, csv, image files (OpenCV library)
12
th
week The soul of program algorithms 1
Lecture 231 hour):The role of algorithms in practice
Lecture 241 hour):Basic principles of designing algorithms
Exercise2 hours):test and implement basic algorithms in C based on classical algorithms in machine learning, e.g.
PCA, K-means, KNN, SVM, naïve Bayesian classifier, exercise of C programing
13
th
week The soul of program algorithms 2
Lecture 251 hour):Introduction of classical algorithms
Lecture 261 hour):Classical algorithms in C
Exercise2 hours):test and implement basic algorithms in C based on classical algorithms in machine learning, e.g.
PCA, K-means, KNN, SVM, naïve Bayesian classifier, exercise of C programing
14
th
week R&D project - human-computer interaction (HCI) 1
Lecture 271 hour):The design of HCI algorithms
Lecture 281 hour):The implementation of HCI algorithms in C
Exercise2 hours):use OpenCV library to design basic C program, implement the HCI functions, use camera to
capture human body data and control the C program
15
th
week R&D project - human-computer interaction (HCI) 2
Lecture 291 hour):Test and execution of HCI algorithms in C
9
Lecture 301 hour):Prototype and demonstration
Exercise2 hours):use OpenCV library to design basic C program, implement the HCI functions, use camera to
capture human body data and control the C program
16
th
weekSummary and forward
Lecture 311 hour):Practice and think in C
Lecture 321 hour):Key role of C in the research and industry
Exercise2 hours):use OpenCV library to design basic C program, implement the HCI functions, use camera to
capture human body data and control the C program
18.
教材及其它参考资 Textbook and Supplementary Readings
1. C 程序设计(第三版),谭浩强,清华大学出版社,2014 3
2. [] K. N. King . C 语言程序设计:现代方法(第 2 版). 北京:人民邮电出版社,2010.3
3. C 语言程序设计现代方法 C Programming: A Modern Approach, 2nd Edition: K. N. King: 9780393979503:
Amazon.com: Books
4. 凯尼格著,高巍译.C 陷阱与缺陷. 北京:人民邮电出版社,2008.2
课程评估 ASSESSMENT
19.
评估形式
Type of
Assessment
评估时间
Time
占考试总成绩百分
% of final
score
违纪处罚
Penalty
备注
Notes
出勤 Attendance
平时
10%
课堂表现
Class
Performance
小测验
Quiz
课程项目 Projects
平时作业
Assignments
平时
50%
期中考试
Mid-Term Test
期末考试
Final Exam
40%
期末报告
Final
10
Presentation
其它(可根据需要
改写以上评估方
式)
Others (The
above may be
modified as
necessary)
20.
记分方式 GRADING SYSTEM
A. 十三级等级制 Letter Grading
B. 二级记分制(通过/不通过) Pass/Fail Grading
课程审批 REVIEW AND APPROVAL
21.
本课程设置已经过以下责任人/委员会审议通过
This Course has been approved by the following person or committee of authority