上一个千年的教育基础是 "读、写、算",而现在则是读、写、算。学习编程是每个学生教育的重要组成部分,不仅在科学和工程领域如此,在艺术、社会科学和人文科学领域也是如此。除了直接应用之外,它还是了解计算机科学对现代世界不可否认的影响的第一步。 本课程涵盖《计算机科学》一书的上半部分(下半部分):一书的前半部分(后半部分在我们的 Coursera 课程《计算机科学》中:算法、理论和机器》)。我们的目的是在科学背景下,向需要或想学习编程的人传授编程知识。
了解顶级公司的员工如何掌握热门技能

该课程共有10个模块
为什么要编程?本讲座将讨论这个基本问题。然后,它将介绍第一个程序的构造,以及使用虚拟终端或程序开发环境在 Java 中开发程序的过程,并介绍一些历史背景。本讲座的大部分时间用于全面介绍 Java 的内置数据类型,并为每种类型提供示例程序。
涵盖的内容
4个视频2篇阅读材料1个作业1个编程作业
if、while 和 for 语句是 Java 的基本控制结构。本讲座围绕使用这些结构来处理重要计算任务的简短程序展开。示例包括排序、计算平方根、因式分解和模拟随机过程。最后,本讲座将以一个详细的示例来说明调试程序的过程。
涵盖的内容
5个视频2篇阅读材料1个作业1个编程作业
使用同一类型的大量值序列进行计算极为常见。本讲座介绍了支持此类应用的 Java 内置数组数据结构,并列举了几个示例,包括洗牌、优惠券收集器随机性测试和网格中的随机行走。
涵盖的内容
3个视频2篇阅读材料1个作业1个编程作业
为了与我们的程序交互,我们需要从外部世界获取信息并向外部世界展示信息的机制。本讲座将介绍几种这样的机制:文本、绘图和动画。详细示例包括模拟自然现象的分形图和显示窗口中的小球弹跳动画。
涵盖的内容
4个视频2篇阅读材料1个作业1个编程作业
模块化编程是一门将程序分解成可单独开发的程序片段的艺术和科学。本讲座将介绍实现模块化编程的基本机制--函数(Java 方法)。具有启发性的例子包括经典高斯分布函数和创建数字音乐的应用程序。
涵盖的内容
4个视频2篇阅读材料1个作业1个编程作业
递归函数是一种能调用自身的函数。本讲座通过详细讨论尺规函数和(相关的)经典示例(包括河内塔谜题、H 树和基于递归的现实世界简单模型)来介绍这一概念。我们展示了使用递归的一个常见误区,以及避免这种误区的简单方法,其中引入了一种不同的(相关的)编程范式,即动态编程。
涵盖的内容
5个视频2篇阅读材料1个作业1个编程作业
在开发程序时,您需要了解程序对资源的需求。在本讲座中,我们将介绍一种了解性能的科学方法,即建立描述程序运行时间的数学模型,然后进行经验测试来验证这些模型。最终,我们会得出一个简单有效的方法,您可以用它来预测自己程序的运行时间,因为这些程序涉及大量计算。
涵盖的内容
5个视频2篇阅读材料1个作业1个编程作业
在 Java 中,您可以创建自己的数据类型并在程序中使用它们。在本讲座和下一讲座中,我们将展示这种能力如何让我们将程序视为现实世界概念的抽象表示。首先,我们将展示如何编写使用数据类型的客户端程序。我们的例子涉及颜色、图像和基因等抽象概念。这种编程方式被称为面向对象编程,因为我们的程序会操作持有数据类型值的对象。
涵盖的内容
4个视频2篇阅读材料1个作业1个编程作业
创建自己的数据类型是现代 Java 编程的核心活动。本讲座将介绍创建数据类型的机制(实例变量、构造函数、实例方法和测试客户端),然后开发几个示例,最后使用一个典型的数学抽象(复数)来创建著名的 Mandelbrot 集的可视化表示。
涵盖的内容
4个视频2篇阅读材料1个作业1个编程作业
最后,我们将概述与编程语言相关的重要问题。为了让您相信,掌握了 Java 知识就能学习其他编程语言,我们将展示一个典型程序在 C、C++、Python 和 Matlab 中的实现。我们将介绍这些语言之间的重要差异,并讨论一些基本问题,如垃圾回收、类型检查、面向对象编程和函数式编程以及一些简短的历史背景。
涵盖的内容
5个视频1篇阅读材料1个作业1个编程作业
位教师


从 软件开发 浏览更多内容
状态:免费Princeton University
状态:预览Vanderbilt University
状态:免费试用University of London
状态:预览Korea Advanced Institute of Science and Technology(KAIST)
人们为什么选择 Coursera 来帮助自己实现职业发展




学生评论
1,323 条评论
- 5 stars
83.13%
- 4 stars
11.29%
- 3 stars
2.18%
- 2 stars
1.05%
- 1 star
2.33%
显示 3/1323 个
已于 Jun 15, 2021审阅
Can't wait to get into the second part of the course. The best programming course ever provided for free of cost. The techniques used are backed by mathematical thinking. It is just awesome.
已于 Sep 5, 2020审阅
It was a beautiful course. I gained a ton of understanding of the structures of programming (especially OOP). And could become proficient in Java language, which is great.
已于 Dec 16, 2024审阅
The 5th star is absent only because the course relies on custom libraries. Not that I'm against that (who am I to say Robert Sedgwick is wrong, right?), but it would have been good, no?





