Let's start by understanding what this course is aiming to do, and
what you'll take away from the course:
- Our main goal is to learn how to apply continuous mathematics
to problems in computer science.
- What does this mean?
- Consider machine learning. Many algorithms in machine learning
require a combination of skills from calculus, probability and
optimization, the three main topics of this course.
- In fact, the very last module in the course will see each
of these topics come together when we study basic machine learning.
All three, along
with linear
algebra are crucial to a foundation for machine learning.
- At the same time, other areas of computer science
also make use of these core topics. For example: robotics,
simulation, randomized algorithms.
We will explore some of these.
- Why is this continuous math stuff important?
- For the longest time in CS, it was thought that discrete
math was sufficient.
- And it's true that you can learn a lot in algorithms with
just discrete math. In fact, you can spend a lifetime in just
graph algorithms, if you desire.
- But a lot of exciting new CS is based on continuous math.
- And this core body of math has stood the test of time: the
future will invariably find uses for it.
- Another goal of this course is to connect you to CS
applications in science and engineering. Often, we think of
CS as applied to the business world with databases, websites,
servers and the like. But there are equally many interesting
applications in science and engineering. We will examine
some applications when we look at robotics and the simulation
of physical systems.
- A third goal of this course is to learn continuous math
concepts in a different way than you might have in the
past.
- First, we will often see the continuous math
directly embedded in a CS application first before getting into
the details. This is what we'll start with in the Introduction.
- Second, we will learn math concepts through programming.
Let's explain the last point, which is critical to how you will learn
in this course:
- Talking to students who've taken calculus and stats, we've
discovered that the experience has not always been positive.
Also, for many students, the high-school math experience has
not been the best, or the preparation somewhat mixed.
- Often, math turns into a "how do I plug into formulas"
or "what's the right equation to mess with?". This is a terrible
way to learn math because math has both astonishing beauty
and powerful ideas that become building blocks for thinking.
It's the reason why people find math to be "unreasonably effective"
(Nobelist Eugene Wigner) in explanatory power. And for CS, it's
unreasonably effective in designing algorithms to achieve some end,
such as controlling a robot.
- Instead, we are going to be interested mostly in concepts.
As we will see, programming provides a powerful way of "doing math",
which will let us apply these concepts immediately.
- Even better, we can learn new concepts through
programming: by using code to both explore new ideas and to see the
code itself as a way to understand an idea.
- Also, we will see that one can learn science via programming.
Let's next look at how you will learn in the course:
- Prior to class: a quick review of material from
the last class.
Complete pre-class exercises. These are exercises you will be
assigned in a new module, typically the first one ones.
- In class: (1) the lecture material; (2) giving your
full effort to the exercises in class.
- Outside class: (1) complete the module exercises;
(2) the assignments; (3) longer projects.
- In and out of class: Take group discussions
seriously. Are you willing to take responsibility for your group's
learning, by asking good questions, helping answer other questions?
Lastly, develop and raise your inner curiosity. Seek to transcend
being the passive "Is this on the exam?" student and start pushing
your envelope. You can do that easily in this course because
continuous math (and its applications to CS) are endless. By exploring
on your own a topic not covered in the course, you will prepare
yourself for the day when everything new is something you will explore
on your own.