撕书吧!编程小白!你也能学的哈佛CS50,全美最受欢迎计算机入门课

简介: 【新智元导读】自学计算机,到底如何入门?哈佛大学计算机导论课程 CS50推荐给编程小白们,这门课是哈佛最受欢迎的课程之一,老师风趣幽默,带你少走弯路,直奔编程大门。

哈佛校园里流传着这样一句话:「如果你没听说过CS50,那么,请不要说你读过哈佛。

 

这门经久不衰的课程——CS50.,全名为计算机科学导论「Introduction to Computer Science 」,是哈佛最受欢迎的课程之一。


56.jpg


由著名的「撕书教授」戴维·马兰(David Malan)任首席讲师,Facebook联合创始人马克·扎克伯格和前微软首席执行官史蒂夫·鲍尔默都曾做客座谈。

57.jpg



课程介绍


这是哈佛大学对计算机科学的知识型企业的介绍,适用于具有或没有基础编程经验的专业和非专业的编程艺术,教会学生如何算法思考和有效解决问题。


主题包括抽象,算法,数据结构,封装,资源管理,安全性,软件工程和Web开发。语言包括C,Python,SQL和JavaScript以及CSS和HTML。

 

  • 对计算机科学和编程有广泛而深入的了解
  • 如何从算法上思考并有效解决编程问题
  • 诸如抽象,算法,数据结构,封装,资源管理,安全性,软件工程和Web开发等概念
  • 熟悉多种语言,包括C,PHP和JavaScript以及SQL,CSS和HTML
  • 如何与经验丰富,志趣相投的社区互动
  • 如何开发和向同行展示最终的编程项目

 

讲师介绍


David J.Malan

 

58.jpg

 

帅帅的Professor Malan是哈佛大学工程与应用科学学院的Gordon McKay 教授,也是CS50.的首席讲师。

 

他分别于1999年、2004年和2007年在哈佛大学获得计算机科学学士、硕士和博士学位。

 

他还有个酷酷的代号:撕书教授。

 

来源于他在一堂课上,他就用撕电话簿的形式来演示二分查找算法,邀请一位学生上台寻找 Mike Smith 这个名字,首先打开到一个随机的位置,撕掉没有该姓名的那一半,然后重复这个过程,直到只剩下要找的那一页。

 

59.jpg


Doug Lloyd

60.jpg

 

自2020年以来,Doug Lloyd一直是CS50远程学习计划的主任。

 

Brian Yu

 

61.jpg


哈佛大学计算机科学高级讲师,他于2019年获得哈佛大学计算机科学与语言学学士学位。


有趣的课堂


编程知识通常枯燥而无味,但这门课程却能让你体会到学习的乐趣。

 

举例来说,在以「演算法」为核心的课程里,老师举了有趣的例子:

 

假如班上有7 位同学,今天作业要依照分数由高至低排序,你要怎样做?

 

人类的可能做法是把所有的作业分成两堆,一边是还没看过的,一边是排好顺序的,分数假如是86、60、73、92、98、70、81 :


先比较最前面的两个数(86、60),高的86 放上面,低的60 放下面,放进有顺序的一堆里;接着拿出第三个数字73 ,小于86、大于60 ,因此排进中间;第四个92 ,大于86 ,因此取代它排在最上面……. 直到排完所有数字。

 

听起来很合理、很迅速,但假如今天你要排序的位置,是一张成绩登记表从高到低必须纸本手写上去时,问题就来了。当「第一名的分数」在比较的过程中被更新了,你就必须把后面所有分数都往后移一个位置,擦掉再写就会很辛苦。对记忆体来说就是如此。

 

这种作法叫做Insertion sort 。

 

而除此之外当然还有非常多作法(例如两两比较交换位置的Bubble sort、分成两半排序再合并的Merge sort),每种作法需要的步骤当然不一样多,最后回归到哪种做法会使用到较少的步骤,也就是对程式来说有比较高的效能。

 

62.jpg

 

CS50 是哈佛大学校园以及 edX 上人数最多的课,哈佛每年有 800+ 在校生,edX 上有来自全球的一百万注册学习者。

 

在9个习题集(即编程作业)和最终项目中获得满意分数的学生有资格获得证书。这是一个自定进度的课程,您可以按照自己的时间表参加CS50x。

相关文章
|
前端开发 NoSQL JavaScript
常见接口和服务幂等性问题及解决方案
常见接口和服务幂等性问题及解决方案
818 0
|
安全 网络安全
华为防火墙原来是这样应对多个运营商接入互联网的,涨知识了
华为防火墙原来是这样应对多个运营商接入互联网的,涨知识了
1199 0
|
11月前
|
存储 缓存 数据挖掘
StarRocks 原理详解:探索高效 OLAP 的奥秘
StarRocks 是一款高性能分析型数据仓库,采用向量化、MPP架构、CBO等技术,实现多维、实时、高并发的数据分析。它支持从各类数据源高效导入数据,兼容MySQL协议,并具备水平扩展、高可用等特性,广泛应用于实时数仓、OLAP报表等场景。StarRocks 解决了传统数仓在查询性能、数据导入、扩展性和灵活性等方面的挑战,助力企业实现数据驱动的决策。其分布式架构和智能物化视图等功能显著提升了查询效率,适用于大数据生态中的各种复杂需求。
1925 15
|
5月前
|
Java API 开发者
京东 API 零基础快速上手教程
京东API是京东开放平台提供的接口服务,支持开发者获取商品、订单等数据。本文介绍从注册、创建应用、申请权限到调用API的完整流程,涵盖Python示例代码及测试优化方法,助你快速上手开发。
|
10月前
|
机器学习/深度学习 存储 人工智能
2025年阿里云GPU服务器的租赁价格与选型指南
随着AI、深度学习等领域的发展,GPU服务器成为企业及科研机构的核心算力选择。阿里云提供多种GPU实例类型(如NVIDIA V100、A100等),涵盖计算型、共享型和弹性裸金属等,满足不同场景需求。本文详解2025年阿里云GPU服务器的核心配置、价格策略及适用场景,帮助用户优化选型与成本控制,实现高效智能计算。
|
SQL 关系型数据库 MySQL
Go语言中进行MySQL预处理和SQL注入防护
在现代Web应用开发中,安全性至关重要。SQL注入是一种常见的攻击方式,攻击者可通过构造特殊SQL查询来非法访问或修改数据库数据。本文介绍如何利用Go语言中的预处理SQL语句来防范此类攻击。预处理不仅能提升安全性,还能提高性能并简化代码。通过使用`?`作为占位符,Go自动处理参数转义,有效避免SQL注入。此外,文章还提供了连接MySQL数据库、执行预处理查询以及最佳实践的示例代码。务必遵循这些指导原则,确保应用程序的安全性。
429 0
|
Java 数据库连接 API
从0到服务器开发——TinyWebServer(下)
从0到服务器开发——TinyWebServer
444 2
|
SQL Java 数据库
微服务技术系列教程(39)- SpringBoot -RBAC权限模型
微服务技术系列教程(39)- SpringBoot -RBAC权限模型
557 0
|
人工智能 自然语言处理 算法
AI时代的企业内训全景图:从案例到实战
作为一名扎根在HR培训领域多年的“老兵”,我越来越清晰地感受到,企业内训的本质其实是为企业持续“造血”。无论是基础岗的新人培训、技能岗的操作规范培训,还是面向技术中坚力量的高阶技术研讨,抑或是管理层的战略思维提升课,内训的价值都是在帮助企业内部提升能力水平,进而提高组织生产力,减少对外部资源的依赖。更为重要的是,在当前AI、大模型、Embodied Intelligence等新兴技术快速迭代的背景下,企业必须不断为人才升级赋能,才能在市场竞争中保持领先。
1586 13
|
Java Android开发
Android 对adb命令的拦截
Android 对adb命令的拦截
308 2