教学大纲
介绍计算机科学的知识事业和编程的艺术。本课程教导学生如何算法式地思考并高效地解决问题。主题包括抽象、算法、数据结构、封装、资源管理、安全、软件工程和 Web 编程。语言包括 C、Python 和 SQL,以及 HTML、CSS 和 JavaScript。问题集灵感来自艺术、人文、社会科学和自然科学。课程最终以一个最终项目收尾。专为专业方向生和非专业方向生设计,无论是否具有编程经验均可参加。三分之二的 CS50 学生此前从未学过计算机科学。本课程的总体目标之一是激励学生探索未知领域,不惧失败,创造一个密集且共享的、所有学生均可参与的体验,并在学生中建立社区。
预期要求
你需要完成以下内容:
- 提交十个问题集,以及
- 提交一个最终项目。
证书
CS50x 免费开放学习,欢迎你提交本课程的十个问题集和最终项目以获得自动反馈。但要获得 edX 的认证证书资格,你必须在本课程十个问题集中的每个问题以及最终项目上获得满意的分数(至少 70%)。
问题将根据正确性(由名为 check50 的程序判定)和风格(由名为 style50 的程序判定)两个维度进行评估,分数通常计算方式为 3 × 正确性 + 1 × 风格。
书籍
本课程不需要也不推荐任何书籍。不过,你可能会对以下书籍感兴趣。请注意,本课程网站上可以找到免费甚至更优质的资源。
Hacker’s Delight, Second Edition
Henry S. Warren Jr.
Pearson Education, 2013
ISBN 0-321-84268-5
How Computers Work, Tenth Edition
Ron White
Que Publishing, 2014
ISBN 0-7897-4984-X
编程 in C, Fourth Edition
Stephen G. Kochan
Pearson Education, 2015
ISBN 0-321-77641-0
讲座
本课程的讲座介绍每周的概念。
演练
问题集中融入了”演练”视频,提供从何处开始以及如何着手解决问题的指导。
问题集
问题集是编程作业。欢迎你按自己的节奏完成并提交它们。但请注意,完成本课程的截止日期是 2026-12-31T23:59:00+00:00。关于错过截止日期会有什么影响,请查阅我们的常见问题。
最终项目
这门课程的高潮是最终项目。最终项目是你将新学到的编程技能付诸实践、大展身手并开发出属于你自己的软件作品的机会。只要你的项目基于这门课程的课程内容,项目的具体形式完全由你决定。你可以用任何编程语言实现你的项目。欢迎你借助 CS50 Codespace 之外的其他基础设施。我们只要求你构建一些你感兴趣的东西、解决一个实际问题、影响你的社区,或者改变世界。努力创造一些能在这门课程结束后继续流传的作品。
由于软件开发很少是一个人的工作,你被允许有机会与一两位同学合作完成此最终项目。不用说,期望组内每个学生对小组项目的设计和实现做出平等的贡献。此外,两个或三人小组项目的规模应分别是一个典型单人项目的两倍或三倍。而一个单人项目,提醒一下,应该比这门课程每个问题集所需的时间和精力更多。尽管一个给定项目最多不超过三个学生进行设计和实现,但你欢迎向他人征求建议,只要你遵守本课程的学术诚信政策。
如同问题集一样,欢迎你按自己的节奏完成并提交最终项目。但请注意,完成本课程的截止日期是 2026-12-31T23:59:00+00:00。关于错过截止日期会有什么影响,请查阅我们的常见问题。
学术诚信
请查看学术诚信了解准则。