WPI Worcester Polytechnic Institute

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


CS 1101 A Term 2016

Introduction to Program Design

Objectives | Staff&Contact Information | Where&When | Textbook/Software/Videos | Grading | Policies and Expectations | 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: Kennedy Tran

Student Assistants: Ebenezer Ampiah, Josh Desmond, Trang Ha, Jacob Henry, Brian Keeley-Debonis, Huyen Nguyen, Andrew Rottier, Harry Sadoyan, William Temple, Yang Xu, Ziyan Ding

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 10:00 11:00 12:00 1:00 2:00 3:00 4:00 5:00 6:00 7:00 8:00 9:00
Sunday               Will        
Monday Jacob, Trang Huyen Kennedy   Glynis Brian   Harry   Josh (7:30... ...8:30)  
Tuesday Ziyan Yang Andrew Andrew Huyen Glynis Will   Ebenezer      
Wednesday   Brian Kennedy Ziyan   Josh            
Thursday   Jacob Trang       Ebenezer          
Friday     Glynis   Harry Yang            
Glynis Hamel is available for additional office hours on Thursday 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 Bailey Sheridan. Refer to the MASH tutoring schedule for A-term for times/locations. The Academic Resource Center also provides one-on-one tutors for CS 1101. Here are instructions for scheduling a tutoring appointment.


Class Discussion Forum

A discussion board forum for CS 1101 has been set up on InstructAssist. You are responsible for all announcements and information posted on the InstructAssist site. A separate page explains how to configure notifications from InstructAssist.

As a general rule, use the InstructAssist forum to ask questions rather than sending email to individual staff. The forum lets you mark each message as public (visible to other students in the class) or private (visible only to the course staff), so it is no less private than staff-wide email. Unlike email, however, the forum lets us track messages and our progress towards handling them.

If you send a message to an individual staff member that should have gone to the forum, we will ask you to use the forum instead. We aren't being rude. We are simply trying to handle the large volume of email that we get in a large course. The less time we spend managing email, the more time we can spend actually helping you!

The forum has different categories for your messages. When you create a message, tag it with the most appropriate category (which will direct it to the right person on our end).

If you have a question that really should go only to the instructor, you may email Glynis at ghamel@cs.wpi.edu. We expect that most questions will be sent via the InstructAssist forum.


Lecture and Lab Times

Lectures MTRF in FLPH-UPR from 9:00 - 9:50am (section A01), or 10:00-10:50am (section A02); MTRF in AK 233 from 1:00 - 1:50pm (section A03). You must attend the lecture for which you are registered.

Labs meet on Tuesdays/Wednesdays according to the following schedule:

Section Time Location Lab Assistants
AX01 Wed 8 - 8:50am SL 123 Hao Loi, Huyen Nguyen
AX02 Wed 9 - 9:50am SL 123 Hao Loi, Ziyan Ding
AX03 Wed 10 - 10:50am SL 123 Hao Loi, Ebenezer Ampiah
AX04 Wed 11 - 11:50am SL 123 Hao Loi, Trang Ha
AX05 Wed 10 -10:50am FL A21 Andrew Rottier, Jacob Henry
AX06 Wed 1 - 1:50pm SL 123 Hao Loi, Will Temple
AX07 Wed 2 - 2:50pm SL 123 Hao Loi, Huyen Nguyen
AX08 Wed 3 - 3:50pm SL 123 Hao Loi, Trang Ha
AX09 Wed 2 - 2:50pm FL A21 Kennedy Tran, Yang Xu
AX10 Wed 12 - 12:50pm SL 123 Brian Keeley-Debonis, Ziyan Ding
AX11 Wed 4 - 4:50pm SL 123 Hao Loi, Jacob Henry
AX12 Tues 3 - 3:50pm SL 123 Harry Sadoyan, Josh Desmond


Textbook, Software, Videos, and Clickers

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 classroom activities. 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.6), 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).

InstructAssist will be used for all course communications and for homework/lab submissions.

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

Clickers: Clickers will be used for daily quizzes. Each student will be provided with a clicker to use throughout the term. Instructions on how to register your clicker will be provided the first week of class. You'll be using Canvas to register your clicker; this is the only time you'll need to use Canvas for this course. All other course information and communication will be done through InstructAssist.


Grading

Exams (45%)

Three exams will be given, each worth 15% of the final grade. Exams are scheduled for September 12, September 27, and October 13. 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. 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 17).

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. The first homework assignment (Homework 0) will be done individually; the remaining homework assignments may be done in pairs. Students are strongly encouraged to work with a homework partner. Most homework assignments will be due on Tuesday evenings at 5pm. No extra credit or makeup assignments will be given. Read Homework Expectations for details on how to prepare your homeworks.

Labs (5%)

Labs are scheduled on Tuesday/Wednesday. 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

The first homework assignment (Homework 0) is to be done individually.

For the remaining homework assignments, you are strongly encouraged to work 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. If you work on an assignment as an individual, you alone are responsible for writing up your 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/individual 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 InstructAssist. 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.

Classroom Expectations

During lectures, students should not use materials or electronic devices that would hinder their ability to follow the classroom discussion or to participate in classroom exercises, or that would distract other students. Laptops may be used only for note-taking purposes; transmission capabilities on these devices must be disabled and only an appropriate note-taking application may be used in class. Mobile devices, such as phones or PDAs, are not to be used in class. Students are expected to work on in-class exercises when they are assigned. If you finish an exercise while others are still working, you're encouraged to find a classmate with whom you can compare solutions, or to offer your help to a classmate or group who are still working on the problem.

Students are expected to treat each other and the course staff with respect. By the same token, you have the right to expect to be treated respectfully by the course staff. If you have any concerns with the course staff, please bring them to the instructor. If your concern is with the instructor, please bring it to the Computer Science department head, Prof. Wills.


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 25 - 26 1 Arithmetic
2 Functions and Programs
("BSL" = Beginning Student Language)
View before Aug 26:
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 29:
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 0 (90 points) (due: Wednesday, Aug 31)
Class 1 objectives
Class 2 objectives
Using Images
Aug 29 - Sept 2 3 How to Design Programs (sections 3.1 - 3.5) ("HtDF" = How to Design Functions)
View before Aug 30:
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 Aug 31 Sept 1:
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 1 Sept 2:
03b Compound Data - 1 - define-struct (5:27)
03b Compound Data - 2 - Compound Data Definitions (6:18) ************************************************************************
View before Sept 6:
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)
Lab 1, Tues/Wed, Aug 30/31
Homework 1 (115 points) (due: Wednesday, Sept 7)

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


Creating helpers (printed-pen code)


Study Guide on Functions


Study Guide on Structures


Boa/Dillo/Animal lecture examples (Itemizations)

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

View before Sept 8:
04a Self-Reference - 5 - Revising the Recipes for Lists (12:14)
************************************************************************
View before Sept 9:
04a Self-Reference - 6 - Designing with Lists (13:04)
04a Self-Reference - 7 - Positions in List Templates (7:15)


Lab 2, Tues/Wed, Sept 6/7
Homework 2 (105 points)(due: Tuesday, Sept 13)

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


Exam preparation Guidelines


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


Sample Exam 1 [pdf]


tiger data definition, templates (notes from Tuesday's class)


When to Think While Programming

Sept 12 - 16 10 Designing With Self-Referential Data Definitions
11 More on Lists

View before Sept 13:
04b Reference - 1 - The Reference Rule Part 1 (10:41)
************************************************************************
View before Sept 15:
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 16:
05b More Helpers - 4 - Operating on a List (10:55)
05b More Helpers - 5 - Domain Knowledge Shift (14:48)
************************************************************************
View before Sept 19:
05b More Helpers - 6 - Wrap Up (7:19)
06a BSTs - 1- List Abbreviations (5:45)
Lab 3, Tues/Wed, Sept 13/14
Homework 3 (185 points)(due: Tuesday, Sept 20)
Exam 1, Monday, Sept 12
Class 11 objectives
Class 12 objectives
Class 13 objectives


Solutions and additional problems from Class 12 (ListOfCourse problems)

Sept 19 - 23 HTDP Chapter 14.1
HTDP Chapter 15.1
HTDP Chapter 15.2

View before Sept 20:
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 22:
06b Mutual-Ref - 1 -Mutually Referential Data (9:13)
06b Mutual-Ref - 2 - Templating with Mutual Reference (4:50)
************************************************************************
View before Sept 23:
06b Mutual-Ref - 3 - Functions on Mutually Referential Data - Part 1 (12:42)
************************************************************************
View before Sept 26:
06b Mutual-Ref - 4 - Functions on Mutually Referential Data - Part 2 (12:01)
06b Mutual-Ref - 5 - Backtracking Search (19:05)
Lab 4, Tues/Wed, Sept 20/21

Homework 4 (90 points) (due: Tuesday, Sept 27)
Class 14 objectives
Class 15 objectives
Class 16 objectives
Class 17 objectives


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

Sept 26 - 30 HTDP Chapter 19
HTDP Chapter 20

View before Sept 29:
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 Sept 30:
08 Abstraction - 3 - From Examples 2 (10:39)
08 Abstraction - 4 - From Examples 3 (17:26)
************************************************************************
View before Oct 3:
08 Abstraction - 5 - Using Built-In Abstract Functions (19:15)
08 Abstraction - 6 - Closures (12:20)
Lab 5, Tues/Wed, Sept 27/28

Homework 5 (135 points) (due: Tuesday, Oct 4)
Class 18 objectives
Exam 2, Tuesday, Sept 27
Class 20 objectives
Class 21 objectives

Oct 3 - 7 HTDP Chapter 31
HTDP Chapter 34
HTDP Chapter 35
HTDP Chapter 36
HTDP Chapter 37.1
View before Oct 4:
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 6:
10 Accumulators - 5 - Tail Recursion Part 1 (8:32)
10 Accumulators - 6 - Tail Recursion Part 2 (9:48)
************************************************************************
View before Oct 7:
Extra Videos - 3 - Mutable Variables (12:00)
Homework 6 (120 points) (due: Tuesday, Oct 11)
Lab 6, Tues/Wed, Oct 4/5

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


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

Oct 10 - 13 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
No lab this week Class 26 objectives
Class 27 objectives
Exam 3, Thursday, Oct 13

Design Recipes and Other Handouts

Frequently Asked Questions




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


[WPI] [CS]