撕书吧!编程小白!你也能学的哈佛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。

相关文章
|
6月前
|
Java C++ Python
【杂谈】在大学如何学得计算机知识,浅谈大一经验总结
【杂谈】在大学如何学得计算机知识,浅谈大一经验总结
|
4月前
|
人工智能 算法 测试技术
2023年第15届蓝桥杯模拟赛第二期(c语言)
2023年第15届蓝桥杯模拟赛第二期(c语言)
188 0
|
4月前
|
编译器 Linux C语言
【C++入门(上)】—— 我与C++的不解之缘(一)
【C++入门(上)】—— 我与C++的不解之缘(一)
|
4月前
|
分布式计算 Java 编译器
【C++入门(下)】—— 我与C++的不解之缘(二)
【C++入门(下)】—— 我与C++的不解之缘(二)
|
6月前
|
Java
在Java编程的江湖中,有一本传说中的“武林秘籍”,它不是刀光剑影的武学心法,而是能够让代码变得灵动、高效的秘密武器——多态。
在Java编程的江湖中,有一本传说中的“武林秘籍”,它不是刀光剑影的武学心法,而是能够让代码变得灵动、高效的秘密武器——多态。
52 1
|
6月前
|
存储 Python 容器
"解锁编程奇迹,Python基础入门:一剑在手,编程江湖任你遨游,从零到英雄的超燃蜕变之旅!"
【8月更文挑战第12天】编程曾被视为复杂的技能,Python却让其变得异常亲和简单。作为优雅且强大的语言,Python以简洁的语法、丰富的库支持及广泛的应用领域,成为初学者首选。本文将引导你开启Python学习之旅,通过基础概念与示例代码,让你领略编程魅力。
66 0
|
9月前
|
设计模式 JavaScript 算法
计算机专业大学生如何利用寒假时间学习编程(闲谈)
计算机专业大学生如何利用寒假时间学习编程(闲谈)
54 0
计算机专业大学生如何利用寒假时间学习编程(闲谈)
|
SQL IDE 前端开发
猿创征文|计算机科班生的成长路之那些相见恨晚的开发工具
猿创征文|计算机科班生的成长路之那些相见恨晚的开发工具
116 0
【蓝桥杯嵌入式】蓝桥杯第十届省赛真题,程序题全解析(含代码)
【蓝桥杯嵌入式】蓝桥杯第十届省赛真题,程序题全解析(含代码)
499 0
技术总监亲自上阵,手撸了一门编程语言,同事直呼哇塞
都说程序员的三大浪漫是:操作系统、编译原理、图形学;但图形学确实是特定的专业领域,我们几乎接触不到,所以对我来说换成网络更合适一些,最后再加上一个数据库。 这四项技术如果都能掌握的话,可以在 IT 行业横着走了,加上这几年互联网行业越来越不景气,越底层的技术就越不可能被替代;所以为了给自己的 30+ 危机留点出路,从今年上半年开始我就逐渐开始从头学习编译原理。 功夫不负有心人,经过近一个月的挑灯夜战,每晚都在老婆的催促下才休息,克服了中途好几次想放弃的冲动,终于现在完成了 GScript 一个预览版。 预览版的意思是语法结构与整体设计基本完成,后续更新也不太会改动这部分内容、但还缺少一些易用功