跳到主要内容

哈佛 CS107 计算科学的系统开发

课程名称: Systems Development for Computational Science
课程官网地址:2020年
先修课程: CS50 计算机科学导论
重要程度: ※※※※
课程评点: 本课要求用Python开发一个完整的软件项目,对软件开发的全栈开发、开发流程、开发文档等都有比较全面的涉及。

软件工程对国内大部分学生来说,是求职时非常重要的一门课,这门课会教你如何团队协作开发一个完整的软件项目。这是一门非常偏编程实战、偏团队以及偏企业需求前沿的课程,因此这些名校关于软件工程的课程都没有开放的视频可供学习。

不过这些课程对学生的技能要求以及一些参考资料有助于大家实际了解开发一个项目到底需要哪些流程,会用到什么软件,需要具备哪些能力,等等。而这些也只是知识性的参考,强烈推荐大家在学习时,找两三个同学一起组成团队,协作开发一个完整的项目。国内更推荐用Java/Node+Vue/React的组合。

课程说明

计算已成为继理论和实验支柱之后的第三个科学支柱。计算科学正在迅速成熟,并在支持各个学科(包括所有工程学科、物理、化学、金融、生物学和数据分析等)的科学家方面具有相当大和重要的用途。许多新兴科学家仍然被教导为某些问题编写“代码”,并在出现问题时进行调试。鉴于科学问题的软件解决方案的复杂性不断增加,这种旧的范式不再站得住脚。

CS107 是一门应用课程,强调使用软件工程和计算机科学来解决科学问题。您将学习开发科学软件系统的基础知识,包括抽象思维、数据处理和计算方法评估:所有这些都在良好的软件工程实践的背景下进行。

学习完本课程之后,你将:

  • 使用 Python,包括其高级功能来编写科学程序
  • 了解 Python(或任何编程语言)的哪些功能构成其语言执行模型以及这些功能如何影响您编写的代码:例如如何使用模块化、抽象和封装来解决问题
  • 使用良好的软件工程实践编写这些程序
  • 利用数据管理技术来存储数据,从充分理解数据结构开始。
  • 将这些技术结合在一起编写大型软件(您将为此做一个小组项目),在科学家、程序员等团队中工作。
  • 评估和测试软件,看看您的团队应该使用哪一款。
  • 成为有能力的独角兽:能够在科学和软件工程方面做出贡献。
  • 踏上科学家之路。

本课程的主要目标是教你如何为科学应用开发有效的软件。为了实现这一目标,课程中必须包含几个不容协商的主题。我们将关注两个主要重点:系统和软件工程以及编程语言。此外,我们的目标是为你提供一套现代软件开发技术和工作流程。以下列表包括本课程将涵盖的主题。

  • 版本控制
  • Python(基础)
  • Python 的工作原理
  • 软件的文档
  • 软件测试
  • 面向对象编程
  • 数据结构
  • 数据库

推荐的资料

课程列举了非常详细的学习资料,非常推荐大家学习了解,同时本课也有一些开放的课件:

资料推荐:官方推荐学习资料官方课件