WPI Worcester Polytechnic Institute

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


CS 1101 A Term 2014
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

Teaching Assistant: Francisco Castro

Senior Assistants: Trevor Behlman, Chris Hanna, Tushar Narayan, Sarun Paisarnsrisomsuk, Peng Ren, William Temple, Shawn Yoon

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 7:00 8:00 9:00 10:00
Monday     Chris Glynis Trevor              
Tuesday       Francisco William Tushar            
Wednesday Shawn Shawn Chris Francisco Peng           Sarun Sarun
Thursday   Peng Glynis William Trevor              
Friday       Tushar                
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 Alex Chen. Alex will be holding MASH tutoring sessions on Tuesday 3-4pm in the ARC, Wednesday 5-6pm in the EPC (Exam Proctoring Center), and Thursday 1-2pm in the ARC. 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, and from 10:00-10:50am in FLPH-UPR. You must attend the lecture for which you are registered.

Labs meet on Wednesdays according to the following schedule:

Section Time Location Lab Assistants
A01 8 - 8:50am SL 123 Chris, William
A02 9 - 9:50am SL 123 Shawn, Trevor
A03 10 - 10:50am SL 123 Shawn, Tushar
A04 11 - 11:50am SL 123 Sarun, Francis
A05 12 -12:50pm SL 123 Peng, Sarun
A06 1 - 1:50pm SL 123 Peng, William
A07 2 - 2:50pm SL 123 Tushar, William
A08 3 - 3:50pm SL 123 Tushar, Chris
A10 10 - 10:50am FL A21 Francis, Trevor


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.0.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 tentatively scheduled for September 15, September 30, and October 16. 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 15).

Quizzes (15%)

Every class meeting (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. 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 conference sections on 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 5 of the WPI Judicial Policy.

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

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 (which you should view for homework on Aug 28) 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.

Week Supplementary Reading Video Viewing Homework Assignments Extras

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

Class 3 objectives
Class 4 objectives
Class 5 objectives


Creating helpers (pen code)
A brief intro to event-driven programming (read before you try Lab 2)

Sept 8 - 12 5 Adding structure(sections 5.1 - 5.4)
9 Lists
9/8: no video assignment tonight (quiz tomorrow on itemizations)
************************************************************************
9/9: 04a Self-Reference - 1- Introduction to Arbitrary Sized Data (1:22)
9/9: 04a Self-Reference - 2 - List Mechanisms (8:40)
9/9: 04a Self-Reference - 3 - List Data Definition (11:32)
9/9: 04a Self-Reference - 4 - Function Operating on List (7:36)
************************************************************************
9/11: 04a Self-Reference - 5 - Revising the Recipes for Lists (12:14)
************************************************************************
9/12: 04a Self-Reference - 6 - Designing with Lists (13:04)
9/12: 04a Self-Reference - 7 - Positions in List Templates (7:15)
Lab 2,Wed 9/11
Homework 3 (170 points)(due: Thursday, Sept 18)

Class 6 objectives
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)

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


Solutions and additional problems from Class 12

Sept 22 - 26 HTDP Chapter 14.1
HTDP Chapter 15.1
HTDP Chapter 15.2

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

Homework 5 (due: Thursday, Oct 2)
Class 14 objectives
Class 15 objectives
Class 16 objectives
Class 17 objectives

Monday's problems on family trees
Tuesday's problems on family trees


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

Sept 29 - Oct 3 HTDP Chapter 19
HTDP Chapter 20
9/29: No video assignment tonight...prepare for the exam
************************************************************************
Exam 2, Tuesday, Sept 30
9/30: 07b Local - 1 - Introduction (0:43)
9/30: 07b Local - 2 - Forming and Intuition (4:56)
9/30: 08 Abstraction - 1 - Introduction (1:10)
9/30: 08 Abstraction - 2 - From Examples 1 (11:16)
************************************************************************
10/2: 08 Abstraction - 3 - From Examples 2 (10:39)
10/2: 08 Abstraction - 4 - From Examples 3 (17:26)
************************************************************************
10/3: 08 Abstraction - 5 - Using Built-In Abstract Functions (19:15)
10/3: 08 Abstraction - 6 - Closures (12:20)
Lab 5, Wed 10/2

Homework 6 (due: Thursday, Oct 9)
Class 18 objectives
Class 19 - Exam 2
Class 20 objectives
Class 21 objectives
Oct 6 - 10 HTDP Chapter 31
HTDP Chapter 34
HTDP Chapter 35
HTDP Chapter 36
HTDP Chapter 37.1
10/6: 10 Accumulators - 1 - Context Preserving Accumulators Part 1 (6:30)
10/6: 10 Accumulators - 2 - Context Preserving Accumulators Part 2 (9:58)
10/6: 10 Accumulators - 3 - Practice Problem - skipn Part 1 (1:44)
10/6: 10 Accumulators - 4 - Practice Problem - skipn Part 2 (9:33)
************************************************************************
10/7: 10 Accumulators - 5 - Tail Recursion Part 1 (8:32)
10/7: 10 Accumulators - 6 - Tail Recursion Part 2 (9:48)
************************************************************************
10/9: Extra Videos - 3 - Mutable Variables (12:00)
Homework 7 (due: Tuesday, Oct 16)
Lab 6, Wed 10/9

Class 22 objectives
Class 23 objectives
Class 24 objectives
Class 25 objectives
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
Exam 3, Thursday, Oct 16
Lab 7, Wed 10/16 Class 26 objectives
Class 27 objectives
Class 28 - Exam 3

Design Recipes and Other Handouts

Frequently Asked Questions




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


[WPI] [CS]