# CS103 Spring 2017: Introduction to Programming

## Coursework

### Labs

When you complete a lab, you must demonstrate it in person. This should either be done in your registered lab section, or at the office hours of a TA or CP earlier in the week. You cannot submit a lab late except if an instructor has given you special permission.

Topic Due (in Lab)
Lab 1 Linux and your Virtual Machine (VM) Instructions Fri 1/13 Submit Answers
Lab 1 is submitted entirely online, and demoing in person is optional.
But Labs 2 and later require an in-person demonstration to get credit.
Lab 2 Variables and Expressions Instructions Fri 1/20 Upload
In this lab you will also demo to a TA/CP that you can login to bits, check your grades and that you are registered for Piazza
Lab 3 Control Structures and gdb Instructions Fri 1/27 Upload
Lab 4 Arrays and Functions Instructions Fri 2/3 Upload
Lab 5 2D Arrays and Image Processing Instructions Fri 2/10 Upload
Lab 6 C-Strings and Pointers Instructions Fri 2/17 Upload
Lab cancelled during week of written midterm
Lab 7 Files, Dynamic Memory and valgrind Instructions Fri 3/3 Upload
Lab 8 Recursion Instructions Fri 3/10 Upload
Lab 9 Object-Oriented Programming Instructions Fri 3/24 Upload
No lab during the week of the programming midterm
Lab 10 Vectors Instructions Fri 4/7 Upload

### Homework

Homeworks are due at 11:59:59 PM on the indicated date, but to get the full educational benefit, you should do them before lecture while reading the textbook. Any problem solved after the deadline gets half-credit.

Topic Due (11:59 PM)
HW 1 Variables and Operators Solve Problems Tue 1/17
HW 2 Control Structures Solve Problems Thurs 1/26
HW 3 Arrays Solve Problems Thurs 2/2
HW 4 Functions Solve Problems Thurs 2/9
HW 5 Pointers Solve Problems Thurs 2/16
HW 6 Recursion Solve Problems Thurs 3/9
HW 7 Object-Oriented Programming Solve Problems Thurs 3/23

### Programming Assignments

Programming assignments are due at 11:59:59 PM on the indicated date. There is a penalty per day late and you have 2 grace days during the semester, but work is not accepted more than 48 hours late. See the syllabus for full details. Before you submit ensure there are no compiler warnings. If there are please fix them. If you get warnings from our submission auto-checker, please refer to our PA Warning Solution Page. You must follow the style guide outlined here.

Topic Due (11:59 PM)
PA1 Hailstone Conjecture Instructions Tues 1/31 Submit
PA 2 Spare a Square Instructions Tues 2/14 Submit
PA 3 It's all a Blur Instructions Sun 3/19 Submit
PA 4 Connected Component Labeling using BFS  Instructions and files Tues 4/11  Submit
PA 5  The Social Network  Instructions Tues 5/2  Submit
PA 6  Six Degrees of Kevin Bacon(PA6 is extra credit for Spring 17, worth 6 points, 2% of total grade)  Instructions
BFS Notes
Tues 5/2  Submit

### Exams

Information Date/Time Solutions Practice
Written midterm 2/23 solution S15 exam and solutions
Programming midterm 3/30 S15 exam and solutions
Final exam 5/9 S15 exam and solutions