Course Expectations (and FAQ)#

This course is an introduction to programming in Python.

Programming is a skill, like playing the guitar or salsa dancing. And importantly, skill learning requires lots of practice. That’s why the assessments in this course emphasize frequent, hands-on experience with Python.

Features of this course#

New material and tools.#

This course is intended to teach you Python from the ground up.

If you haven’t ever programmed before, this will necessarily involve a lot of new material: new concepts and new software tools. In my view, tooling is one of the hardest and most overwhelming parts of learning to program. But if you do feel overwhelmed, know that you’re not alone: other students may be in the same boat, and the teaching team is here to help!

High effort.#

This course will involve a lot of effort, especially for students who haven’t programmed before. It’ll be important to:

  • Start assignments early.

  • Be proactive: please ask for help if you’re stuck! If you don’t understand something, it’s likely that many other students don’t either.

  • Persevere: programming is hard and can be frustrating. Even experienced programmers make errors. But again, we’re here to address questions and issues that arise––and there are also resources online, like StackOverflow.

Frequently Asked Questions#

Are there prerequisites for this course?#

No, it’s open to any and all students.

Because of that, we expect that some students will have very little (or no) programming experience, while others may already be proficient in Python. The course is intended to teach Python “from the ground up”, so to speak.

Is attendance required?#

No. Attending lecture and section is helpful but not required. I don’t want to encourage people to come to class if they’re not feeling well.

Why Python?#

First, Python is widely used, for both data analysis and software engineering.

Python Facts

In a 2021 Stack Overflow survey (N = 83K), approximately 48% of respondents worked with or wanted to work with Python.

Second, Python also has a large, active developer community. There are many open source packages for scientific computing, such as pandas (for working with data tables) and seaborn (for plotting data). This makes Python an excellent entry-point into learning to ask scientific questions from a computational, data-driven perspective.

Finally, Python is human-focused. The goal is to write clean, readable code that can be shared with others and facilitate communication.

What do I need to install?#

DataHub should have the requisite software (Python, Jupyter notebooks, and relevant Python libraries). However, if you plan to work on projects locally, i.e., not using DataHub, you’ll want to install Anaconda, which will also install Jupyter.

Why no midterms or final exam?#

From a pedagogical perspective, assessments are valuable for several reasons:

  1. As motivation for students to learn the material.

  2. As a signal to students and professors which material needs more practice/time.

  3. As a further possibility to rehearse and construct knowledge.

Because Python programming is a skill, I think that frequent labs and problem sets serve these goals much more effectively than a single midterm or final exam.

How do I access and submit assignments?#

Check out the page on DataHub for more information.