Virginia Tech CS 2114: Software Design and Data Structures
CS 2114 is the second course in Virginia Tech's CS sequence — object-oriented design in depth plus the core data structures (lists, stacks, queues, trees, hash tables) in Java, with substantial projects graded by an autograder that scores your test coverage and style alongside correctness.
Fennie is independent and not affiliated with Virginia Tech. This is an unofficial study guide.
Build my CS 2114 study planWhat makes it hard
The autograder culture is the adjustment: projects are graded on whether your own tests exercise your code, so 'it works on my example' earns partial credit at best. Meanwhile the material jumps from using Java to building data structures with it, and recursion plus linked structures form the classic conceptual wall.
What you'll cover
- • Object-oriented design and interfaces
- • Software testing and test coverage
- • Linked lists, stacks, and queues
- • Recursion
- • Trees and binary search trees
- • Hash tables and Big-O basics
The CS 2114 study guide
How to study for Virginia Tech CS 2114, step by step.
- 1
Internalize the testing bar early
The autograder scores your test coverage, so writing thorough tests is literal grade points. Write tests alongside code from project one — retrofit testing is slower and worse.
- 2
Draw every linked-structure operation
Diagram what each reference points to before and after every insert, delete, and traversal. The drawing habit is what makes the code writable and the exam questions answerable.
- 3
Build the inductive recursion model
Trust the recursive call to handle the smaller case while you reason about one frame. Students who trace every call of every example burn out — the inductive mental model is the breakthrough.
- 4
Start projects the day they open
CS 2114 projects are long, and debugging linked structures eats calendar days. The grade gap between early starters and deadline coders is the most reliable pattern in the course.
- 5
Practice implementing structures from scratch before exams
Exams ask you to write and trace data-structure code by hand. Re-implementing a linked list or BST from a blank page is the honest readiness check.
- 6
Space the hard topics with Fennie
Upload your CS 2114 syllabus and Fennie's Daily Plan spreads recursion and linked-structure practice across weeks with project work front-loaded by design, plus quizzes generated from the actual course content. Free to start.
Start my CS 2114 plan free
How Fennie helps with CS 2114
Fennie's Daily Plans give CS 2114's walls the spaced runway they need — recursion and linked structures practiced across weeks, projects front-loaded so the autograder's testing bar gets met without all-nighters. Chat traces operations reference by reference until you can run the code in your head, which is the exam skill.
FAQ
Is CS 2114 at Virginia Tech hard?
It's the course where the CS major gets real: building data structures rather than using them, recursion as a load-bearing skill, and an autograder that scores your test coverage. Early project starts and consistent tracing practice are what get students through.
How does the autograder in CS 2114 work?
Projects are scored on correctness plus the quality of your own tests and code style — your test suite has to genuinely exercise your code. Writing tests alongside code from the start is both the strategy and the lesson.
How do I prepare for CS 2114?
Enter with CS 1114's Java and OOP genuinely fluent — classes, interfaces, and basic recursion. During the course, draw diagrams for every linked-structure operation and start projects immediately; debugging time is the resource that runs out.
Pass CS 2114 with a plan, not a cram
Upload your CS 2114 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 Virginia Tech courses
CS 1114 — Introduction to Software Design
CS 1114 is Virginia Tech's first course for CS majors, teaching programming from an object-oriented perspective in Java — classes and objects from the start, software testing as a graded habit, and program design rather than just syntax. Performance here matters for the competitive CS major path.
CS 1064 — Introduction to Programming in Python
CS 1064 is Virginia Tech's Python programming course for non-CS majors — variables, control flow, functions, lists and dictionaries, and file handling — popular as a Pathways elective and as practical preparation for data work across majors.
CS 2505 — Introduction to Computer Organization I
CS 2505 takes Virginia Tech CS students below Java — C programming, pointers and memory, data representation, and how programs actually use the machine — with assignments developed and tested on the department's Linux (rlogin) systems.
CS 2506 — Introduction to Computer Organization II
CS 2506 continues Virginia Tech's systems sequence from 2505 down to the architecture — assembly language, the processor datapath, pipelining, caching, and virtual memory — the course where CS students learn what the hardware actually does with their code.