Comp 110 – Introduction to Programming

University of North Carolina at Chapel Hill

Course introduction


Instructor

Course overview

This course is an introduction to computer programming for students with little or no previous programming experience. There are two primary goals: i) learn fundamental computer programming skills, and ii) develop your skill at problem solving and logical thinking. Basic programming concepts include: variables, loops, conditionals, arrays, functions, and classes. All code is written in the Java programming language. Basic problem solving approaches include: abstraction, division into sequential pieces, and division into layers. This material will be learned through a combination of reading assignments, analysis assignments and program writing. There will be 8 - 10 programming assignments, and there will be frequent, unannounced quizzes. The Friday meetings of this course will usually, but not always, be labs. Bring you laptop on Fridays unless otherwise instructed.

Is Comp 110 the course for you?

There are no prerequisite courses. If you have already taken a computer programming course in high school, you probably should be enrolled in Comp 401. Comp 116 also teaches introductory computer programming but with emphasis on scientific computing. Two versions are taught. One uses the Python programming language and the other MATLAB. For those in the sciences, Comp 116 is more practical and applied than Comp 110. Both 116 and 110 satisfy the prerequisite to continue with further programming courses (e.g. Comp 401).

Required text

Java, An Introduction to Problem Solving and Programming, 6th edition by Savitch and Carrano, Pearson/Prentice Hall. The 5th edition is very similar to the 6th edition and is a lower cost alternative. We will cover only the first seven chapters of the textbook. A custom printing of this portion of the textbook is available through UNC Student Stores.

Grading

30%  Programs & homework
10%  First Test
15%  Second Test
30%  Final exam
15%  Lab exercises, quizzes, and in class assignments

The first test is on Friday, March 1. The second test is on Friday, April 5. The final exam is on Wednesday, May 1 at 8 AM (section 004) or Friday, May 3 at 12:00 PM (section 001). Everyone will be expected to take the exams at their assigned times and dates. During the semester there will be a number of in class exercises that will not be announced in advance. They are not quizzes over your knowledge of the reading but are exercises challenging you to apply the course material to a practical problem. Much of the material in this course is learned this way. The in class exercises are a mini-assignment to help reinforce your understanding of the material before you have to tackle a full blown programming assignment.

Making up homework and examinations

Serious illness, a death in the family, and activities such as intramural meets and student exchange programs can justify waiving or relaxing the usual rules for class work and examinations. (But the problems of student life, including the consequences of procrastination and commitments to other courses, cannot.) In circumstances that merit special treatment, documentation is usually available to the student, and a request for special consideration should be accompanied by appropriate written material supporting the request. In cases where events that will interfere with course work are foreseen, a student should discuss the matter with me well before the work is due. A grade of Incomplete will be given only in dire emergencies. Documentation (such as a physician's note) will generally be required. Falling behind in your work is not an emergency.

Courtesy

We will try to be courteous to you; we ask that you be courteous to us. Please do not read the newspaper or use your computer during class. If you must be late once or twice, take an aisle seat quietly; likewise if you must leave early. If this becomes habitual, you should drop the course.

Warnings

Attendance at both lecture and labs is mandatory. You often will have team assignments to work on during class. If you have a scheduling conflict, you should take this course another semester. Please note the time and dates of the midterm and final exams and plan for them in advance.