你将学到什么
Computer Programming
Algorithms
Python Programming
Combinatorics
课程概况
为解决计算问题创建高效、良构的解决方案,在这个过程中,了解这些原理显得至关重要,本课程以计算机科学为基础,主要研究基本的数学和编程原理。
为了获得涉及这些概念的实践经验,我们将使用Python编程语言,课堂重点是每周的小型程序,其中包含课上讲到的数学和编程原理,为了保持课程的趣味性和参与性,很多练习都包含策略性协作游戏。
通过对本课程的学习,大家将具备更牢固的计算机科学基础,并能够使用Python语言编写高效、良构的程序,进一步了解如何解决更复杂的计算问题。我们将一如既往地秉承我们的教学宗旨,以寓教于乐的方式教授计算原理,期待大家的参与!
This two-part course builds upon the programming skills that you learned in our Introduction to Interactive Programming in Python course. We will augment those skills with both important programming practices and critical mathematical problem solving skills. These skills underlie larger scale computational problem solving and programming. The main focus of the class will be programming weekly mini-projects in Python that build upon the mathematical and programming principles that are taught in the class. To keep the class fun and engaging, many of the projects will involve working with strategy-based games.
In part 1 of this course, the programming aspect of the class will focus on coding standards and testing. The mathematical portion of the class will focus on probability, combinatorics, and counting with an eye towards practical applications of these concepts in Computer Science.
Recommended Background – Students should be comfortable writing small (100+ line) programs in Python using constructs such as lists, dictionaries and classes and also have a high-school math background that includes algebra and pre-calculus.
课程大纲
周1
完成时间为 6 小时
Required Python knowledge, coding standards, and machine grading
This week, we will introduce you to the structure and standards of the Principles of Computing courses.
10 个视频 (总计 104 分钟), 9 个阅读材料, 3 个测验
周2
完成时间为 3 小时
Testing, plotting, and grids
This week, we will explain the importance of testing. We will also learn to solve problems with grids.
5 个视频 (总计 34 分钟), 4 个阅读材料, 2 个测验
周3
完成时间为 3 小时
Probability, randomness, and objects/references
This we will learn how to use probability and randomness to solve problems.
6 个视频 (总计 56 分钟), 6 个阅读材料, 2 个测验
周4
完成时间为 3 小时
Combinatorics, generators, and debugging
This week, we will learn how to use combinatorics to solve problems.
6 个视频 (总计 68 分钟), 5 个阅读材料, 2 个测验
周5
完成时间为 4 小时
Counting, growth of functions, higher-order functions
This week, we will explain the importance of counting in solving complex problems.
6 个视频 (总计 62 分钟), 7 个阅读材料, 2 个测验
预备知识
具备一定的编程经验,没上过Python课程的同学也可以选修本课程,但是要能够使用列表(list)、字典(dictionary)和分类(class)等语句编写小型(100行以上)Python程序;课程第一周的定位测试(选作)可以帮助同学们准确评估自己是否具备顺利完成学习所必需的背景知识。
常见问题
选修这门课我需要准备什么?
全部程序都要在基于网络的支持构建Python应用程序的编程环境下实现,所以要有现代化的网页浏览器,创建的程序将通过云端进行保存、分享和评分。
如果选修这门课,我能学到哪些最实用的东西?
编写高效、良构的Python代码,解决众多常见的计算问题。