Comp 110 Syllabus

COMP 110: Intro to Programming

Bulletin Description

Introduction to computer use. Approaches to problem solving; algorithms and their design; fundamental programming skills. Students can receive credit for only one of COMP 110, 116, or 121.

General Course Info

Term: Spring 2017
Department: COMP
Course Number: 110
Section Times: 

001: TR, Hanes Art Center 121, 9:30 AM - 10:45 AM
002: TR, Hanes Art Center 121, 11:00 AM – 12:15 PM
003: TR, Genome Sciences G100, 2:00 PM – 3:15 PM

Instructor Info

Name: Kris Jordan
Office: SN 254
Email: comp110-heads@googlegroups.com
SnapChat: cpuhat
Twitter
: http://twitter.com/KrisJordan
Office Hours: http://comp110.com/support

Teaching Assistants (see course web page)

Within the first weeks of the course beginning, you will be assigned a dedicated TA support staff made up of two members of the COMP110 team. In addition to your personal TA team, our incredible staff will hold copious amounts of open office hours during the week. These hours will be posted on the course website.

Textbooks and Resources

The course web page is the primary resource for this course. There is no textbook for COMP110. We will distribute occasional readings, reference material, and tutorials via the website and announcements.

Course Description, Target Audience and Prerequisites

This course is an introduction to computer programming for students with no previous programming experience. There are two primary goals: i) learn fundamental computer programming skills, and ii) improve your problem solving and logical thinking skills. The course is designed to use the Java programming language.

You should be comfortable with advanced algebra and having completed a first course in Calculus is recommended. Although there are no formal prerequisites, we have found that students who have not had Calculus must put more work into this course to stay on track than those who have. If you do not yet have credit for MATH110, or you did not perform as well as you'd like in MATH110 or MATH130, starting your programming career with COMP101 is recommended.

If you have already taken a college-level (or AP) Computer Science course, you may want to skip this class and take COMP 401. Please refer to the following link for more information: comp110.com/topics/getting-started/am-i-in-the-right-course

Comp 116 is another introductory computer programming course, but with emphasis on scientific computing. Two versions are offered, one using the Python programming language and the other MATLAB. Both 116 and 110 satisfy the prerequisite to continue with further programming courses (e.g. Comp 401).

Goals and Key Learning Objectives

This course is intended to teach basic computer programming skills, using the popular language Java, to students with no prior programming experience. This course aims to teach students general programming language concepts and semantics, problem definition, problem solving, and logical thinking, through algorithm development and writing programs.

Course Requirements and Policies

You should attend the lectures on both meetings of the week and check the course web pages for announcements and updates. You should complete assigned readings, programming assignments, and worksheets on time.

Programming assignments take about 4-10 hours per week; start early and ask questions. Bring your laptop to every lecture session. Please respect your fellow students by maintaining proper etiquette in class; this includes:

  • Not arriving late habitually or leaving in the midst of class;
  • Not talking, sleeping, reading other material etc. in class;
  • Keeping cellphones, etc. off during class (no yakin, tweetin, snappin-- unless they're positive anecdotes about the course, of course);
  • PLEASE DO NOT using your laptop to surf the web, watch Netflix, iMessage, use Facebook, etc.

Key Dates

Midterm exam schedule (tentative):

  • Midterm 0 - Thursday, February 9th
  • Midterm 1 - Thursday, March 9th
  • Midterm 2 - Thursday, April 13th

Final exam schedule:

  • Section 1 (9:30am) - Friday, May 5th, 8:00am
  • Section 2 (11:00am) - Monday, May1st, at 12:00pm
  • Section 3 (2:00pm) - Monday, May 8th, at 12:00pm

The course final is given in compliance with UNC final exam regulations and according to the UNC Final Exam calendar.

Grading Criteria

You will be evaluated in this class as follows:

  • Problem Sets - 30%
  • First Midterm - 15%
  • Second Midterm - 15%
  • Third Midterm - 15%
  • Cumulative Final - 10%
  • Worksheets and Quizzes - 10%
  • Participation via PollEverywhere - 5%
  • Extra Credit - Up to 2%

If you perform better on a subsequent exam than the very previous exam, the subsequent exam's score will replace the very previous exam's score. For example, the second midterm can replace the first, the third can replace the second, the final can replace the third.

Honor Code and Collaboration Policy

Make sure that you are familiar with The UNC Honor Code. You will be required to sign an Honor Code pledge to hand in with every exam as well as "sign" the code you submit for grading.

In order to do well in this course, you must come to your own understanding of the material independently. As such, collaboration is prohibited outside of the following policies.

Collaboration Policy on General Course Content

You absolutely may, and are encouraged to, discuss general course concepts (i.e. not assignment-specific) material with anyone, including other current students and tutors. This includes going over lecture slides, documentation, code examples covered in lecture, study guides, etc. The examples you use to discuss general course materials must be from lecture or your own creativity, you cannot use examples directly drawn from assignments.

Collaboration on Written Worksheets

You are allowed to discuss written assignments with your classmates on whiteboards. You can talk about approaches to problems to develop solutions. However, no notes may be taken away from these discussions, all whiteboards must be promptly erased, and solutions should be written up completely individually.

Collaboration on Problem Set Programs

No collaboration with peers inside the course, or anyone outside the course, with the exception of our course UTAs, is allowed on problem sets. Your ability to complete each problem set individually is critical for your ability to do well in this course. Illegal collaboration is easily detected in COMP110 because we use Stanford's MOSS program (Measures of Software Similarity), as well as other automated techniques. Every year, a number of violations are caught and prosecuted in the Honor Court, so far always resulting in guilty convictions and sanctions. Avoiding any fears here is simple: work on problem sets on your own and come to office hours when you're stuck.

Permitted Resources on Problem Sets

  • Materials on the comp110.com website and any linked resources.
  • Instruction received from UTAs.
  • Official Java documentation (hosted on oracle.com)
  • Online documentation for specific errors you encounter.
  • Talking about general concepts or strategies in problem sets but not specific code. You can not read your code line-by-line either as concrete or pseudo-code.

The following are not permitted resources on problem sets:

  • Talking about problem set specific code with peers in the course or anyone outside the course with the exception of UTAs.
  • Looking at someone else's screen while working on a problem set or letting someone else look at yours.
  • Copying code found on any website or community such as StackOverflow, Github, or CourseHero.
  • Sharing or reusing code with any peer currently in the course or anyone who has previously taken the course.

When in doubt, ask a Head UTA or Kris.

Tutors and Informal Help from COMP Friends

Tutors and COMP friends are not allowed to help you with problem sets or written worksheets. They may help you with general course material questions and for additional help in preparing for exams, however we encourage you to rely on UTA assistance foremost.

Code Review Test

Kris reserves the right to, at any time, ask you to submit to an "code review" test with him or a head TA. We may ask you to meet to explain any line of code or decision made in your program that we deem suspicious or confusing. Thus, you should be able to comfortably explain why you (and you alone) wrote any single line of code in a problem set.

Early and Late Submission Policy

Starting and finishing programming assignments as early as possible is the key to success in COMP110. As such, we want to reward and encourage you for submitting your work early. Falling behind in COMP110 is perilous because the concepts build on one another as the semester progresses.

  • More than 48 hours before deadline: 5% extra credit
  • 24 to 48 hours before deadline: (hours before - 24) / 24 * 5% extra credit
  • 0 to 24 hours before deadline: no extra credit nor penalty
  • 0 to 1 week after deadline: (hours late - 168) / 168 * 50% penalty
  • More than 1 week after deadline: 50% penalty

Late Point Forgiveness Insurance Policy

As "insurance" against sickness, computer crashes, conflicts with other coursework, etc., every student in the course is forgiven 100 points worth of late penalties at the end of the semester. Note that "late penalty" means points deducted for credit that would have otherwise been earned and these points will not be added unless the assignment has been completed in full. Like insurance, there is no reward for not needing to use these points and you should try to avoid using them outside of unpredictable, emergency situations like a computer crashing or being hospitalized.

Grading Scale Breakdown

A: 93-100
A-: 90-92
B+: 87-89
B: 83-86
B-: 80-82
C+: 77-79
C: 73-76
C-: 70-72
D**: 60-69
F: 59 or below

In cases of fractional points, grades will be rounded up if greater than 0.499999999...

** If you do not score higher than a 30% on the final exam, the highest letter grade you can earn in COMP110 is a D.

Class Participation

Class attendance and participation is required to do well in this course. The instructor reserves the right to use different means to classify as class participation – you will be clearly informed during the semester, but expect to encounter PollEverywhere quite frequently.

Course Schedule

See the course calendar.

Disclaimer

The instructor reserves to right to make changes to the syllabus, including assignment due dates and exam dates. These changes will be announced as early as possible.

Check comp110.com regularly for updates and announcements!