WPI Worcester Polytechnic Institute

Computer Science Department
------------------------------------------


CS 1101 A Term 2015
Introduction to Program Design

Objectives | Staff&Contact Information | Where&When | Textbook/Software/Videos | Grading | Policies | Schedule&Assignments | Design Recipes | FAQs



What this course is about

What drives someone to write a program? Once you have an idea for a program, what do you do next? What skills does it take to write useful programs? How does computer science interact with other disciplines? And what do computer scientists do besides programming anyway? CS 1101 introduces students to the worlds of computing and programming. Through a series of programming and information design exercises, students will learn how programmers view the world and how to turn problems into working programs. We'll study the various aspects of program design and write some fun programs along the way. This course assumes no prior programming background and is designed for both potential CS majors as well as curious students from other majors. Additional information about the course can be found in the WPI undergraduate catalog course description for CS 1101.

Course Objectives

CS 1101 is designed to help you identify problems that programs can solve and to learn how to design programs that solve problems. Program design involves a series of smaller skills, including information design, 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:


Staff

Instructor: Glynis Hamel

Lab Supervisor: Hao Loi

Teaching Assistant: Christina Aiello

Senior Assistants: Ankit Kumar, Charles Lovering, Nick McMahon, Thomas Meehan, Hoang Minh Ngo, Huyen Bui Thanh Nguyen, Alexandre Pauwels, Axe Soota, William Temple, Yang Xu

Office Hour Schedule

(Note: TA/SA office hours will be held in FL A22. Glynis Hamel's office hours are held in FL 132.)


Day/Time 11:00 12:00 1:00 2:00 3:00 4:00 5:00 6:00
Sunday       Hoang Huyen      
Monday   Ankit Thomas Glynis   Charles    
Tuesday   Yang Yang Thomas Nick/Hoang Nick/Christina Ankit  
Wednesday Huyen Ankit/Charles Charles/William Axe Axe Nick Alex  
Thursday Alex Glynis Thomas   Christina      
Friday   Yang William          
Glynis Hamel is available for additional office hours on Tuesday by appointment.

CS 1101 MASH Tutor

There is a tutor for CS 1101 available through the Academic Resource Center. The MASH tutor for CS 1101 is Tanuj Sane. Tanuj will be holding MASH tutoring sessions on Monday 7-8pm in the EPC (Exam Proctoring Center), Tuesday 2-3pm in the ARC, and Thursday 7-8pm in the EPC. For the full schedule including times and locations refer to the MASH tutoring schedule for A-term. (.pdf)


Class Discussion Board and Email

A discussion board for CS 1101 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 cs1101-staff *at* cs.wpi.edu. Mail sent to this address goes to the instructor, TA, and SAs. Include your section number in all correspondence.

The instructor's email address is ghamel *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 questions of general interest to the class discussion board.


Lecture and Lab Times

Lectures MTRF from 9:00 - 9:50am (FLPH-UPR), 10:00-10:50am (FLPH-UPR), and 1:00-1:50pm (AK 233). You must attend the lecture for which you are registered.

Labs meet on Tuesday/Wednesday according to the following schedule:

Section Time Location Lab Assistants
A01 8 - 8:50am SL 123 Hao Loi, Huyen
A02 9 - 9:50am SL 123 Hao Loi, Charles
A03 10 - 10:50am SL 123 Hao Loi, Alex
A04 11 - 11:50am SL 123 Hao Loi, Axe
A05 12 -12:50pm SL 123 Hao Loi, Axe
A06 1 - 1:50pm SL 123 Hao Loi, Yang
A07 2 - 2:50pm SL 123 Hao Loi, Hoang
A08 3 - 3:50pm SL 123 Hao Loi, Christina
A09 2 - 2:50pm FL A21 William, Thomas
A10 10 - 10:50am FL A21 Huyen, Nick
A11 4 - 4:50pm SL 123 Hao Loi
A12 Tues 3 - 3:50pm SL 123 Christina, William


Textbook, Software, and Videos

Textbook: Many students do well in CS 1101 without consulting a textbook. All the material you will be responsible for learning will be covered in the videos and in the class lectures. However, if you would like to delve more deeply into the topics covered in the course, or if you'd like additional problems or exercises to work on, we recommend How to Design Programs by Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi (MIT Press). The book is available online (free) as well as in hard copy.

Software: We will use DrRacket (the latest version is 6.2.1), for all coding projects in the course. DrRacket is installed on all CCC lab machines. You can download DrRacket to your own computer; it's free and supports the usual OS's (Unix, PC, Mac).

Videos: Most of the course lecture material will consist of online lecture videos, available through Youtube. To get started, visit the Systematic Program Design channel on Youtube. Choose Playlists. You'll see that each playlist is numbered; we'll start with the videos in the 01a- BSL playlist (see the Schedule below for the daily video assignment).


Grading

Exams (45%)

Three exams will be given, each worth 15% of the final grade. Exams are scheduled for September 14, September 29, and October 15. 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 the next time the course is offered (C-term 16).

Quizzes (15%)

Most class meetings (except exam days) will begin with an in-class quiz. The quizzes are designed to test your understanding of the material in the previous days' on-line lecture videos. There will be a mixture of clicker-based quizzes and paper-based quizzes. Make sure you bring your clicker and a pen or pencil to each class. If you forget your clicker, your grade for a clicker-based quiz will be 0. Your three lowest quiz grades will be dropped. There are no makeups for quizzes.

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 Thursday evenings at 5pm. No extra credit or makeup assignments will be given. Read Homework Expectations for details on how to prepare your homeworks. The graders will follow these grading guidelines when grading your homework.

Labs (5%)

Labs will be given during lab sections on Tuesdays and Wednesdays. To get credit for a lab you must Each lab will be graded as either credit (1) or no credit (0). At the end of the term, your lowest lab grade will be dropped. The remaining lab grades will be used to account for 5% of your final grade. You will not get credit for a lab unless you attend the section for which you are registered. There are no makeups for labs.


Academic Honesty Policy

Please read WPI's Academic Honesty Policy.

Labs

Collaboration is encouraged for labs.

Exams and Quizzes

Collaboration is prohibited on exams and quizzes.

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 14, Academic Honesty Policy of the WPI Code of Conduct.

Late Policy

Late homework will be accepted within 24 hours of the due date. Each homework-partner-group will be allowed one late submission without penalty. Beyond that, late homework will incur a 25% penalty (i.e. 25% of the total possible points for the assignment will be deducted). Any homework turned in after the 24-hour grace period will receive a grade of zero. No exceptions will be made to the late homework policy. No extra credit or makeup homework assignments will be given.

Do not send email to the instructor or to the TAs/SAs 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 accomodations in this class are encouraged to contact the Disability Services Office (DSO) as soon as possible to ensure that such accomodations are implemented in a timely fashion. The DSO is located in Daniels Hall.


Schedule & Assignments

Note: the instructor reserves the right to change the order of topics or the dates of the exams, if necessary.

Week Supplementary Reading (from "How to Design Programs") Video Viewing Homework (on this Youtube channel)

Video assignments are listed by the number and name of the playlist, the number and title of the video in the playlist, and the approximate viewing time. For example, the first video can be found as video 1 in the 01a BSL playlist. The title of the video is "Introduction". The video is 5 minutes and 32 seconds long.

Assignments Extras

Aug 27 - 28 1 Arithmetic
2 Functions and Programs
("BSL" = Beginning Student Language)
View before Aug 28:
01a BSL - 1 - Introduction (5:32)
01a BSL - 3 - Expressions (8:29)
01a BSL - 4 - Evaluation (6:55)
01a BSL - 5 - Strings and Images (11:29)
01a BSL - 6 - Constant Definitions (6:15)
*******************************************************
View before Aug 31:
01a BSL - 8 - Function Definitions (11:01)
01a BSL - 9 - Booleans and if Expressions (14:01)
01a BSL - 10 - Using the Stepper (5:36)
01a BSL - 11 - Discovering Primitives (5:25)
Homework 1 (90 points) (due: Thursday, Sept 3)
Class 1 objectives
Class 2 objectives
Using Images
Aug 31 - Sept 4 3 How to Design Programs (sections 3.1 - 3.5) ("HtDF" = How to Design Functions)
View before Sept 1:
01b HtDF - 1 - Full Speed HtDF Recipe (8:46)
01b HtDF - 2 - Slow Motion HtDF Recipe (11:21)
01b HtDF - 3 - Examples - yell! (3:30)
01b HtDF - 4 - Examples - area (5:02)
01b HtDF - 5 - Examples - image-area (5:59)
01b HtDF - 6 - Examples - tall (11:17)
***********************************************************
("HtDD" = How to Design Data)
View before Sept 3:
02 HtDD - 1 - cond Expressions (11:12)
02 HtDD - 2 - Data Definitions (8:00)
02 HtDD - 3 - Atomic Non-Distinct Data Definitions (8:04)
02 HtDD - 4 - HtDF with Non-Primitive Data (7:49)
************************************************************
View before Sept 4:
03b Compound Data - 1 - define-struct (5:27)
03b Compound Data - 2 - Compound Data Definitions (6:18)
Lab 1, Wed 9/2
Homework 2 (120 points) (due: Thursday, Sept 10)

Class 3 objectives
Class 4 objectives
Class 5 objectives
Class 6 objectives


Creating helpers (printed-pen code)


Symbols and Strings


Study Guide on Functions


Study Guide on Structures


Boa/Dillo/Animal lecture examples

Sept 8 - 11 5 Adding structure(sections 5.1 - 5.4)
9 Lists

View before Sept 10:
04a Self-Reference - 1- Introduction to Arbitrary Sized Data (1:22)
04a Self-Reference - 2 - List Mechanisms (8:40)
04a Self-Reference - 3 - List Data Definition (11:32)
04a Self-Reference - 4 - Function Operating on List (7:36)
************************************************************************
View before Sept 11:
04a Self-Reference - 5 - Revising the Recipes for Lists (12:14)
************************************************************************
View before Sept 14:
04a Self-Reference - 6 - Designing with Lists (13:04)
04a Self-Reference - 7 - Positions in List Templates (7:15)

A brief intro to event-driven programming (read before you try Lab 2)
Lab 2,Wed 9/9
Homework 3 (175 points)(due: Thursday, Sept 17)

Monday, September 7 - Labor Day Holiday
Class 7 objectives
Class 8 objectives
Class 9 objectives


Exam preparation Guidelines


Sample Exam 1 [pdf]


Why aren't the solutions to the sample exam published?


tiger data definition (notes from class)


When to Think While Programming

Sept 14 - 18 10 Designing With Self-Referential Data Definitions
11 More on Lists

View before Sept 15:
04b Reference - 1 - The Reference Rule Part 1 (10:41)
************************************************************************
View before Sept 17:
05b More Helpers - 1 - Introduction (1:00)
05b More Helpers - 2 - Function Composition (13:44)
05b More Helpers - 3 - Laying out a List of Images (4:05)
************************************************************************
View before Sept 18:
05b More Helpers - 4 - Operating on a List (10:55)
05b More Helpers - 5 - Domain Knowledge Shift (14:48)
************************************************************************
View before Sept 21:
05b More Helpers - 6 - Wrap Up (7:19)
06a BSTs - 1- List Abbreviations (5:45)
Lab 3, Wed 9/16
Homework 4 (155 points)(due: Thursday, Sept 24)
Exam 1, Monday, Sept 14
Class 11 objectives
Class 12 objectives
Class 13 objectives


ListOfCourse problems from Tuesday's class

Sept 21 - 25 HTDP Chapter 14.1
HTDP Chapter 15.1
HTDP Chapter 15.2

View before Sept 22:
06a BSTs - 2 - List of Account (2:44)
06a BSTs - 3 -Binary Search Trees (7:56)
06a BSTs - 4 -BST Data Definition (11:49)
06a BSTs - 5 -Lookup in BST (14:53)
************************************************************************
View before Sept 24:
06b Mutual-Ref - 1 -Mutually Referential Data (9:13)
06b Mutual-Ref - 2 - Templating with Mutual Reference (4:50)
************************************************************************
View before Sept 25:
06b Mutual-Ref - 3 - Functions on Mutually Referential Data - Part 1 (12:42)
************************************************************************
View before Sept 28:
06b Mutual-Ref - 4 - Functions on Mutually Referential Data - Part 2 (12:01)
06b Mutual-Ref - 5 - Backtracking Search (19:05)
Lab 4, Wed 9/23

Homework 5 (160 points) (due: Thursday, Oct 1)
Class 14 objectives
Class 15 objectives
Class 16 objectives
Class 17 objectives


Monday's problems on family trees


Tuesday's problems on family trees


Thursday's problem on mutually-recursive trees (and an extra problem)


Exam preparation Guidelines
Sample Exam 2 [pdf]
Why aren't the solutions to the sample exam published?

Sept 28 - Oct 2 HTDP Chapter 19
HTDP Chapter 20

View before Oct 1:
07b Local - 1 - Introduction (0:43)
07b Local - 2 - Forming and Intuition (4:56)
08 Abstraction - 1 - Introduction (1:10)
08 Abstraction - 2 - From Examples 1 (11:16)
************************************************************************
View before Oct 2:
08 Abstraction - 3 - From Examples 2 (10:39)
08 Abstraction - 4 - From Examples 3 (17:26)
************************************************************************
View before Oct 5:
08 Abstraction - 5 - Using Built-In Abstract Functions (19:15)
08 Abstraction - 6 - Closures (12:20)
Lab 5, Wed 9/30

Homework 6 (170 points) (due: Thursday, Oct 8)
Class 18 objectives
Exam 2, Tuesday, Sept 29
Class 20 objectives
Class 21 objectives


Notes from Thursday's lecture (filter)

Oct 5 - 9 HTDP Chapter 31
HTDP Chapter 34
HTDP Chapter 35
HTDP Chapter 36
HTDP Chapter 37.1
View before Oct 6:
10 Accumulators - 1 - Context Preserving Accumulators Part 1 (6:30)
10 Accumulators - 2 - Context Preserving Accumulators Part 2 (9:58)
10 Accumulators - 3 - Practice Problem - skipn Part 1 (1:44)
10 Accumulators - 4 - Practice Problem - skipn Part 2 (9:33)
************************************************************************
View before Oct 8:
10 Accumulators - 5 - Tail Recursion Part 1 (8:32)
10 Accumulators - 6 - Tail Recursion Part 2 (9:48)
************************************************************************
View before Oct 9:
Extra Videos - 3 - Mutable Variables (12:00)
Homework 7 (90 points) (due: Tuesday, Oct 13)
Lab 6, Wed 10/7

Class 22 objectives
Class 23 objectives
Class 24 objectives
Class 25 objectives


Notes from Tuesday's lecture (accumulator-style programming, set!)


Notes from Thursday's lecture (testing with set!, vending machine)


Notes from Friday's lecture (set-structure!)


Exam Preparation Guidelines
Sample Exam 3 [.pdf]
Why aren't the solutions to the sample exam published?

Oct 13 - 16 HTDP Chapter 40.3
HTDP Chapter 40.5
(no videos for this week's topics)
More on set-structure!
Counting cycles
Wrap-up, course evaluations
Lab 7, Wed 10/14 Class 26 objectives
Class 27 objectives
Exam 3, Thursday, Oct 15

Design Recipes and Other Handouts

Frequently Asked Questions




------------------------------------------
http://www.cs.wpi.edu/~cs1101/a15/index.html


[WPI] [CS]