CS 150 Computing for the Sciences Spring 2017

Course Information

Course homepage:
go/cs150 or http://www.cs.middlebury.edu/~schar/courses/cs150-s17/

Time and place:
A: MWF 8:00 - 8:50am in MBH 505
B: MWF 9:05 - 9:55am in MBH 505

Daniel Scharstein
640A McCardell Bicentennial Hall
schar middlebury.edu

Office Hours:
MW 1:30-2:30pm, TR 11am-noon,
and by appointment

Lab Assistant:
Ruben Gilbert (go/ruben)
rgilbert@middlebury.edu, 443-5915

Textbook (optional):
Practical Programming (2nd edition):
An Introduction to Computer Science Using Python 3

P. Gries, J. Campbell, J. Montojo
Pragmatic Bookshelf, 2013

Additional textbook (optional, free online):
Think Python: How to Think Like a Computer Scientist
A. Downey
Green Tea Press, 2012

Course Description

Computer Science 150 is an introduction to the field of computer science geared towards students interested in the sciences. By the end of this course you should have a good understanding of how to develop (design, code, and debug) medium-sized programs in Python. You will also have a working understanding of large data analysis and some of the tools used in scientific computation, including Matlab.
We do not assume you have had any previous programming experience for this course.
If you are not sure if this course is appropriate for you, I'm happy to discuss it with you.


The following is a tentative schedule of the topics to be covered in the course. The course web page will be updated with a more detailed schedule of topics, readings, and assignments.

Week  Topic
1, 2Programming and Python basics
4Conditionals, loops
5Lists, files
6Midterm exam, objects
7Sets, dictionaries
8Plotting, modules
9Files, URLs
12 Sorting, number representations

Handouts, announcements, etc.

All handouts will be distributed on the course web page. This will include code examples from class, assignments, and other handouts. You are responsible for all material and announcements posted on the class web page, so please check it regularly. For time-critical announcements, I will use e-mail.

Late policy

Except under extenuating circumstances or when otherwise specified, I will not accept late assignments.


Honor code and collaboration

I take the honor code and academic honesty very seriously.

You are encouraged to get together in small groups to discuss material from the lectures and text. However, the work that you turn in must be done independently, unless an assignment is explicitly designated as one in which collaboration is allowed.

In particular, your work must not be based on information obtained from sources other than those approved for the course (i.e., the text, web pages linked from the course web page, and materials provided in lecture). You should never copy another student's code or solutions, exchange computer files, or share your code or solutions with anyone else in the class until after an assignment is due. You may, however, use any code that we provide to you or that comes from the textbook, as long as you acknowledge the source. Additionally, the tutors are allowed to help you with your code.

For the weekly assignments: you should be designing and coding the labs on your own, with help from the tutors and instructors if desired. You may get help from other non-TA students in order to locate errors, but only errors of syntax, not errors of logic. Should you be working with someone else to find an error, you may not provide them with suggested code nor may you copy their code in your program. You may point out similar examples from the text or lecture notes.

For the two test projects: you should think of these as take-home, open-book tests. As such, you may read your textbook, class notes, and any other source approved by the instructor, but you may not consult other sources (e.g., looking for code online). You may not consult anyone other than the instructor. I encourage the asking of questions, but reserve the right not to answer, just as you would expect during an exam.

If you are working with others on an assignment, I suggest the following procedure: spend as much time as you need working with others to understand the problems. When you're ready to start on your own take a break and then go back and write your programs without the notes you used while working with the others. This will help ensure that you follow both the letter and the spirit of the honor code.

If you are ever unsure about what constitutes acceptable collaboration, please ask!

Computer use during class

Class will be held in a classroom with computers. You may use these desktops (or your laptops) during lecture to take notes or to try out examples. You may NOT use computers for anything else during class (e-mail, IM, web browsing, games, etc.). Students who cannot follow this rule will lose the privilege of computer use during class.

ADA information

Students with documented disabilities who may need accommodations in this class (e.g., extra time on exams) are encouraged to contact me as early as possible to ensure that such accommodations are implemented in a timely fashion. Assistance is available to eligible students through the ADA Office. Please contact Jodi Litchfield, the ADA Coordinator, at litchfie@middlebury.edu or 802-443-5936 for more information. All discussions will remain confidential.