Introduction to Programming with Python

CSCI S-7 Introduction to Programing in Python

Instructor: Jeff Parker

On Campus only

July 10, 2017

Monday, Tuesday, Wednesday and Thursdays, noon-3 pm


Course Description

Python is a language with a simple syntax, and a powerful set of libraries. It is an interpreted language, with a rich programming environment, including a robust debugger and profiler. While it is easy for beginners to learn, it is widely used in many scientific areas for data exploration. This course is an introduction to the Python programming language for students without prior programming experience. We cover data types, control flow, and introduce the analysis of program performance. The examples and problems used in this course are drawn from diverse areas such as text processing and simple graphics creation. Students implement a final project of their own design.

Our objective is to help students learn to use the Python programming language to solve problems of interest to them. We encourage students to come to class on the first day with a goal: a project they would like to accomplish. We may not be able to realize the most ambitious projects, we hope to start you on the path to achieving your goals.


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.


The class will require your full attention. Please do not plan other course work during this period. Lecture presentations will be short: most of class time will be spent working in pairs on the material. You will also need to spend time outside of class reading course material and solving exercises.

 

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

 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.  

 

Learn Python the hard way, by Zed Shaw. (This is also available as a bound book.)  

learnpythonthehardway.org/book/

This is not based on Downey's approach.  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.  

He uses version 2 of Python.  

Grading

60% of the grade will be based on assignments.  There will be short daily assignments, and two longer assignments over the weekends.  

20% of the grade will be based on class attendance and participation

20% will be based on two in-class mastery quizzes, one at the end of the first week and one at the end of the second week.  

 

Summer School Policies

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

http://www.summer.harvard.edu/policies/student-responsibilities

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.”

http://www.summer.harvard.edu/resources-policies/resources-support-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:

http://www.summer.harvard.edu/campus-life/accessibility-student-services.

  

Course Summary:

Date Details Due