计算机编程教学大纲
一、课程基本信息
开课单位: |
|
课程代码: |
CS100 |
课程名称: |
计算机编程 |
英文名称: |
Introduction to Programming |
学 分: |
4 |
学 时: |
64 |
授课对象: |
|
授课语言: |
中英文 |
先修课程: |
|
二、课程简介和教学目的
The course provides an introduction to programming for starting undergraduate students. The course will be based on C and the object-oriented C++ programming languages, thus equipping attendees with powerful low-level languages for the efficient implementation of resource-hungry programs.
The following is a tentative list of covered topics:
On C:
• C syntax, development environment
• Flow Control, types, arrays, operations
• Procedural abstraction, functions
• Pointers
• Basic algorithms (sorting etc.)
• Input-output, debugging
• Recursive programming
On C++:
• Object-oriented programming
• Basic data structures, the standard library
• Polymorphism, templating, modularization
• Multi-threading
• Coding standards, coding patterns
• CMake, Project management & documentation, profiling, debugging
• R-value references, C++11, C++14, C++17
• Exceptions
• Introduction to Eigen, Ceres
• Interfacing with Matlab and Python
Besides the lectures, the course will also involve a weekly recitation and coding homework assignments. The recitations will be a mix of class material revision, introduction of some new related material, and in-class coding exercises. The homework assignments will involve implementations of certain functions and classes. Templates, interface definitions, and example test cases will be provided, and we will make use of an online compilation and testing system, thus streamlining the process towards a fair grading of the assignments. Development environment suggestions will be introduced at the beginning of the course, and the assignments will be introduced during the lectures as well as posted on the course webpage (along with test cases and deadlines). |
三、教学内容、教学方式和学时安排
The course will contain around 32 lectures, 10 on C, 20 on C++, 1 summary lecture and 1 lecture for an exam. There will be only one exam, a late mid-term exam that will test the mastery of the two first thirds of the material. There will furthermore be 8 homeworks, 6 shorter ones which we aim to complete before the midterm exam, and 2 more elaborate ones after the midterm exam, testing the more advanced material of the course. |
四、考核方式和成绩评定
The evaluation will be as follows:
-6 * 8 points for the shorter homeworks in the beginning of the course
-2 * 15 points for the longer homeworks towards the end of the course
-22 points for the midterm exam
The grading scheme is tentative and may be subjected to small variations to for example promote class/recitation participation.
*Actually,
4%: Summer homeworks,
4*7% + 4*11% = 72%: Regular homeworks,
18%: Mid-term Exam,
2*2% = 4%: In-class quizes,
2%: Recitation attendance checks.
|
五、推荐教材和参考书目
六、其他说明
七、教师信息
授课教师:
刘晓培
Laurent Kneip
|
课程负责人:
Laurent Kneip
|
|