课程概述

本课程针对计算机系统基础(一)、(二)、(三)前导理论课程,围绕系列课程培养计算机系统能力的总体目标,设计了与前导理论课相匹配的编程与调试方面的实践内容,针对理论课中的知识点并结合具体的程序及其机器级代码,展现程序开发过程中的各个步骤及实例,帮助学习者深入理解基础概念,并通过具体实践与练习增强编程和调试能力,提高综合运用计算机系统基础知识分析问题和解决问题的能力。本课程基于IA-32平台上的Linux系统和C、汇编语言及GCC、GDB等编程与调试工具,针对数据与程序的机器级表示、链接、性能分析与优化等课程知识及其实际应用进行讲解与实践,并综合采用测验、实验等多种形式对课程学习情况进行评估。

证书要求

为积极响应国家低碳环保政策, 2021年秋季学期开始,中国大学MOOC平台将取消纸质版的认证证书,仅提供电子版的认证证书服务,证书申请方式和流程不变。

 

电子版认证证书支持查询验证,可通过扫描证书上的二维码进行有效性查询,或者访问 https://www.icourse163.org/verify,通过证书编号进行查询。学生可在“个人中心-证书-查看证书”页面自行下载、打印电子版认证证书。

 

完成课程教学内容学习和考核,成绩达到课程考核标准的学生(每门课程的考核标准不同,详见课程内的评分标准),具备申请认证证书资格,可在证书申请开放期间(以申请页面显示的时间为准),完成在线付费申请。

 

认证证书申请注意事项:

1. 根据国家相关法律法规要求,认证证书申请时要求进行实名认证,请保证所提交的实名认证信息真实完整有效。

2. 完成实名认证并支付后,系统将自动生成并发送电子版认证证书。电子版认证证书生成后不支持退费。


预备知识

《计算机系统基础(一)(二)(三)》前导理论课程涵盖的基本概念和知识、C语言程序设计的基础知识。

授课大纲

第一周 实验与开发环境的安装和使用

引言

第1讲 从程序员角度认识系统

第2讲 虚拟机、Linux及其上实验环境的安装

第3讲 基本实验工具的使用

课件

第一周测验

第二周 C语言编程实践

引言

第1讲 数据的位运算操作

第2讲 浮点数的精度问题

第3讲 Cache友好代码

第4讲 信号处理函数

课件

第二周测验

第三周 程序调试与实践:数据的存储与运算

引言

第1讲 真值与机器数

第2讲 数据的宽度与存储

第3讲 数据类型的转换

第4讲 整数加减运算

第5讲 浮点数的表示和运算

课件

第三周测验

第四周 程序调试实践:程序的机器级表示

引言

第1讲 传送指令

第2讲 加减运算指令

第3讲 整数乘法指令

第4讲 控制转移指令

第5讲 栈和过程调用

第6讲 缓冲区溢出

课件

第四周测验

第五周 程序调试实践:二进制程序分析与调试

引言

第1讲 二进制炸弹实验:概述

第2讲 二进制炸弹实验:字符串比较

第3讲 二进制炸弹实验:浮点数表示

第4讲 二进制炸弹实验:课后实验

课件

第五周测验

第六周 程序调试实践:缓冲区溢出攻击

引言

第1讲 缓冲区溢出攻击实验:概述

第2讲 缓冲区溢出攻击实验:目标程序与辅助工具

第3讲 缓冲区溢出攻击实验:Level 0

第4讲 缓冲区溢出攻击实验:Level 1及课后实验

课件

第六周测验

第七周 程序调试实践:程序链接与ELF

引言

第1讲 链接与ELF实验:概述

第2讲 链接与ELF实验:静态数据与ELF数据节

第3讲 链接与ELF实验:指令与ELF代码节及课后实验

课件

第七周测验

第八周 程序性能分析与优化

引言

第1讲 程序性能分析与优化

第2讲 程序性能分析工具

课件

第八周测验

参考资料

计算机系统基础(第2版),袁春风、余子濠编著,机械工业出版社,2018

深入理解计算机系统(原书第2版),Randal E. Bryant、David R. O'Hallaron著,龚奕利、雷迎春译. 机械工业出版社,2010

常见问题

Q : 本课程的介绍中所指的前导理论课程具体是什么?

A :  指的是《计算机系统基础》系列慕课的下列三门已上线课程:

(1)计算机系统基础(一):程序的表示、转换与链接

(2)计算机系统基础(二):程序的执行和存储访问

(3)计算机系统基础(三):异常、中断和输入/输出