UVA CS 1110: Introduction to Programming
CS 1110 is UVA's Python-based introduction to programming, assuming no prior experience. It is the entry point for prospective CS majors, minors, and a wide range of other students, covering 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.
What 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.
Today
Today's CS 1110 plan
What a Fennie Daily Plan looks like for CS 1110. 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 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.
More 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. It is the mathematical foundation for algorithms and theory courses later in the major, and 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. The goal is 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.