Comp 110 Syllabus

COMP 110: Intro to Programming

General Course Info

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

001: TR, Carroll 111, 9:30 AM – 10:45 AM 

Instructor Info

Name: Kris Jordan
SnapChat: cpuhat
nsta: @TheRealKrisJordan
Finsta: @ada_dog_omg

Enrolling in COMP110

To enroll in COMP110 you must be enrolled on ConnectCarolina on the first meeting of class. If you are not enrolled and trying to add late you must attend the first lecture and fill out a form distributed during the class time. We cannot accept late adds who do not show up on the first day of classes.

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 JavaScript programming language and a special dialect of it called TypeScript which is growing in popularity in industry and pedagogically strong.

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:

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 programming languages JavaScript/TypeScript, to students with no prior programming experience. This course aims to teach students general programming language concepts and semantics, problem definition, problem solving, logical and recursive 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 watch any assigned videos and read assigned readings before lecture begins. You should programming assignments and worksheets on time.

Videos, Reading, and Programming assignments take about 6-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;
  • PLEASE DO NOT using your laptop to surf the web, watch Netflix, iMessage, use Facebook, etc.

If you are being disruptive in class the instructor reserves the right to ask you to leave.

Key Dates

Quiz schedule:

  • Quiz 0 - Tuesday, January 27th
  • Quiz 1 - Thursday, February 20th
  • Quiz 2 - Thursday, March 19th
  • Quiz 3 - Tuesday, April 14th

Final exam schedule:

  • Section 1 (TTh 9:30am) - Friday, May 1st at 8:00am

The course final is given in compliance with UNC final exam regulations and according to the UNC Final Exam calendar. If you have a non-standard final exam that conflicts with COMP110, per UNC policy the non-standard final exam must offer you an alternate time. 

Grading Criteria

To do well in this course you must come to your own individual mastery of introductory programming concepts. Final grades are calculated with the following weights for each course component:

  • Mastery - 80%
  • Preparation, Participation, and Practice - 20%
    • Preparation Videos' "Warm-up Questions"- 3%
    • Participation of PollEverywhere - 2%
    • Practice Hand-written Worksheets - 5%
    • Practice Programming Problem Sets - 10%

80% Mastery as Demonstrated by Cumulative Assessment

The most fair way to assess mastery of material is through seated quizzes and exams which account for 80% of your final grade.

  • The cumulative final exam is worth 80% of your final grade at the start of the semester.
  • Each quiz you take accounts for 16% of your final grade and reduces the weight of your final examination by 16%. There are no drops.
  • For example: By taking all 4 quizzes, your final exam's weight is 16% of your final grade. If you must be absent from a quiz (see policy below) then the three quizzes you take will account for 48% of your final grade and your final exam will account for 32%.
  • If, and only if, you take all four quizzes and your final examination score exceeds your lowest quiz score, then we will retroactively grant you an absence for that quiz and your final exam score will be worth 32%.

Quiz Absence Policy

You may be absent for up to one quiz. To request absence from a quiz, you must submit this form before your absence Only in the case of medical or otherwise verifiable emergencies can we accept late absence requests.

If you are a part of an organization whose authorized university absences will conflict with two or more of the key dates of quizzes (see above), per course policy you cannot pass this course and should plan on taking COMP110 in a future semester when these unfortunate but important conflicts will not arise.

To ensure these assessments are fair for all 400 students enrolled in COMP110 this semester, and to return graded quizzes as quickly as possible, typically in under 48 hours, we do not offer quiz makeups for credit for any reason. By being absent from a quiz, the quiz's 16% credit will simply not be drawn down from your final exam score's weight. As such, this is not a penalty, it simply means your mastery of this quiz' material will be assessed on the cumulative final exam.

We can offer everyone absent from a quiz the same learning experience of sitting for the quiz at some later date and receiving feedback on it, but a quiz taken in this fashion is not for credit and will not count toward nor against your mastery grade to ensure fairness to all students.

Course Passage Policy

In order to pass COMP110, you must:

  • Have a passing grade given the rubric of weights above and grading scale below,
  • Be present for and take at least 3 quizzes, AND
  • Score greater than 40% on the final exam.

Honor Code and Collaboration Policy

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

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 by filling in your name and ONYEN in the required header. Failing to do so may result in no credit assigned for the problem set.

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 Worksheets and Problem Set Programs

No collaboration with peers inside the course, or anyone outside the course, with the exception of our course UTAs while they are working as a UTA, is allowed on problem sets and worksheets. Your ability to complete each 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 machine learning 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 assignments on your own and come to office hours when you have questions. Please note that if you know someone who is a UTA, you are only permitted to receive help from them while they are working in their official capacity. Receiving help from a UTA outside of their working hours is considered unfair advantage for academic gain and is an honor code violation.

Permitted Resources on Problem Sets and Worksheets

  • Materials on the website and any linked resources.
  • Instruction received from UTAs.
  • Official TypeScript documentation
  • Online documentation for specific errors you encounter.

The following are not permitted resources on problem sets and worksheets:

  • Talking about specific problems 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 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 or response on a worksheet. Should you be unable to do so, your grade will be a zero for the assignment in question and you may be taken to honor court depending on the severity of the infraction.

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.

Late policy for Problem Sets:

  • 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: 1 - ((hours late / 168) * 50%) potential credit
  • More than 1 week after deadline: 50% penalty
  • More than 2 weeks after deadline: No credit for the assignment.

Late policy for Worksheets:

  • Because worksheets are graded by teaching assistants we offer a 12-hour grace period for late submission for 5% penalty and cannot accept late submissions after this period.

Late Point Forgiveness Insurance Policy

As "insurance" against sickness, computer crashes, conflicts with other coursework, etc., every student in the course is forgiven 50 points worth of late penalties on problem sets at the end of the semester. Note that "late penalty" means points deducted for credit that you earned and these points will only be added back if the assignment was 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...

Class Participation

Class attendance and participation is required to do well in this course. Class participation is worth 5% of your final grade.

2 of the 5% are based on attendance and responding to polls in class.

3 of the 5% are based on correctly responding to "warm-up" questions in class that require you to watch and/or read assigned background materials before class. These will be announced.

Up to 2% of the maximum 5% is automatically added to your participation score at the end of the semester. If you miss fewer than 1 in 4 lectures then you can still earn full credit on participation. This policy also covers excused absences.

Course Schedule

See the course calendar.


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

Check regularly for updates and announcements!