本次课(周三)分两部分:
0-3 (本课件): C 简史与人工智能
0-4 与 0-5: 变量与基本数据类型 (6 个小任务); 开发环境与 AI 工具
周二我们知道了:
程序是计算机的灵魂, 程序 = 算法 + 数据
计算机工作的流程: 输入 → 处理 → 存储 → 输出
写程序 = 结构(顺序、判断、循环) + 数据 + 分解
还动手写了自己的第一个程序 Hello, NJU!
今天: C 从哪里来、AI 为什么用 C; 随后在 0-4 开始写真正的程序!
C 是 UNIX 的副产品: Thompson 先设计了小型语言 B (源自 BCPL)
1971 年 Ritchie 扩展 B, 初名 NB("New B"), 分歧渐大后改名 C
1973 年: UNIX 已可以用 C 重写, 语言足够稳定
1978: Kernighan 和 Ritchie 合著《C程序设计语言》,成为事实标准
1989: 正式标准化为 ANSI C (C89/C90),后续 C99、C11
影响力: 高效、灵活,广泛应用于系统编程、嵌入式系统
C 的影响不止于自身——看几门相关语言:
C++: 包括 C 的所有特性, 添加了类以支持面向对象编程
Java: 基于 C++, 继承了许多 C 特性
C#: 从 C++ 和 Java 派生
Python: 解释器与核心计算库大量用 C 实现 (为 C语言与人工智能 埋下伏笔)
语言谱系看完, 回到 C 本身:
低层语言: 提供对机器级概念的访问 (字节和地址)
小型语言: 有限的特性集合, 很大程度依赖标准函数库
宽松包容: 高自由度, 不强制详细的错误检查
优点: 效率高、可移植、灵活、功能强大、标准库、与 Linux 集成
优点突出, 代价也明显:
C 的功过说完, 转到另一个主题——人工智能:
人工智能 (AI): 研究如何让计算机去模拟、延伸和扩展人的智能
图灵测试 (1950): 裁判在看不到对方的情况下, 通过文字对话分辨哪边是人、哪边是机器; 分不出来, 就认为机器表现出了智能。它把"机器能否思考"变成了可操作的行为判断——但会模仿 ≠ 真正理解, 这也是今天评价大模型时的常用视角。
你们觉得 Siri 会'听懂人话'吗?背后其实是 语音识别 + 大语言模型
1950: 图灵提出"机器能思考吗?",图灵测试
1956: 达特茅斯会议,"人工智能"正式诞生
1980s: 专家系统
2006~: 深度学习兴起
2017~: Transformer 架构 → 大语言模型 (GPT、DeepSeek 等)
当我们用 Python 调用 AI 框架时, 发生了什么?
TensorFlow / PyTorch 的核心引擎: C++ 实现; Python 层只负责"发号施令"
数值计算最终落在: CPU 的 BLAS/LAPACK 内核 (经典实现为 Fortran, OpenBLAS 等用 C/汇编) 或 GPU 的 CUDA 内核 (以 C 语言为基础扩展)
TinyML (如 TensorFlow Lite for Microcontrollers): 用 C/C++ 编写、无动态内存, 跑在单片机上
C 语言是 AI 底层生态的通用接口
学 C 能理解张量 (Tensor): 连续内存 + 指针
学 C 能理解矩阵运算: 二维数组 + 循环 + Cache 优化
学 C 能理解内存管理: malloc / free
学 C 才能看懂 PyTorch / TensorFlow 的"引擎"
接下来依次打开两份课件:
0-4: 变量与基本数据类型 (5 个小任务: 年龄、温度、找零、字符)
0-5: 开发环境与 AI 工具