CS 110x C Term 2014: Introduction to Programming for Non-Majors

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.

Course Objectives

For an official description of the course, see the following WPI undergraduate course description for CS 110X.

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.

Outcomes

Upon completion of this course, the student should be able to:

I have identified a set of Skills that you will learn and exercise in this class. These skills summarize the experience that one would have using any language. Once you have mastered these fundamental skills, you can apply your programming knowledge to learn new languages. Over time, as you become more proficient, you will make your own skill sets that will prove useful in your career.


Class Effort

Based on performance from last year, the average student spent 9+ hours (in addition to lectures and lab) on this course. Some students required even more time. Please pay attention to your own progress through the course so you can calibrate your effort level.

The best way to complete this course is to spend about 45 minutes each day on the following tasks:

All told, I expect you will spend 14 hours a week on this class (or 2 hours per day). However, don't try to cram hours of studying or homework into the weekend because that won't be effective.

The average grade for the class last year was 3.05 (+/- 1). However, it was apparent last year that there was a bit of a disconnect regarding grading. Specifically:

GradeExpected CountActual Percentage
A54 (0.39) 0.42
B52 (0.37) 0.28
C20 (0.14) 0.26
NR1 (0.01) 0.04
Unknown13 (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.


Why Python?

I chose to teach CS110x using Python for a number of reasons.


Staff & Contact Information

Instructor: George Heineman (GTH)
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)

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.

Office Hour Schedule

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.


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.

Class Discussion Board and Email

A discussion board for CS 110x has been set up on myWPI. You are responsible for all announcements and information posted on the myWPI site - check it on a daily basis.

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 the IDLE 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.

Exams (50%)

Three exams will be given. Exams are tentatively scheduled for Monday February 3rd (15%), Tuesday February 18 (15%), and Friday March 17 (20%).

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.

Homework (35%)

Seven homework assignments will be given. Starting with Homework 2, homework assignments will be done in pairs. Homework assignments will be due on Tuesday evenings at 5pm. No extra credit or makeup assignments will be given. Each homework will have clearly posted Homework Expectations details on how to prepare your homeworks. The graders will follow specific grading guidelines when grading your homework.

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.

Labs (7%)

Labs will be given during conference sections on Wednesdays (and one on Thursday). To get credit for a lab you must attend at your scheduled time, sign the attendance sheet, actively work on the assignment during the lab period, and use turnin to turn in your work at the end of the lab period. Each lab will be graded as either credit (1) or no credit (0). You will not get credit for a lab unless you attend the section for which you are registered. There are no makeups for labs.

In-class one-click assessments (8%)

To increase the participation of all students, there will be sixteen in-class "one-click" assessments using the "Clicker" technology available from the ATC (URL). Students will have the opportunity to answer questions and I will get immediate feedback on the knowledge of the students. You get points for even submitting an answer, though you will naturally get twice as many points for getting the answers correct. There are no makeups for one-click assessments. All clicker points accumulate during the term and will be pro-rated to become 8% of your total grade.


Academic Honesty Policy

Please read WPI's Academic Honesty Policy.

Labs and In-class group work

Collaboration is encouraged for labs and in-class group work.

Exams

Collaboration is prohibited on exams.

Homework

Homework 1 is to be done individually.

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.

Late Policy

No late homeworks are accepted, and there are no extra credit or makeup homework assignments

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.

Homework Submission Policy

Homework must be submitted using the web-based turnin program. Homework submitted by any other means (paper, email, etc.) will receive a grade of zero.

Students with Disabilities

Students with disabilities who believe that they may need accommodations in this class are encouraged to contact the Disability Services Office (DSO) as soon as possible to ensure that such accommodations are implemented in a timely fashion. The DSO is located in Daniels Hall.

------------------------------------------
http://www.cs.wpi.edu/~cs110x/c14

Last Updated: $Date: 2014/02/27 02:21:08 $