UNC COMP 110: Introduction to Programming and Data Science
COMP 110 is UNC's Python-based introduction to programming, framed around data science ideas, and the first course toward the CS major and minor. It assumes no prior experience and covers control flow, functions, lists and dictionaries, object basics, and working with data.
Fennie is independent and not affiliated with UNC Chapel Hill. This is an unofficial study guide.
What makes it hard
The course enrolls enormous sections with wildly mixed experience levels, so the pace feels gentle to repeat programmers and relentless to true beginners. Difficulty jumps at functions and memory diagrams. The exams require reading and writing code by hand, and they separate students who leaned on autograder iteration from students who built real fluency.
What you'll cover
- • Python fundamentals
- • Conditionals and loops
- • Functions and scope
- • Lists and dictionaries
- • Memory diagrams and program tracing
- • Object-oriented basics
The COMP 110 study guide
How to study for UNC COMP 110, step by step.
- 1
Code daily from week one, especially if it feels easy
COMP 110's gentle opening is the trap: the functions-and-scope unit is where unprepared students stall. Twenty minutes of real coding daily builds the base before the course assumes it.
- 2
Master memory diagrams early
COMP 110 teaches tracing through memory diagrams, and exams test them directly. Practice drawing them for every nontrivial example. They're also the debugging tool that makes the rest of the course cheaper.
- 3
Rebuild exercises from a blank file
Passing the autograder by iteration is not the same as being able to produce code. After finishing each exercise, rewrite its core from scratch. If you can't, the exam will discover it first.
- 4
Trace code on paper weekly
Exams ask what code prints with no interpreter to lean on. Hand-trace loops over lists and dictionaries until predicting output is mechanical, not hopeful.
- 5
Use office hours like the resource they are
COMP 110 runs a large TA operation precisely because beginners need unsticking. Go early in the week with specific broken code. The students who never go are overrepresented at the exam's low end.
Today
Today's COMP 110 plan
What a Fennie Daily Plan looks like for COMP 110. Yours is built from your own syllabus and adapts every day to your deadlines and progress.
First plan free, no card required. Fennie is independent and unaffiliated with your school.
FAQ
Is COMP 110 at UNC hard?
For true beginners it's a real course with a real jump at functions and memory diagrams; for students with prior programming it's gentle. The exams separate autograder-iterators from students with actual fluency. Daily practice and paper tracing close that gap.
Do I need COMP 110 to apply to the CS major?
It's the start of the path: the major application requires COMP 210 plus a discrete math course (COMP 283 or equivalent), and COMP 110 is the standard prerequisite into 210. Grades in these early courses matter for admission, so build fundamentals properly rather than just passing.
What language does COMP 110 use?
Python, with a data-science flavor in the examples. It leads into COMP 210 (Data Structures and Analysis), which assumes your Python (especially functions, lists, dictionaries, and object basics) is fluent rather than survivable.
More UNC courses
COMP 210: Data Structures and Analysis
COMP 210 teaches how data structures are actually built: lists, stacks, queues, trees, and hash tables, along with recursion and runtime analysis. It's the centerpiece of the CS major application at UNC, so the grade carries admission stakes on top of the content.
COMP 211: Systems Fundamentals
COMP 211 takes UNC CS students below Python: data representation, C programming, pointers and memory management, processes, and the Unix command line. It builds a working model of how programs actually execute, and with COMP 210 it forms the core that upper-level courses assume.
COMP 283: Discrete Structures
COMP 283 is the CS department's discrete math course, covering logic, proof techniques, induction, sets, relations, counting, and graph basics. It's one of the courses (alongside COMP 210) required to apply to the CS major, and most students' first proof-based course.
COMP 301: Foundations of Programming
COMP 301 teaches UNC CS students to structure and organize larger programs: object-oriented design in Java, interfaces, inheritance, design patterns, and testing. It's the bridge from writing code that works to writing code that's built well, and it follows COMP 210 in the core sequence.