Course Syllabus

 

Prerequisites

Basic computer skills, including comfort with text editors and the command line interface, as described here:

http://learnpythonthehardway.org/book/appendixa.html 

Expectations

You should have a laptop computer that you can bring to class. Please let me know in advance if this presents a problem.

Please review the notes on the "Before the First Day" page, which you can find in the module for the first week, found under the Modules tab on the left.  

 

Textbooks 

Required Text: Think Python, by Allen B. Downey, second edition, O'Reilly, Sebastopol, California.

The book has been well received by students and faculty, and has gone through a confusing number of versions.  

Here are two of the many on-line texts that you may find useful.  

How to think like a Computer Scientist, by Brad Miller and David Ranum.

interactivepython.org/runestone/static/thinkcspy/index.html (Links to an external site.)Links to an external site.

 You may find the "Think like a Computer Scientist" title to be off-putting: don't be alarmed.  This is an online version of a translation into Python of Downey's original book by that title, which used the Java language.  The outline and general focus are the same as the version we will be using.  This version goes into greater detail, and includes an interactive workspace that is very helpful.  

Downey approved of the book, and thought that Python was a better choice for beginners.  He rewrote his original book, and titled it Think Python.  The first edition of that book used version 2 of Python: we are using the second edition of the book, which teaches version 3 of Python.  

Recommended resource: Learn Python the hard way to Python 3, by Zed Shaw. 

Shaw breaks everything down into very small bites.  He also has strong opinions, strongly expressed.  In general, I agree with most of his opinions, if not with his manner of expressing them.  You may access the material by buying his book or consulting his website.  

We will be using Python 3: don't get stuck with an earlier edition.  

Grading

70% of the grade will be based on assignments.  There will be weekly assignments and a final project for Graduate students.

15% will be based on the midterm exam

15% will be based on the Final Project for Graduate students

 

Extension School Policies

As a student at the Extension school, you will have many opportunities.  You also have responsibilities.  Please familiarize yourself with the school policies

https://www.extension.harvard.edu/resources-policies/student-conduct

One of the important policies is maintaining Academic Integrity, described below 

Academic Integrity

While we encourage you to consult outside sources, you need to cite anything that you copy.  The Harvard Student Handbook states:

”All work submitted to meet course requirements is expected to be a student’s own work. In the preparation of work submitted to meet course requirements, students should always take great care to distinguish their own ideas and knowledge from information derived from sources. Whenever ideas or facts are derived from a student’s reading and research the sources must be indicated. The term ”sources” includes not only published primary and secondary material, but also information and opinions gained directly from other people. The responsibility for using the proper forms of citation lies with the individual student. Quotations must be placed within quotation marks, and the source must be credited. All paraphrased material also must be completely acknowledged.”

https://www.extension.harvard.edu/resources-policies/student-conduct/academic-integrity


If you consult a book to check the syntax of a statement, you do not need to cite it. But if you copy an example, or even borrow ideas for the solution of problem, please give us a URL or other citation at the head of your submission.

You will not need to cite examples given in class: we expect you to use them in your work.

You will be working with other students in class: but we expect you to learn the material and write the solutions on your own.  All work on the quizzes and all homework submissions should be your own work.  

 

Accessibility

Students who would like to request accommodations for disabilities should contact the Accessibility Services office at 617-998-9640

See this website for more information:

https://www.extension.harvard.edu/accessibility-student-services

 

Proposed Schedule

Week 1: Python, Jupyter, Variables, Printing, Documentation

  • Jupyter notebooks,
  • Python & iPython,
  • the command line,
  • printing,
  • reading & writing documentation.

Read Chapter 1

Week 2: Integers, Floats, Booleans, Strings

  • Integers vs. Floats,
  • Booleans + Boolean logic,
  • Strings: immutability, indexing, slicing, len

Read Chapter 2

Week 3: Conditionals, for Loops

  • If, else, elif,
  • Joining multiple conditions,
  • nested conditionals,
  • for loops
  • lists

Read Chapter 5

Week 4: Functions, I/O

  • Functions with/without output,
  • Function calls,
  • Reading and writing files,
  • Keyboard input

Read Chapter 3

Week 5: Lists, List Operations, Tuples

  • Lists, list indexing, slicing, methods,
  • looping through a list,
  • tuples vs. lists.

Read Chapter 10 and 12

Week 6: Exam

Week 7: Dictionaries, Sets, List Comprehensions

  • Dictionaries,
  • Key-value mapping,
  • Sets,
  • List Comprehensions

Read chapter 11

Week 8: Recursion

  • Recursive functions,
  • Infinite recursion

Reach Chapters 5 (again) and 6

Week 9: Generators, Exception Handling

  • Generator expressions,
  • try-except blocks

Week 10: Classes and Objects I

  • Classes,
  • Objects as Instances,
  • What is an Object,
  • Methods & Attributes

Read chapter 15

Week 11: Classes and Objects II

  • Polymorphism,
  • Inheritance,
  • __init__, __str__, Operator overloading

Read chapter 16

Week 12: pandas, matplotlib/seaborn/bokeh

Week 13: scikit-learn for machine learning (or requests – beautiful soup – regular expressions for web scraping)

Week 14: Graduate Student Projects

 

 

Student Support Tips

Instructor Support Tips

 

Course Summary:

Course Summary
Date Details Due