Lecture01
🧩 核心概念
- 迟交政策(Late Submission Policy) — 规定学生晚交作业时,根据晚交天数和原始分数 x 进行扣分或记零分的规则;周末和公共假日不计入迟交天数。
- 模块负责人(Module Leader) — 负责处理学生对评分异议的最终决策人,其决定为最终决定;学生有一周时间提出异议。
- 抄袭(Plagiarism) — 完全不可原谅的学术不端行为,包括提交相同或高度相似的报告,将面临零分及上报 Registry 记录。
- 共谋(Collusion) — 绝对禁止的学术不端行为,与抄袭并列,指学生之间未经允许的合作。
- 学术不端行为工作组(Academic Misconduct Working Group) — 负责处理严重作弊案件的学校官方机构。
- 学习成果(Learning Outcomes) — 模块目标中明确列出的,学生完成课程后应掌握的知识与技能,包括软件开发过程、C/C++ 编码、调试、测试、文档编写及面向对象设计。
- 输入设备(Input Devices) — 用于向计算机系统输入信息的硬件设备,如键盘、鼠标、扫描仪、网络摄像头。
- 输出设备(Output Devices) — 用于将计算机处理后的信息呈现给用户的硬件设备,如显示器、打印机、扬声器、耳机。
- 存储设备(Storage Devices) — 用于存储数据和信息的硬件设备,如 USB 闪存驱动器、光盘驱动器。
- 硬件(Hardware) — 用于执行必要计算的设备,包括中央处理器(CPU)、显示器、硬盘驱动器、存储卡、键盘、鼠标等。
- 软件(Software) — 一组指示计算机执行特定计算、操作或控制的指令,由程序模块组成,使我们能够用计算机解决问题。
- 操作系统(Operating System) — 一组特殊的计算机程序,控制用户与计算机硬件之间的交互并管理所有计算机资源,如 UNIX、Linux、DOS、Windows、MacOS。
- 应用软件(Application Software) — 为帮助计算机用户完成各种任务而开发的软件,如 Adobe Photoshop、Microsoft Office、Matlab、AutoCAD,甚至数字游戏。
- 编程(Programming) — 用程序员和计算机都能理解的语言告诉计算机做我们想做的事情。
- 集成开发环境(Integrated Development Environment, IDE) — 一种用于提供程序开发环境的应用程序,包括项目管理、代码编辑器(高亮语法错误)、调试支持、构建/运行任务等功能。
- 编译器(Compiler) — 一种计算机程序,将用某种编程语言写成的源代码(原始语言)转换成另一种编程语言(目标语言,如机器码)。
- 翻译器(Translator) — 讲义中作为类比概念出现,指将一种语言(如法语)转换为另一种语言(如中文)的工具,用于辅助理解编译器的作用。
- Bug — 计算机程序或系统中存在的错误、缺陷或故障,该词源于历史上在计算机继电器中发现飞蛾的真实事件。
- 明确需求(Specify) — 软件开发流程的第一步,指确定和定义问题的需求与规格。
- 分析(Analyse) — 软件开发流程的第二步,指对已明确的问题进行深入分析和理解。
- 设计(Design) — 软件开发流程的第三步,指设计用于解决问题的算法或系统架构。
- 实现(Implement) — 软件开发流程的第四步,指将设计好的算法转化为实际的程序代码。
- 测试与验证(Test and verify) — 软件开发流程的第五步,指对完成的程序进行测试以确认其正确性和功能。
- 交付(Deliver) — 软件开发流程的第六步,指将完成的软件产品交付给客户或最终用户。
- 维护(Maintain) — 软件开发流程的第七步,指对已交付的程序进行后续的维护和更新。
- 算法(Algorithm) — 为解决某个问题而开发的一系列步骤;编写算法通常是问题求解过程中最困难的部分。
- 流程图(Flowchart) — 在算法设计中被推荐使用的一种图形化表示方法。
- 英里(MILE) — 用于与千米进行长度单位换算的英制长度单位。
- 千米(Kilo-Meter) — 用于与英里进行长度单位换算的公制长度单位。
- 语法错误(Syntax errors) — 代码违反了一条或多条 C 语言语法规则时发生的错误。
- 运行时错误(Run-time errors) — 程序指示计算机执行非法操作时发生的错误,如除以零或访问受限内存位置。
- 逻辑错误(Logic errors) — 程序遵循了有缺陷的算法时发生的错误。
- 十进制数字系统(Decimal number system) — 以 10 为基数的数字系统,使用数字 0 到 9。
- 数字信号(Digital signals) — 由两个离散状态(开/关)组成的信号。
- 位(Bit) — 源自 binary digit,是计算机中最小的数据/信息单位,表示 0 或 1。
- 字节(Byte) — 计算机中信息存储的基本测量单位,通常由 8 位组成,可表示 2^8 = 256 种状态。
- 八进制数字系统(Octal number system) — 以 8 为基数的数字系统,使用数字 0 到 7。
- 基数为 b 的计数系统(Number System of Base b) — 一种用基数 b 的幂次展开来表示数字的通用计数系统,形式为 a_n·b^n + a_{n-1}·b^{n-1} + … + a_0·b^0。
- 十进制系统(Decimal System) — 以 10 为基数的计数系统,比二进制更紧凑,更便于人类使用。
- 二进制系统(Binary System) — 以 2 为基数的计数系统,因计算机采用双态(开/关)技术而更适合计算机。
- 十六进制系统(Hexadecimal System) — 以 16 为基数的计数系统,每个十六进制数字恰好代表 4 个二进制位;一个字节 = 8 位二进制数 = 2 个十六进制数字。
- 低级语言(Low-Level Languages) — 针对特定机器架构的编程语言,如汇编语言和机器语言,更接近机器而非问题本身。
- 高级语言(High-level Languages) — 用于编写独立于执行它们的机器架构的程序的编程语言,如 Fortran、Pascal、C/C++、Ruby、Python 等。
- 面向对象编程(Object-Oriented Programming / OOP) — 一种引入到 C 语言中的编程特性,提供类以及抽象、封装、模块化、继承和多态等特性。
- 类(class) — 提供面向对象编程语言中常见特性的结构。
- 抽象(abstraction) — 面向对象编程语言中常见的特性之一。
- 封装(encapsulation) — 面向对象编程语言中常见的特性之一。
- 模块化(modularity) — 面向对象编程语言中常见的特性之一。
- 继承(inheritance) — 面向对象编程语言中常见的特性之一。
- 多态(polymorphism) — 面向对象编程语言中常见的特性之一。
- 对象(Object) — 一种由数据字段和方法及其交互组成的数据结构,用于设计应用程序和计算机程序。
- 面向过程编程(Procedure Oriented Programming) — 与 OOP 相对的编程范式,如 C、Basic 等。
🔗 概念之间的关系
- 硬件与软件共同构成计算机系统的两大类别;软件中的操作系统管理硬件资源,应用软件运行在操作系统之上,三者形成「硬件 → 操作系统 → 应用软件」的层级依赖。
- 编程是软件开发流程的核心活动;软件开发流程从明确需求到维护的七个步骤中,设计阶段产出算法,实现阶段将算法转化为代码,测试与验证阶段检验代码正确性。
- 算法是软件开发流程中「设计」步骤的核心产物,流程图是设计算法的推荐工具;算法设计完成后才进入实现(编码)阶段。
- 语法错误、运行时错误、逻辑错误是三类编程错误,分别对应代码违反语法规则、执行非法操作、算法本身有缺陷三种不同层面的问题。
- 数字信号(开/关两态)是二进制系统的物理基础;位是二进制的最小单位,字节由 8 位组成;十进制系统、二进制系统、八进制系统、十六进制系统都是基数为 b 的计数系统的特例,其中十六进制因每个数字恰好对应 4 个二进制位而成为二进制的便捷简写。
- 低级语言(汇编、机器语言)与高级语言(C/C++、Python 等)是编程语言的两大层级;C++ 是从 C 发展而来,引入了面向对象编程特性,包括类以及抽象、封装、模块化、继承、多态,其核心是对象;面向过程编程(如 C)与面向对象编程(如 C++)是两种不同的编程范式。
⬅️ 承接前面的知识
本讲是 RBE104TC 的第一讲,没有前置讲次。本讲为后续内容打基础的方式如下:
- 软件开发流程(Specify → Analyse → Design → Implement → Test → Deliver → Maintain)为后续所有编程实践提供方法论框架。
- 算法与流程图为后续学习具体算法设计(如排序、查找)奠定基础。
- 编程错误的分类(语法/运行时/逻辑)为后续调试(debugging)教学提供分类依据。
- 数字系统与进制转换为后续理解计算机内部数据表示(整数、浮点数、字符编码)奠定数学基础。
- C/C++ 编程环境搭建(VS Code + MinGW/Xcode)为后续所有上机实验和课程作业提供工具基础。
- C++ 与面向对象编程的引入为后续深入学习类、继承、多态等 OOP 特性做铺垫。
➡️ 后面会怎么用
- 软件开发流程将在后续课程中以具体项目形式反复实践,尤其是「设计算法 → 实现 → 测试」这一核心循环。
- 算法与流程图将在后续讲解具体算法(如排序、查找、递归)时作为标准设计工具使用。
- 三类编程错误将在后续调试实验中反复出现,学生需要能够区分并定位不同类型的错误。
- 数字系统与进制转换将在后续讲解数据类型(int、float、char)、位运算、内存表示时直接使用。
- C/C++ 编程环境(VS Code + 编译器)将在整个模块的所有实验和课程作业中使用,且课程作业必须在 VS Code 中运行。
- 面向对象编程(类、抽象、封装、模块化、继承、多态)将在后续 C++ 教学中逐步展开,是模块学习成果中「object-oriented approach」的直接对应内容。
- 输入/输出/存储设备、硬件/软件、操作系统、应用软件等概念为理解计算机系统整体架构提供背景知识,后续编程实践中会间接涉及。