Fundamentals of Programming and Experiments in C

Course Code:B61002Y-01

Course Name:Fundamentals of Programming and Experiments in C

Course Properties: Public required course

Credits: 60/3.0

Pre-requisite: Introduction to Computer Science

Course Description

Programming language is the dialogue between man and machine. Based on this aspect, the main purposes of teaching Fundamentals of Programming and Experiments are:

---Stimulate students’ love to programming design
---Enable students to master the complete process of programming

---Help the students master at least one programming language

Topics and Schedule

As for public required course taking the needs of different professional students in future research into account, this course includes:
---Imperative programming design
---Object-oriented programming
it is the main content in Java class
---The coding style of GNU / The coding style of Windows

The general principle of teaching method is “Those students who have no basic knowledge can quickly get started and those students who have a good command of basic knowledge can learn useful things.”

Teaching style and concept

Different from mathematics, physics and other theoretical courses, Programming is a very practical course.
The teaching style--“teaching by coding, learning by coding” will be taken, which is “observe the master make programming and the actual teaching”, in order to overcome the defect-- "mere theoretical teaching”; Most of the teaching time (70%) is the actual teaching, and about 30% time is PPT courseware teaching.

The teaching of language and programming is based on the following 4 aspects:

---System angleViewing program behavior from the perspective of CPU and operating systemsuch as the memory image when the program runs;  Viewing program behavior from the perspective of buffer attack;
---Compile angle
The similarities and differences of program behavior caused by different programming, viewing from compiler angle;

---Application angle: Pros and cons caused by different programming languages and different programming, based on the fact that Data Structure and Algorithm Design will be open in the next year, as well as some of the practical problems;
---History angle
Teach the similarities and differences of different languages, and learn from each other, as well as historical heritage from the perspective of programming language development tree; Especially teaching language from the view of “Language designer”

The big assignment of this course

The design of the big assignment includes three basic assessment criteria:

---Practice the programming ideas and techniques that are learned.
---To be “uncommon”
Try to have some relationship with the research topic and try to avoid using topics as "hotel management database system".
---To be “attractive”: such as to encourage students to explore different ways to achieve the program in a small contest.


D.Ritchie, C Programming Language Design, China Machine Press


  1. Bruce Eckel [USA],  Thinking in Java

  1. Cay S. HorstmannGary Cornell, The core technology in Java, volume 1basic knowledge (The original book 9th Edition)