# Course Outline

## **Syllabus**

**Week 1:** Intro and Thinking Like a Programmer\
**Week 2:** Programming Languages and Python Basics\
**Week 3:** Types, Lists and Dictionaries\
**Week 4:** While loops and For loops\
**Week 5:** Functions, and import\
**Week 6:** File I/O and String Manipulation\
**Week 7:** Datascience Pt. I - Numpy, Fitting and Prediction\
**Week 8:** Datascience Pt. II - Matplotlib, Data Visualization\
\&#xNAN;**-- Easter Break --**\
**Week 9:** Introductory machine learning with SciKit learn\
**Week 10:** Programming in the *Real World*

## Learning Outcomes

Students with little to no prior exposure to programming or python should feel comfortable with all concept covered in the class, and be able to apply the techniques discussed to problems they face in university courses or research.

Once equipped with a foundational understanding of programming, students will be able to independently build upon this by learning new languages, or increasing the sophistication of their python knowledge.

## Acknowledgement

Many of the topics and exercises are heavily inspired by other courses which teach introductory programming and/or python, and we have made no effort to thoroughly cite sources.

However, Harvard's CS50 (<https://cs50.harvard.edu/college/>) was the source of much inspiration for the early parts of the course, and for some of the exercises.
