Syllabus


General Course Info

Term: Summer Session I 2021

Department: COMP

Course Number: 110

Course Times: M/T/W/Th/F 9:45-11:15am (Sync)

Primary Instructor: Kaki Ryan

E-mail: kakiryan@cs.unc.edu

Diversity Statement

I value the perspectives of individuals from all backgrounds reflecting the diversity of our students. I broadly define diversity to include race, gender identity, national origin, ethnicity, religion, social class, age, sexual orientation, political background, and physical and learning ability. I strive to make this classroom an inclusive space for all students. Please let me know if there is anything I can do to improve, I appreciate suggestions.

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 course website and e-mail announcements.

Course Description, Target Audience, and Prerequisites

Introduces students to programming and data science from a computational perspective. With an emphasis on modern applications in society, students gain experience with problem decomposition, algorithms for data analysis, abstraction design, and ethics in computing. No prior programming experience expected. Foundational concepts include data types, sequences, boolean logic, control flow, functions/methods, classes/objects, input/output, data organization, transformations, and visualizations.

Co- or pre-requisite: MATH231 - Single-variable Calculus

Goals and Key Learning Objectives

This course is intended to teach basic computer programming skills to students ranging from those with no prior programming experience to those with some prior experience. This course aims to teach 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 all synchronous lectures and check the course web pages for announcements and updates. You should complete all programming assignments on time. Readings and Programming assignments take about 3-4 hours of work per day; start early and ask questions. For scheduled lectures, please show up a few minutes early as you would a traditional lecture.

Final Exam – June 23rd 8:00 - 11:00am

The course final is given in compliance with the 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:

  • 65% - Mastery
    • 30% - 3x Quizzes
    • 20% - Final Exam
    • 15% - 3-4x Projects
  • 35% - Preparation, Practice, Participation
    • 20% - Exercises
    • 15% - 3x Reading Responses

The most fair way to assess mastery of material while distance learning is through a combination of timed assessments and open-ended project work where you are able to demonstrate mastery individually.

The cumulative final exam is worth 50% of your final grade at the start of the term. Each quiz you take accounts for 10% of your final grade and reduces the weight of your final examination by 10%. There are no drops.

For example: By taking all 3 quizzes, your final exam’s weight is 20% of your final grade. If you must be absent from a quiz (see policy below) then the three quizzes you take will account for 20% of your final grade and your final exam will account for 30%.

If, and only if, you take all three 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 30%.

Exercises Grading Policy

Regular practice is crucial for the mastery of any skill, and programming is no different! That said, no one is expected to be perfect during this learning phase. Struggle and failure is expected! There will be 18 small, autograded programming assignments given throughout the term, with 3-4 due each week. You can submit each as many times as you like. Most lectures will have an associated exercise due the next night at midnight. The idea of these is to be a relatively light check for understanding, and a low stakes way for you all to practice what we’ve learned that day.

You are expected to complete 10-14 of these depending on what amount of credit you’re aiming to receive. The grading policy is as follows:

  • To get 100% exercise credit…
    • Score >= 90% on at least 14 exercises
  • To get 90% of exercise credit…
    • Score >= 90% on at least 10 exercises or
    • Score >= 80 % on at least 14 exercises
  • To get 80% of exercise credit…
    • Score >= 80% on at least 10 exercises or
    • Score >= 70 % on at least 14 exercises
  • To get 70% of exercise credit…
    • Score >= 70% on at least 10 exercises or
    • Score >= 60 % on at least 14 exercises
  • To get 60% of exercise credit…
    • Score >= 60% on at least 10 exercises or
    • Score >= 50 % on at least 14 exercises
  • To get 50% of exercise credit…
    • Score >= 50% on at least 10 exercises or
    • Score >= 40 % on at least 14 exercises
  • To get 40% of exercise credit…
    • Score >= 40% on at least 10 exercises or
    • Score >= 30 % on at least 14 exercises
  • To get 30% of exercise credit…
    • Score >= 30% on at least 10 exercises or
    • Score >= 20 % on at least 14 exercises
  • To get 20% of exercise credit…
    • Score >= 20% on at least 10 exercises or
    • Score >= 10 % on at least 14 exercises
  • To get 10% of exercise credit…
    • Score >= 10% on at least 10 exercises or
    • Score > 0 % on at least 14 exercises

Quiz Absence Policy

The quiz dates for Summer Session I 2021 are:

  • May 28 - Quiz 00
  • June 4 - Quiz 01
  • June 11 - Quiz 02

The quizzes will be held during the section you are registered for and are synchronous.

You may be absent for up to one quiz. To request an absence from a quiz, you should email me.

To ensure these assessments are fair for all students enrolled in COMP110 this term, and to return graded quizzes as quickly as possible, we do not offer quiz makeups for credit for any reason. By being absent from a quiz, the quiz’s 10% 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.

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 quiz and the final as well as “sign” the code you submit for grading by filling in your PID in the required __author__ variable. Failing to do so may result in no credit assigned for the assignment.

Collaboration Policy on Ungraded, General Course Concepts

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 any assignments handed in.

Collaboration on Graded Work

No collaboration with peers inside the course, or anyone outside the course, with the exception of our course TAs while they are working as a TA, is allowed on exercises, projects, environment diagrams, quizzes, and exams. 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 Gradescope has built-in support for 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 and assessments 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 TA outside of their working hours is considered an unfair advantage for academic gain and is an honor code violation.

Permitted Resources on Graded Work

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

The following are not permitted resources on coursework handed in for credit and are considered honor code violations:

  • Asking for help on an assignment or assessment on GroupMe, or any other mobile or web application, groupchat, or forum.
  • Talking about specific assignments with peers in the course or anyone outside the course with the exception of UTAs.
  • Looking at someone else’s screen, whether in person or shared remotely, while working on a an assignment. Letting someone else look at or share your screen.
  • Copying code found on any website or community such as StackOverflow, Github, Chegg, 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 me.

Tutors and Informal Help from COMP Friends

Tutors, tutoring organizations, and COMP friends are not allowed to help you with any assignments handed in for credit. They may help you with general course concept questions, however we encourage you to rely on TA assistance foremost.

Code Review Test

I reserve the right to, at any time, ask you to submit to a “code review” test with me 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 an assignment handed in for credit. 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.

Autograding and Resubmissions

Grades on programming assignments have two components: autograded points and manually graded points. You should take note of how many autograded vs. manually graded points there are ahead of submission. You are permitted, and encouraged, to resubmit your programming assignments as many times as you need in order to earn full credit on the autograded points of an assignment. There is no penalty for resubmission. The autograder will run and assign a score within a few minutes of submission. We will not go back and manually assign any credit for autograder points you failed to earn, so you can know and be aware of your autograded points upon submission. If you do not understand the error output of some autograded point deduction, please come see us in office hours!

Late policies

All assignments, outside of assessments such as quizzes and the final exam, will have an 11:59pm deadline on their due date.

I am happy to work with you and understand life happens. Please never be afraid to email me if you have any concerns or questions.

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.4599999999…

Course Schedule

See the course itinerary on the home page of the web site.

Feedback

If you have suggestions on how to improve the course or just want to leave some positive, encouraging feedback for the TAs or I, please give us feedback. If you make a suggestion we’re able to act on, while we still have time to, we’re more than happy to!

Title IX Resources

Any student who is impacted by discrimination, harassment, interpersonal (relationship) violence, sexual violence, sexual exploitation, or stalking is encouraged to seek resources on campus or in the community. Please contact the Director of Title IX Compliance (Adrienne Allison – ), Report and Response Coordinators in the Equal Opportunity and Compliance Office (), Counseling and Psychological Services (confidential), or the Gender Violence Services Coordinators (; confidential) to discuss your specific needs. Additional resources are available at safe.unc.edu.

Counseling and Psychological Services

CAPS is strongly committed to addressing the mental health needs of a diverse student body through timely access to consultation and connection to clinically appropriate services, whether for short or long-term needs. Go to their website: https://caps.unc.edu/ or visit their facilities on the third floor of the Campus Health Services building for a walk-in evaluation to learn more. (source: Student Safety and Wellness Proposal for EPC, Sep 2018)

Disclaimer

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 the course site regularly for updates and announcements!