# CSCI 103 Summer 2018: Introduction to Programming

## Coursework

### Create a Github account

Before you start your first CS 103 assignment, you must have an account on Github.com. If you have not created a Github account yet, follow the instructions in this section. If you already have a Github account and you wish to use it for this course, you can skip to the next section.

Github is a development ecosystem based around git. We will be using Github to authenticate your identity and you will also use it in CS 104 to store your code.

https://github.com/signup/free

• Be sure to not miss the step labelled: VERY IMPORTANT AND EASY TO MISS STEP.
• Once you think you have followed all the steps to sign-up and setup your Github account, click this link to try signing-in.

### 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
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 Thur 5/17
Lab 3 Control Structures and gdb Instructions Thur 5/24
Lab 4 Arrays and Functions Instructions Thur 5/24
Lab 5 2D Arrays and Image Processing Instructions Thur 5/24
Lab 6 C-Strings and Pointers Instructions Thur 6/7
Lab cancelled during week of written midterm
Lab 7 Files, Dynamic Memory and valgrind Instructions Thur 6/7
Lab 8 Recursion Instructions Thur 6/7
Lab 9 Object-Oriented Programming Instructions Thur 6/21
No lab during the week of the programming midterm
Lab 10 Vectors Instructions Thur 6/21
Lab 11 Linked Lists Instructions Thur 6/21

### 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 6/26
HW 2 Control Structures Solve Problems Tue 6/26
HW 3 Arrays Solve Problems Tue 6/26
HW 4 Functions Solve Problems Tue 6/26
HW 5 Pointers Solve Problems Tue 6/26
HW 6 Recursion Solve Problems Tue 6/26
HW 7 Object-Oriented Programming Solve Problems Tue 6/26

### 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 Zombies Instructions Thur 5/24
PA 2 Twenty-One Instructions Thur 5/31
PA 3 Image Filtering Instructions Thur 6/7
PA 4 Connected Components  Instructions
Files
Thur 6/14
PA 5 Page Rank  Instructions
Files
Thur 6/21
PA 6  PA 6 Dropped

### Exams

Information Date/Time Solutions Practice
Written midterm 5/31 S15 exam and solutions
Programming midterm 6/14 S15 exam and solutions
Final exam 6/26 S15 exam and solutions