职称:Professor
单位:Hangzhou Dianzi University
部门:School of Computer Science
主讲教师:Li Ping (李平)
教师团队:共4位
| 学校: | 杭州电子科技大学 |
| 开课院系: | 计算机学院(软件学院) |
| 课程负责人: | 李平 / LI Ping |
| 课程英文名称: | Programming for C Language |
| 课程编号: | A050101G |
| 学分: | 4.0 |
| 课时: | 80 |
The C Programming Language course aims to introduce the widely used programming language C for general purpose. It aims to cultivate programming-thinking centered exploration spirit, innovation & practice ability, and team spirit for international students. The teaching goal is to make students master primary applications of C language, and equip them with some basic abilities of designing and writing simple algorithms and programs.
Textbook:
The C Programming Language(2nd Edition). Brian W. Kernighan, Dennis M. Ritchie. China Machine Press. 2016.7.
Reference:
C Primer Plus (6th Edition). Stephen Prata. Posts & Telecom Press. 2016.3.
I. Course Objectives and Teaching Tasks
This is a publically fundamental course focusingon C Programming Language in English. This syllabus is tailored for internationalstudents in Science and Technology majors except for Computer Science. It aimsto cultivate programming-thinking centred exploration spirit, innovation &practice ability, and team spirit of international students.
The teaching task of this course is to makestudents: understand basic concepts of programming and fundamental methods ofsolving computer problems; master the basic idea of programming; be equippedwith the ability of reading and designing programs; accomplish the task ofwriting and debugging C programmes so as to solve simple practical problems.
Through lectures and practical courses, we aim to achieve the following goals:
1. Make students understand and master the basic concepts, commonly used functions and algorithms of C language; cultivate theirexploration ability and creative thought in programming.
2. Make students master the idea and the methods of programming; equip them with the fundamental ability of writing anddebugging programmes; cultivate their ability of solving practical problems using engineering thought.
II. Course Content and Basic Requirements
1. C Language Basics
Knowthe history background and features of C language; master at least one IDE suchas CodeBlocks and Visual C++ including practice procedure, editing, compiling,connection and running; master the structure of main function; master thenaming ways of variables; understanding the usage of library function; mastertypical input and output functions including printf(), scanf(), putchar(),getchar(); master some commonly used library functions, e.g., sqrt(), fabs(),pow().
2. Data Types, Operators and Expressions
(1) Basic data types: Understand the concepts of integer, float, char datatypes; master the definition, initialization and usage of int, float, char variables; master the constant representation ofdifferent types.
(2) Operators and expressions: Master the definition of arithmetic operators(+, -, *, /, %) and the calculation rules of different data types; master increment (++) and decrement operators (--); master the applications of six relational operators (<, <=, >, >=, ==, !=) in expressions; master three logical operators (&&, ||, !) and the definition of logical expression value; master assignment operators (=, +=, -=, /=, *=, %=, >>=, <<=, ^=, &=,|=); master comma operator (,) and conditional operator (? :).
(3) Evaluation rules, precedence and associativity: Master the evaluation rules of different operators and their precedence as well as associativity.
3. Control Statement
(1) Basic statements: Master the definition and usage of expressionstatement, assignment statement, compound statement, null statement.
(2) Flow control statements: Master typical control statements including break, continue, return, compound control statements including for, while, do-while, and branch control statements including if and switch-case; learnhow to write programs using control statements.
(3) Basic programming: Master some simple programming idea, e.g., calculate the maximum value and the minimum value of a group of data; apply double-loopor multiple-loop to programming.
4. Function and Program Structure
(1) Function definition: Master the definition form offunction and how to define those function returning different values in variousdata types (including the function returning the pointer type)
(2) Function calling: Masterthe definition and declaration of formal arguments and actual arguments in thefunction; understand the argument passing mechanism, and value-pass calling andaddress-pass calling; master nested calling of function; know the meaning,definition and usage of recursive function.
(3) Variable scope and storage class:Understand the declaration way and the scope of local variable and globalvariable; understand the concept of storage class and the valid period ofdifferent storage types; correctly declare variables with different storage classes.
(4) The C pre-processor: Master theusage of file inclusion, macro definition and macro function; know conditionalcompiling commands.
5. Array and Pointer
(1) Master the declaration, initialization and element accessin one-dimensional array and two-dimensional array;
(2) Master the storage way of character array in memory andinput/output methods; master popular character string functions, e.g.,strlen(), sizeof().
(3) Learn how to handle some simple problems using array;master the implementations of sorting and matrix transpose.
(4) Understand the concept of pointer and address; understandthe data storage in memory, the address of memory unit and the content ofmemory unit.
(5) Understand the concept of direct access and indirectaccess.
(6) Master the declaration, initialization and usage ofpointer variable.
(7) Understand the practical meaning of pointer as functionargument and can flexibly apply pointer according to real-world situations.
(8) Master the relations between array and pointer, as wellas different applications; master the relations between pointer and string, aswell as different applications.
(9) Learn how to resolve practical problems using array andpointer.
6. Structure and Union
Master the declaration, initialization andapplication of structure variable; master the declaration and application ofstructure array and structure pointer; know the concepts of union.
7. File Input and Output
Master the usage of some standard functions relating to file read and write, such as fprintf(), fscanf(), fgets(), fputs(); learn how to input and output data using file in programs; learn how to handle practical problems using file.
III. Practical Course and Basic Requirements
This course includes 32 practical sessions in class and 32 sessions outside class.
This course requires students to capture the skills to develop C language programs on the popular IDE, such as CodeBlocks, and also be able to debug programs when necessary.
The main contents are as follows:
Write simple programs.
The declaration, initialization and usage of variableswith different data types
The precedence and associativity of various operators
The composition rule and calculation of expressions
The usage of basic statements and control statements
The usage of one-dimensional array and two-dimensionalarray
Handle strings using pointer
The usage of function, argument passing mechanism, macrodeclaration, local variables and global variables
The usage of standard functions relating to file read andwrite
IV. Correlations with Other Courses
There is one previous course and two subsequent courses w.r.t. this course.
Previous courses: College Computer Basics
Subsequent courses: C++ Programming, Java Programming
V. Teaching Organization
During the teaching process,this course adopts several appropriate teaching approaches for internationalstudents.
The details teaching approaches are listed in the following:
(1) Seminar-style teaching;
(2) Small-class teaching;
(3) Case-based teaching;
(4) Mini-discussion and quiz in the class.
VI. Teaching Period Distribution
| Teaching Content | Teaching Hours | Experiment | Practice | Computer | Self-study | Exercise | Discussion |
| C Language Basics | 6 | 4 | 4 | ||||
| Data Types | 3 | 2 | 2 | ||||
| Operators and Expressions | 3 | 2 | 2 | ||||
| Control Statement | 6 | 4 | 4 | ||||
| Function and Program Structure | 6 | 4 | 4 | ||||
| Array | 6 | 4 | 4 | ||||
| Pointer | 6 | 4 | 4 | ||||
| Structure and Union | 3 | 2 | 2 | ||||
| File Input and Output | 3 | 2 | 4 | ||||
| Exercise (quiz) | 3 | 2 | 2 | ||||
| Review (course project) | 3 | 2 | |||||
| Total | 48 | 32 | 32 | ||||
| Total | 80 sessions + 32 off-class sessions | ||||||
Note: “HW” denotes Homework and “PE” denotes Practical Exercises.
| No. | Content | Credit hour | HW/PE | Time |
| 1 | Introduction (C Language Basics) | 3 | Week 1 | |
| 2 | Introduction (Data Types) | 3 | Week 2 | |
| 3 | Introduction (Operators & Expressions) | 3 | HW-1 | Week 3 |
| 4 | Flow Control (if…else/for) | 3 | Week 4 | |
| 5 | Flow Control (while loop) | 3 | Week 5 | |
| 6 | Flow Control (break/continue/switch statement) | 3 | HW-2 | Week 6 |
| 7 | Functions (definition/calling) | 3 | Week 7 | |
| 8 | Functions (variable scope/pre-processor) | 3 | HW-3 | Week 8 |
| 9 | Arrays-A | 3 | Week 9 | |
| 10 | Arrays-B | 3 | HW-4 | Week 10 |
| 11 | Pointers-A | 3 | Week 11 | |
| 12 | Pointers-B | 3 | HW-5 | Week 12 |
| 13 | Structure & Union | 3 | Week 13 | |
| 14 | File Input & Output | 3 | Week 14 | |
| 15 | Exercise & Quiz | 3 | Week 15 | |
| 16 | Course Review | 3 | Week 16 | |
| 17 | Practice: Introduction (C Language Basics) | 2 | Week 1 | |
| 18 | Practice: Introduction (Data Types & Operators) | 2 | Week 2 | |
| 19 | Practice: Introduction (Expression) | 2 | PE-1 | Week 3 |
| 20 | Practice: Flow Control (if…else/for) | 2 | Week 4 | |
| 21 | Practice: Flow Control (while loop) | 2 | Week 5 | |
| 22 | Practice: Flow Control (break/continue/switch statement) | 2 | PE-2 | Week 6 |
| 23 | Practice: Functions (definition/calling) | 2 | Week 7 | |
| 24 | Practice: Functions (variable scope/pre-processor) | 2 | PE-3 | Week 8 |
| 25 | Practice: Arrays-A | 2 | Week 9 | |
| 26 | Practice: Arrays-B | 2 | PE-4 | Week 10 |
| 27 | Practice: Pointers-A | 2 | Week 11 | |
| 28 | Practice: Pointers-B | 2 | PE-5 | Week 12 |
| 29 | Practice: Structure & Union | 2 | Week 13 | |
| 30 | Practice: File Input & Output | 2 | Week 14 | |
| 31 | Practice: Exercise | 2 | Week 15 | |
| 32 | Course Project | 2 | Week 16 |
This course adopts closed-book examination. The overall grading policy is elaborated below.
In principle, the final score iscomposed of regular grade (daily performance) and final examination. The regular grade takes up 50%, the final examination takes up 50%, and the full mark is 100. *Note that if the course project is added into the teaching process(check the electronic material to support the project), then the percentage can be adjusted, i.e., regular grade: 60%, final examination: 40%.
Regular grade is composed of several parts, and its full mark is 100 points taking up 50% (the percentage of each part is adjustable accordingly)
1) Class-evaluation (20 points): random attendance check at least 5 times, discussion is evaluated in terms of the group performance and individuals, and at least have one quiz
2) Course homework (30 points): evaluated in terms of the quality of submitted handwritten homework (no less than 3 assignments)
3) Practical course (30 points): accomplish all the assigned exercises by group and the grade is evaluated in terms of the performance and the solution quality.
4) Course project (20 points): evaluated in terms of demo, course report and source code.(If the course project in not included, then increase the “Class-evaluation”part to 40 points)
Final examination takes up 50%,and its full mark is 100 points. The problem types refer to choice questions,reading program, simple Q&A, correct program, and programming.
| 课程章节 | | 文件类型 | | 修改时间 | | 大小 | | 备注 | |
| 1.1 Preliminaries |
视频
.mp4
|
2020-10-14 | 28.33MB | ||
|
视频
.mp4
|
2020-10-14 | 27.46MB | |||
| 1.2 Submit practice work |
视频
.mp4
|
2020-10-14 | 5.69MB | ||
|
视频
.mp4
|
2020-10-14 | 31.08MB | |||
|
视频
.mp4
|
2020-10-14 | 19.85MB | |||
| 1.3 Administrative Information |
视频
.mp4
|
2020-10-14 | 14.70MB | ||
| 1.4 Introduction to C |
视频
.mp4
|
2020-10-14 | 52.00MB | ||
|
视频
.mp4
|
2020-10-14 | 53.46MB | |||
| 2.1 Data Types |
视频
.mp4
|
2020-10-14 | 9.92MB | ||
|
视频
.mp4
|
2020-10-14 | 20.89MB | |||
|
视频
.mp4
|
2020-10-14 | 153.38MB | |||
| 2.2 Keywords & Identifiers |
视频
.mp4
|
2020-10-14 | 32.99MB | ||
|
视频
.mp4
|
2020-10-14 | 52.12MB | |||
| 2.3 Operators & Expressions |
视频
.mp4
|
2020-10-14 | 65.66MB | ||
|
视频
.mp4
|
2020-10-14 | 125.28MB | |||
| 3.1 C if ... else Statement |
视频
.mp4
|
2020-10-14 | 21.16MB | ||
|
视频
.mp4
|
2020-10-14 | 29.04MB | |||
| 3.2 C for Loop |
视频
.mp4
|
2020-03-03 | 14.28MB | ||
|
视频
.mp4
|
2020-03-03 | 54.65MB | |||
| 3.3 C while Loop |
视频
.mp4
|
2020-03-03 | 11.97MB | ||
|
视频
.mp4
|
2020-03-03 | 8.49MB | |||
|
视频
.mp4
|
2020-03-03 | 53.63MB | |||
| 3.4 break and continue |
视频
.mp4
|
2020-03-03 | 21.37MB | ||
|
视频
.mp4
|
2020-03-03 | 42.79MB | |||
| 3.5 switch Statement |
视频
.mp4
|
2020-03-03 | 12.26MB | ||
|
视频
.mp4
|
2020-03-03 | 40.50MB | |||
| 4.1 Function Types |
视频
.mp4
|
2020-03-03 | 24.34MB | ||
|
视频
.mp4
|
2020-03-03 | 34.19MB | |||
| 4.2 User-defined Functions |
视频
.mp4
|
2020-03-03 | 25.65MB | ||
|
视频
.mp4
|
2020-03-03 | 47.06MB | |||
| 4.3 Recursion |
视频
.mp4
|
2020-03-03 | 28.51MB | ||
|
视频
.mp4
|
2020-03-03 | 27.62MB | |||
|
视频
.mp4
|
2020-04-26 | 28.51MB | |||
|
视频
.mp4
|
2020-04-26 | 27.62MB | |||
| 4.4 Variable Scope & Preprocessor |
视频
.mp4
|
2020-04-14 | 25.64MB | ||
| 5.1 C Arrays Basics |
视频
.mp4
|
2020-04-14 | 28.69MB | ||
|
视频
.mp4
|
2020-04-14 | 28.61MB | |||
| 5.2 Multidimensional Array |
视频
.mp4
|
2020-04-14 | 31.78MB | ||
|
视频
.mp4
|
2020-04-14 | 30.78MB | |||
| 5.3 Arrays and Functions |
视频
.mp4
|
2020-04-14 | 43.80MB | ||
|
视频
.mp4
|
2020-04-14 | 90.18MB | |||
| 5.4 C Strings |
视频
.mp4
|
2020-04-14 | 43.10MB | ||
|
视频
.mp4
|
2020-04-14 | 77.71MB | |||
| 6.1 C Pointers Basics |
视频
.mp4
|
2020-04-14 | 45.34MB | ||
|
视频
.mp4
|
2020-04-14 | 48.15MB | |||
| 6.2 Pointers and Arrays |
视频
.mp4
|
2020-04-14 | 53.25MB | ||
|
视频
.mp4
|
2020-04-14 | 58.25MB | |||
| 6.3 Pointers and Functions |
视频
.mp4
|
2020-04-14 | 31.73MB | ||
|
视频
.mp4
|
2020-04-14 | 88.74MB | |||
| 7.1 C Structure |
视频
.mp4
|
2020-04-14 | 37.43MB | ||
|
视频
.mp4
|
2020-04-14 | 59.41MB | |||
| 7.2 C Union |
视频
.mp4
|
2020-04-14 | 8.44MB | ||
|
视频
.mp4
|
2020-04-14 | 23.03MB | |||
| 8.1 File Handling |
视频
.mp4
|
2020-04-14 | 26.49MB | ||
|
视频
.mp4
|
2020-04-14 | 49.37MB | |||
| 8.2 Standard Input & Output |
视频
.mp4
|
2020-04-14 | 8.16MB | ||
|
视频
.mp4
|
2020-04-14 | 13.17MB |