NoteAI笔记
NoteAI笔记
CS50x 计算机科学导论

CS50x 计算机科学导论

共 12 篇笔记

哈佛 CS50x 全课笔记:从 Scratch 起步,经 C 语言、算法、内存、数据结构、Python、SQL,到 HTML/CSS/JavaScript 与 Flask,最后以《The End》收官。

【笔记】CS50x 第 0 讲:Scratch(图形化编程)
公开课笔记 · 2026-09-23 09:00:00 HTML

【笔记】CS50x 第 0 讲:Scratch(图形化编程)

本讲从 AI 与编程的关系切入,介绍了计算机科学的核心——问题求解(输入→算法→输出)。通过灯泡演示讲解了二进制、ASCII/Unicode 编码、颜色与图像/视频/声音的表示方式,并用电话簿查找例子引出算法效率。最后通过 Scratch 图形化编程,展示了函数、条件、循环、变量、抽象等核心编程概念,并以学生作品(Oscar Time、Ivy’s Hardest Game)收尾。

NoteAI2 评论788 阅读
【笔记】CS50x 第 1 讲:C 语言
公开课笔记 · 2026-09-23 09:05:00 HTML

【笔记】CS50x 第 1 讲:C 语言

本讲是 CS50x 第一周课程,主题为 C 语言。从 Scratch 图形化编程过渡到文本编程,介绍源代码与机器代码、编译器、VS Code 环境、C 语言基本语法(printf、变量、条件、循环、函数)、Linux 命令行操作,最后通过实际案例展示整数溢出和浮点精度等计算机局限性。 核心思想:上周的概念完全不变,只是语法变了。

NoteAI0 评论293 阅读
【笔记】CS50x 第 2 讲:数组
公开课笔记 · 2026-09-23 09:10:00 HTML

【笔记】CS50x 第 2 讲:数组

本讲围绕 C 语言中的 数组 展开,揭示了字符串本质上是字符数组。内容包括:常见 bug 类型与调试工具(printf、debug50、橡皮鸭)、编译的四个阶段(预处理、编译、汇编、链接)、数组的声明与使用、字符串的底层实现(NUL 结尾)、命令行参数(argc/argv)、退出状态码,以及凯撒密码等加密思想。

NoteAI6 评论97 阅读
【笔记】CS50x 第 3 讲:算法
公开课笔记 · 2026-09-23 09:15:00 HTML

【笔记】CS50x 第 3 讲:算法

本讲围绕算法设计与效率分析展开:通过课堂人数统计、储物柜搜索等实例引入线性搜索与二分搜索,正式讲解大O、Ω、Θ渐近符号;随后介绍选择排序、冒泡排序与归并排序,并用递归实现马里奥金字塔;最后通过可视化对比各算法运行时间,强调算法设计对效率的决定性影响。

NoteAI1 评论105 阅读
【笔记】CS50x 第 4 讲:内存
公开课笔记 · 2026-09-23 09:20:00 HTML

【笔记】CS50x 第 4 讲:内存

本周 “拆掉CS50库的训练轮” ,深入计算机内存底层:从像素与十六进制讲起,引入指针、地址、 & 与 * 运算符;揭示字符串本质是 char* ;通过 swap、字符串复制、Valgrind、堆栈溢出等示例讲解内存管理与常见错误;最后介绍文件 I/O,实现持久化存储和文件复制,为后续图像滤镜项目做铺垫。

NoteAI5 评论741 阅读
【笔记】CS50x 第 5 讲:数据结构
公开课笔记 · 2026-09-23 09:25:00 HTML

【笔记】CS50x 第 5 讲:数据结构

本讲是C语言部分的最后一课,聚焦数据结构。介绍抽象数据类型(队列、栈、字典),深入讲解数组动态扩容(malloc/realloc)、链表、二叉搜索树、哈希表和Trie,分析各种结构的运行时间与空间权衡,并通过实际案例说明数据结构在真实世界中的应用,为下周Python和问题集5(拼写检查器)做铺垫。

NoteAI0 评论257 阅读
【笔记】CS50x 第 6 讲:Python
公开课笔记 · 2026-09-23 09:30:00 HTML

【笔记】CS50x 第 6 讲:Python

本讲从C语言过渡到Python,展示Python的简洁语法与高级抽象:无需编译、无指针、内置数据结构、异常处理等。通过重写拼写检查器和图像滤镜,对比了开发效率与运行性能的取舍,并演示了第三方库的安装与使用。

NoteAI6 评论93 阅读
【笔记】CS50x 第 7 讲:SQL
公开课笔记 · 2026-09-23 09:35:00 HTML

【笔记】CS50x 第 7 讲:SQL

本讲介绍SQL(结构化查询语言),一种声明式编程语言,用于高效地存储和查询数据。通过Google表单收集真实数据,演示了从CSV文件到SQLite数据库的完整流程,涵盖CRUD操作、关系数据库设计、JOIN查询、索引优化,以及SQL注入和竞争条件等安全问题。

NoteAI4 评论154 阅读
【笔记】CS50x 特别篇:人工智能
公开课笔记 · 2026-09-23 09:40:00 HTML

【笔记】CS50x 特别篇:人工智能

本讲通过 ”AI vs 真实” 互动游戏引入人工智能主题,讲解CS50 Duck背后的提示工程、AI辅助编程(Copilot),并系统介绍机器学习、强化学习、神经网络与大语言模型的基本原理,最后以一首诗提醒AI并非完美。

NoteAI5 评论305 阅读
【笔记】CS50x 第 8 讲:HTML、CSS、JavaScript
公开课笔记 · 2026-09-23 09:45:00 HTML

【笔记】CS50x 第 8 讲:HTML、CSS、JavaScript

本节课从互联网底层原理讲起(IP、TCP、DNS、DHCP、HTTP),然后系统介绍Web前端三大语言:HTML(结构)、CSS(样式)、JavaScript(交互)。通过大量现场演示,展示了如何用这些技术构建网页、实现搜索、表单验证、动态DOM操作等,为最终项目打下基础。

NoteAI3 评论218 阅读
【笔记】CS50x 第 9 讲:Flask
公开课笔记 · 2026-09-23 09:50:00 HTML

【笔记】CS50x 第 9 讲:Flask

本讲是 CS50 的 Web 编程核心课,介绍如何使用 Python Flask 框架构建动态网站。从最简 Flask 应用出发,逐步讲解路由、模板(Jinja)、GET/POST 方法、表单处理、模板继承、服务端验证、数据库集成(SQLite)、会话与 Cookies、MVC 模式,最终实现注册系统、购物车、搜索 API 等真实案例。 强调不要信任用户输入,并理解 HTTP 的无状态性及会话机制。

NoteAI1 评论348 阅读
【笔记】CS50x 第 10 讲:The End(计算机科学导论收官课)
公开课笔记 · 2026-09-23 10:16:00 HTML

【笔记】CS50x 第 10 讲:The End(计算机科学导论收官课)

CS50 最后一课完整笔记:回顾课程历程,用两个「编程人」互动游戏演示抽象层次的重要性;介绍最终项目、黑客松与 CS50 Fair;通过猜词游戏和全班结课测验覆盖二进制、编译、指针、数据结构、SQL、HTTP 等核心考点;最后给出后续学习资源与工具建议。

NoteAI2 评论597 阅读