Objectives | Where & When | Day by day Schedule | Syllabus | Programming Partners | Study Guide
Why Python? | Textbook & Software | Grading | Policies | 2.7.3 vs. 3.0
Staff & Contact Information | Turnin | Skills | Latest News
What This Course Is About
The former foundation of a solid education was captured by the phrase
"Reading, Writing and Arithmetic." Clearly reading and writing will never
go out of style (although texting will have an impact, don't you think?)
However, arithmetic is now something that seems oddly quaint, given the
powerful computers we now have.
Aside from reading and writing, there is one skill that transcends disciplines. That skill is the ability to program a computer to perform tasks on your behalf. Whether you are a scientist, a journalist, an historian, a writer or an engineer, programming enables you to multiply your abilities to save time, eliminate tedious tasks, and out-perform your peers who are not able to program.
You might not even realize the importance of programming in your discipline; my goal is to ensure that by the end of this course, you will.
Programming is not rocket science. Anyone can be taught to program. Do you think only runners in perfect condition can complete a marathon? You must know quite ordinary people who have run a marathon. To do so, you only need the desire and a plan to train your body to complete the task.
This is a course about programming, not computer science. To make an analogy, think of the usefulness of a spreadsheet program like Excel. You can use Excel to track purchases for a student club, maintain your library of books, produce reports of your MP3 files, produce charts for your science classes. You can use Excel in so many ways; it is the same with programming.
In this class you will learn how to program using Python, a modern language that is quite popular with numerous scientific and engineering disciplines. Along the way you will learn key concepts that will make it possible for you to learn how to be effective in MATLAB, C, Javascript or any other language that you may come across.
Welcome to the 21st century. Now let's get out there and program.
CS 110x is designed to help you identify problems that programs can solve and to learn how to write programs to solve these problems. Programming involves a series of smaller skills, including information modeling, logic design, testing, and documentation. Improving your skills in these areas should help you with general problem solving even when you aren't programming.
Upon completion of this course, the student should be able to:
The best way to complete this course is to spend about 45 minutes each day on the following tasks:
Grade | Expected Count | Actual Percentage |
A | 54 (0.39) | 0.42 |
B | 52 (0.37) | 0.28 |
C | 20 (0.14) | 0.26 |
NR | 1 (0.01) | 0.04 |
Unknown | 13 (0.09) |
It is possible to work hard and get an A in this course, but make sure you leave room for this challenge if you set this as your goal.
Instructor: George Heineman (GTH)
There is also
a M*A*S*H leader,
Tim DeFreitas, for CS 110X. He holds special MASH sessions three times per
week in the Academic Resources Center (Daniels Hall, First Floor). His
times are shown in the table below as M*A*S*H. His sessions are held in
two locations: EP is Exam Proctoring Center next to Morgan Dining
Hall) and ARC is the Academic Resources Center, Daniels Hall, 1st
Floor.
TA/SA office hours will be held in FL A22.
George Heineman's office hours are held in FL B-20. Each TA/SA
will hold 3 hours of office hours per week.
Why Python?
I chose to teach CS110x using Python for a number of reasons.
Teaching Assistants: Ahmedul Kabir (akabir), Jian Xu (jxu3)
Senior Assistants: Taymon Beal (taymonbeal@wpi), Ryan Danas
(ryandanas@wpi), Eyleen Graedler (egraedler@wpi), Chris Hanna (cdhanna@wpi), Nicholas Morin (nix1992@wpi)
Office Hour Schedule
Day/Time | 10:00 | 11:00 | 12:00 | 1:00 | 2:00 | 3:00 | 4:00 | 5:00 | 6:00 | 7:00 | 8:00 |
Sunday | EG NM |
EG CH |
TB | TB | TB | GTH - Online | |||||
Monday | RD | GTH | NM | AK | AK | GTH - Online | |||||
Tuesday | AK | RD | GTH | CH RD |
CH | M*A*S*H (EP) | |||||
Wednesday | M*A*S*H (EP) | ||||||||||
Thursday | M*A*S*H (ARC) GTH - AK 219 starts Jan-23 |
JX | JX | JX GTH - Online |
|||||||
Friday | NM | GTH | EG |
Initials above are: Ahmedul Kabir (AK), Jian Xu (JX), Eyleen Graedler (EG), Chris Hanna (CH), Ryan Danas (RD), Nicholas Morin (NM), Taymon Beal (TB)
George Heineman is available for additional online office hours on a semi-regular basis in the evenings from 8:00PM to 9:00PM using Adobe Connect, a tool available in the my.wpi.edu web site. Once the course is up and running, this will be actively promoted in class.
If you have a question regarding your grades in the course, send email to cs110x-staff *at* cs.wpi.edu. Mail sent to this address goes to the instructor and to the TAs. Include your section number in all correspondence.
The instructor's email address is heineman *at* cs.wpi.edu. Please restrict your use of my personal email address to issues of a confidential nature. You will get a quicker response if you post your questions to the class discussion board.
Lecture and Lab Times
I have posted a full day-by-day lecture schedule;
some of these lectures are still in progress.
Lectures MTRF from 10:00 - 10:50am (AK 219) and from 12:00-12:50pm in FLPH-UPR. You should attend the lecture for which you are registered.
Labs for all sections OTHER THAN C04 meet on Wednesdays according to the following schedule. Section C04 has lab on Thursday morning from 9:00 - 9:50 in SL123. Be sure to attend the lab for which you are registered because of the limited seating in each lab section.
Section | Time | Location | Lab Assistants |
C01 | 9 - 9:50am | GH 012 | JX & AK |
C02 | 10 -10:50am | GH 012 | EG & AK |
C03 | 12 - 12:50pm | GH 012 | AK & NM & TB |
C04 | 9 - 9:50am (Thu) | SL 123 | TB |
C05 | 8 - 8:50am | SL 123 | NM & JX |
C06 | 11 - 11:50pm | SL 123 | EG & JX |
C07 | 3 - 3:50pm | SL 123 | RD & CH |
C08 | 4 - 4:50pm | SL 123 | RD & CH |
Each lab section will be covered by two of the assistants for the course.
Textbook and Software
Textbook: The textbook for the course is "Python Programming: An
Introduction To Computer Science", John Zelle, 2nd edition
[Amazon link]
Software: We will use Python [2.7.3] which is installed on numerous lab computers on campus. It is freely available. I strongly recommend that you install python on your personal computer using the freely available distribution from enthought.com (Download). This distribution works immediately on Windows, Apple and Linux machines.
Interactive Python Material: Lecture and reading material are supplemented by an online online Python Interactive Text Book that you will have access to once you are registered.
I will use theIDLE
Python development environment. Once you
have Python installed on your computer, simply type 'idle' in a command
window (or Start command) to launch the environment.In Lab you will be using Arduino software that will be pre-installed on the machines.
Grading
The grading policy for each project will be posted at the time of the
assignment. In general, each assignment will have a basic objective for
the majority of the assignment points and an extended objective for
demonstrating additional work and understanding.
Final grades will reflect the extent to which you have demonstrated understanding of the material, and completed the assigned projects. The base level grade will be a B which indicates that the basic objectives on assignments and exams have been met. A grade of A will indicate significant achievement beyond the basic objectives and a grade of C will indicate not all basic objectives were met, but work was satisfactory for credit. No incomplete grades will be assigned unless there exist exceptional, extenuating circumstances.
You must have a passing average on the exams in order to pass the course. (A passing average on the exams is usually around 60%. We may lower this threshold if the exam averages are low; the threshold will not be raised).
Exams are closed-book, closed-notes. You may bring in one sheet of notes (one paper, 8.5" x 11.5", both sides) to each exam. You may not use any computers, calculators, cellphones, headphones, or other electronic devices during the exams.
There are no makeups for exams. Absence from an exam will be excused only for medical or emergency reasons. A note from your doctor or from the Office of Academic Advising will be required. In such cases, your final grade will be recorded as Incomplete and you will be allowed to take a makeup exam once the course is over.
Homeworks are due by 5PM so we can grade your assignments and have them back to you by Thursday. Once the deadline passes you will not be able to submit your homework and your team will receive a ZERO for the assignment. We need to have this quick turn-around so we can detect problems that I can address in lecture.
Academic Honesty Policy
Please read WPI's Academic
Honesty Policy.
Starting with Homework 2, you will be working with a homework partner. You may discuss problems in a general manner across homework pairs, but each pair is responsible for writing up their own solution from scratch.
As examples, each of the following scenarios would constitute cheating (this list is not exhaustive!):
In contrast, the following scenarios would not constitute cheating:
Cheating will not be tolerated. If you are unsure whether a given activity would constitute cheating, ask the instructor. Violations of the Academic Honesty Policy can result in an NR for the course, and violators will be subject to the procedures outlined in section 5 of the WPI Judicial Policy.
Each homework assignment will have a complete description explaining how points are assigned. Use your time wisely to accumulate as many "partial credit" points as you can by the time the homework is due.
We will be using a web-based "turnin" system for all assignments. Each homework will have a specific time of day by which the assignment must be submitted. Once turnin is closed, no late homeworks will be accepted. Being one-minute late is the same thing as being one-day late, so make sure you submit your assignments in timely fashion.
Do not send email to the instructor or to the TAs requesting special exemption from the late policy. The late policy is applicable for all possible reasons for late submissions. In particular, one pair member forgetting to turn in an assignment on time will not be considered an acceptable excuse for an extension.
Last Updated: $Date: 2014/02/27 02:21:08 $