CS 2120: Class #1

What will I learn?

The short version:

  • How to program a computer (using the Python language).
  • How to use programming to solve problems in your own life/research/work.
  • A little bit about the magic “under the hood” of the computer.
  • A little bit about the discipline of computer science.
  • How to be a 21st century citizen so you won’t be left behind.

The long version is in the course outline.

What prerequisites do I need?

  • Curiosity
  • A desire to learn a powerful new skill
  • A desire to distinguish yourself from peers in your discipline


Can anyone name an area of Science where they think having computer programming skill would be a bad thing? How about Social Science? Humanities? Art? Work with your neighbours.

Why are the course notes a website?

  • You’re going to learn Python
  • A nice thing about Python is that it has a vast collection of libraries to do useful things.
  • Most of those libraries are documented with something called Sphinx.
  • The course notes are made with Sphinx.
  • The idea: get used to reading material in this format. It’ll be useful to you.

How will this class work?

This class is going to be run somewhat differently from other courses you may have experienced at university. We’re going to be using a “partially flipped” classroom, with a “microlecture” format and lots of in class hands-on time.

There are a few reasons for this:

  • It’s been demonstrated that students from classes using the microlecture/work format outperform students from traditional lecture classes. The students are also report being happier and more engaged.
  • Listening to a lecturer droning on for two hours isn’t very engaging.
  • You get better value for your tuition dollar (what can a lecture give you that a Khan academy video or a textbook can’t?).

A standard class works like this:

  • I lecture for two hours.
  • You get bored 10 minutes in and start thinking about products you might like to purchase or how cute your classmate sitting over there is.
  • I keep going.
  • You keep daydreamimg.

Our class will work like this:

  • You’ll be offered suggested readings every week.
  • You do the reading (or not, your choice... although I recommend it).
  • You check out the YouTube videos to get super good at everything.
  • I give a ~5-15 minute microlecture on a topic from the readings.
  • I give the class a problem to solve, based on the microlecture.
  • You work with your neighbours in class to solve the problem.
  • I walk around and interact with the class. Answering questions, giving pointers, etc.
  • I depend on YOU to interact with me. I will need your help throughout the lectures.
  • We repeat this process until the time is up for the day.

We’ve already done this once already, but let’s try it again:


Have a chat with the people sitting around you:

  • What are their majors?
  • Why are they taking this class?
  • What do you hope to learn?
  • How do you think you will use what you learn in the future?

What should I bring to class

  • Curiosity
  • Readiness to do stuff, rather than just listen
  • A laptop (if you want) or ...
  • ... a smartphone (Android and iOS devices have Python interpreters available) or ...
  • ... pen and paper (the weapon of choice of some of the greatest programmers in past generations)

Just to be crystal clear: you do not need to bring a laptop to class. If you have one, though, and you’re keen to get the most out of the class, it’s worth considering.

Do I really need to use the OWL and the forums?

  • Course announcements will be made on OWL
  • Assignments will be submitted on OWL
  • Chances are if you are having trouble with something, others are too. Check for forum, maybe the answer is there!
  • Or even better, have a question? Post it on the forums so others can start working at your problem!
  • Found a cool link that’s relevant to the course? Post it on the forums!
  • USE THE FORUMS!!!!!!!!1!!11!

I’m lazy so I really am hoping the class will take care of itself. Besides, working, learning together, and teaching others is the best way to learn something new. Also, special consideration will be given to those who participate frequently on the forums.

I heard this class is super easy

Quick Activity

Raise your hand if you heard this class is easy.

You heard wrong. It is not easy. Last year MORE THAN 20% of the class failed or dropped the course! D:

These topics really are going to be shockingly different from what you are probably used to. Very few classes can prepare you for the way of thinking that will be required for this class.

Each of the tools you will learn are simple on their own, but using them together to achieve something is challenging.

Quick Activity

  • Who here knows how to use a hammer?
  • Who knows how to use a screwdriver?
  • Who knows how to use a saw?
  • ...
  • ...
  • Who here knows how to build a house?

So I should be terrified?

No. If you exclude those who failed, the class average was actually shockingly high actually.

I need help!

OK, cool. You probably will.


There are A LOT of resources to help you. We have the Owl forums, Google, YouTube videos, email, TAs, Google, office hours, tutorials, Google, Google, etc. There are many hours of scheduled time outside of lectures for you to get help! USE IT PLZ!

Can I write a program now?

Yes. Load up Python, and type this:

print "Hello, world!"

Whoa there, cowboy... wut?


All cool?

  • Go back and run the “Hello, world!” program.
  • You’re now officially a computer programmer!

Wait... wut?!

For next week