UVA CS 1110: Introduction to Programming
CS 1110 is UVA's Python-based introduction to programming, assuming no prior experience — the entry point for prospective CS majors, minors, and a wide range of other students. It covers variables, control flow, functions, lists and dictionaries, file handling, and basic objects, with weekly labs and programming assignments.
Fennie is independent and not affiliated with University of Virginia. This is an unofficial study guide.
Build my CS 1110 study planWhat makes it hard
The opening weeks feel easy, which is the trap: difficulty jumps at functions and again at nested data, and students who coasted have no debugging habits when programs stop working on the first try. Exams require reading and writing code without an interpreter, which exposes anyone who finished assignments by tweaking until the autograder passed.
What you'll cover
- • Python fundamentals and program design
- • Conditionals and loops
- • Functions and decomposition
- • Lists, dictionaries, and strings
- • File input and output
- • Intro to objects
The CS 1110 study guide
How to study for UVA CS 1110, step by step.
- 1
Build a daily coding habit before you need it
CS 1110's gentle start convinces students they can study weekly; the functions unit corrects them. Twenty minutes of writing real code daily from week one is what keeps the difficulty curve flat.
- 2
Type every example yourself
Reading working code feels like understanding; producing it is the skill exams test. Re-create lecture examples from a blank file and fix your own errors without peeking.
- 3
Learn to debug deliberately
Print what variables hold, predict before you run, and read error messages bottom to top. Students who debug by random edits plateau exactly when programs get long enough to need a method.
- 4
Practice tracing code on paper weekly
Exams ask what code prints and why, with no interpreter to lean on. Hand-trace loops over lists and dictionaries until predicting output is mechanical.
- 5
Treat labs as the weekly difficulty gauge
If a lab took the whole session plus help, that topic is your week's priority — assignments and exams will assume it. Close the gap the same week, because every unit stacks.
- 6
Put the reps on a Fennie Daily Plan
Upload your CS 1110 syllabus and Fennie schedules short daily coding practice around assignment and exam dates, with quizzes generated from the actual course material to test code-reading without an interpreter. Free to start.
Start my CS 1110 plan free
How Fennie helps with CS 1110
Fennie's Daily Plans build the daily practice rhythm CS 1110 quietly requires, paced to assignment deadlines and exams rather than panic. Chat explains why your code behaves the way it does — trace by trace, error by error — so debugging becomes a method instead of guesswork, and generated practice questions rehearse the on-paper code reading exams demand.
FAQ
Is CS 1110 at UVA hard?
Not at first — and that's the problem. Difficulty jumps at functions and nested data structures, and students who coasted on the easy weeks have no habits when it does. True beginners who code a little daily do fine; weekly crammers get exposed at the first exam.
Should I take CS 1110 or CS 1111?
CS 1110 assumes zero experience; CS 1111 covers the same ground faster for students with some prior programming. If you've written real code before — a high school course, self-taught projects — 1111 saves you boredom. If you're unsure, 1110 is the safe default and counts identically.
What language does CS 1110 use?
Python. The course covers fundamentals through lists, dictionaries, files, and intro objects, and leads into CS 2100 (Data Structures and Algorithms 1), which transitions to Java — so genuine fluency here matters more than the grade.
Pass CS 1110 with a plan, not a cram
Upload your CS 1110 materials and Fennie generates a Daily Plan paced to your deadline — plus chat, flashcards, and quizzes built from the actual course content.
Get started freeMore UVA courses
CS 2100 — Data Structures and Algorithms 1
CS 2100 is the first course of UVA's renumbered CS core — data structures and algorithms in Java, covering lists, stacks, queues, trees, hash tables, and runtime analysis, with required labs alongside lecture. It replaced the old CS 2110/2150 path and is the gateway the rest of the major builds on.
CS 2120 — Discrete Mathematics and Theory 1
CS 2120 is the discrete math course of UVA's CS core — logic, proofs, sets, functions, induction, and basic graph and number theory — the mathematical foundation for algorithms and theory courses later in the major. It's most students' first proof-based course.
CS 2130 — Computer Systems and Organization 1
CS 2130 takes UVA CS students below the languages they know — binary representation, gates and circuits, assembly, and C programming with pointers and memory — building a working model of how computers actually execute code. Labs run alongside lecture, and it leads into CSO2.
CS 3100 — Data Structures and Algorithms 2
CS 3100 is the algorithms half of UVA's DSA pair — graph algorithms, greedy methods, divide and conquer, and dynamic programming, with runtime analysis and correctness reasoning throughout. It draws directly on both CS 2100's structures and CS 2120's proof techniques.