# CSCI 103 Spring 2020: Introduction to Programming

## Coursework

### Homework

There is no graded homework component to this course. However, the textbook we recommend (see the syllabus page) and many others have review exercises at the end of each chapter. This course has a strong self-learning component and one of the things we expect you to do is track your progress (for your own edification) by working through self directed exercises as necessary.

### 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, Vocareum, and "Hello World"
Take this 1-minute survey
Open Fri 1/17
Lab 1 is submitted entirely online.
But Labs 2 and later require an in-person demonstration to get credit.
Lab 2 Variables and Expressions Open Fri 1/24
Lab 3 Control Structures and gdb Open Fri 1/31
Lab 4 Arrays and Functions Open Fri 2/7
Lab 5 2D Arrays and Image Processing Open Fri 2/14
Lab 6 C-Strings and Pointers Open Fri 2/21
Lab cancelled during week of written midterm
Lab 7 Files, Dynamic Memory and valgrind Open Fri 3/13
Lab 9 Object-Oriented Programming Open Fri 3/27
Lab 10 Vectors Open Fri 4/10
No lab during the week of the programming midterm
Lab 11 Linked Lists Open Fri 4/17
Lab 8 Recursion Open Fri 4/24

### 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 5 grace days during the semester, but work is not accepted more than 48 hours late (so you can use a max of 2 slip days/assignment). 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 Abundant Commas 2/3 Vocareum
PA 2 Twenty-one 2/17  Vocareum
PA 3 Filter 3/13  Vocareum
PA 4 TBD 4/6
PA 5 TBD 4/20
PA 6 TBD 5/1

### Exams

Information Date/Time
Written midterm Thursday 2/27 7:00pm
Programming midterm Thursday 4/2 7:00pm
Final exam Tuesday 5/12 4:30pm