COMP 218.00 Data Structures Fall 2026

Instructor: James Skon
Office: Chalmers 428
Phone: 740-427-5369
Department: Computing

Class Location: Chalmers 300
Meeting Times: Monday, Wednesday, Friday, 1:10–2:00 PM

Office Hours

Times: Mon, Tues, Thurs: 2:00-3:00, Thursday 9:00-10:00 (Chalmers 257)
Appointments: [Book Meeting Link]
Walk-ins welcome, but students with appointments will be given priority.

Class tutor: Wisdom Akanwe
MSSC Hours: MSSC Sunday 7:00-8:30pm and Tuesdays, Thursdays 7:00-8:00pm.

Course Description and Learning Objectives

The main goal of this course is to learn basics of fundamental data structures used in computer science and practice using them to solve problems. These include: stacks, queues, lists, heaps, hash tables, trees, and graphs. We will also examine a number of searching and sorting algorithms. Both array-based and linked implementations are analyzed where appropriate. You will also learn how to use the pre-written classes contained in the Standard Template Library (STL). An introduction to analysis of algorithms and the big-O notation will be given. Analysis of major algorithms will be discussed. Another important learning goal in this course is to practice software engineering principles and write programs with good user interface. Good programming practices are emphasized. We will cover most of the chapters in the textbook. We will be using pair programming so that you practice software development as a team in a collaborative way. This is often a necessary and highly valued skill. Many real life software development projects are collaborative.
Prerequisite: COMP 118 or equivalent, proficiency in C++.

Course Resources

  • Textbook: Data Structures Using C++, 2nd Edition, D. S. Malik. [PDF Link]
  • Test source code: [Link]
  • Programming Environment:
  • GitHub:
  • Moodle: All assignments and quizzes must be submitted via Moodle.

Prepare Programming Environment

Visual Studio with C++

Follow the instructions here: VS Code Setup with C++
Get the Hello World Program Running.

Artificial Intelligence (AI) Use Policy

The purpose of this course is for students to develop a solid understanding of data structures and to gain hands-on experience programming in C++. To achieve this, it is essential that students practice writing code themselves. Therefore, the use of AI tools (such as ChatGPT, GitHub Copilot, or similar) is restricted as follows:

Permitted Use:

Students may use AI tools only when explicitly directed to do so as part of a specific assignment. For example, assignments may instruct students to:

  • Use AI to generate test data
  • Use AI to create test programs that evaluate student-written classes
  • Use AI to review code they have written and tested, for suggestions or feedback

These cases are clearly described within the assignment instructions.

Prohibited Use:

Unless explicitly permitted, students may not use AI tools or online code repositories (e.g., StackOverflow, GitHub, Reddit, etc.) to:

  • Generate or complete code for assignments
  • Solve programming problems
  • Rewrite or improve assignment solutions before submission

All submitted code must reflect the student’s own work and understanding. Submitting AI-generated or copied solutions is considered academic dishonesty.

Rationale:

This course is focused on teaching students how to think critically about code, design data structures, and implement algorithms themselves. The learning objective is not to delegate these tasks to AI, but to develop the skills to do them independently.

Consequences:

Use of AI tools or online sources beyond what is explicitly allowed will be treated as a violation of the college’s Academic Honesty Policy.

If you are unsure whether a particular use of AI is permitted, ask the instructor before using it.


Grading and Evaluation Criteria


Final grades will be determined based on the performance in the following components.

ComponentPercentage
Quizzes20%
Weekly Labs in Pairs45%
Midterm Exam10%
Final Exam25%
100%

Assessments

Quizzes:

  • Short (10-minute) quizzes at the start of most classes
  • Based on reading for the day
  • Bring a laptop to every class.
  • Lowest n quiz scores dropped.
  • No makeup quizzes except in documented long-term situations.

Labs:

  • Weekly pair programming projects.
  • Some labs contain multiple programs.
  • Labs are the most heavily weighted aspect of the course.

Exams:

  • Midterm: March 2
  • Final Exam: December 18, 6:30–9:30 PM (Moodle test)
  • Includes both a traditional test and a programming component.

Participation and Engagement

Active participation is expected. Legitimate absences (illness, religious observances, college athletics) must be communicated in advance.

After each assignment, 2–3 students may be randomly selected to explain their code in class. Participation includes:

  • Attendance
  • In-class engagement
  • Contribution to Moodle discussions
  • Ability to explain submitted code

Programming Assignment Grading Criteria

  • Correctness: Meets the assignment requirements, handles all inputs.
  • Design: Modular code with appropriate use of functions/classes.
  • User Interface: Clear, intuitive, and reusable.
  • Style & Documentation: Readable code with good naming, comments, and formatting.
  • Efficiency: Time and space-efficient solutions expected.

Programs that fail to compile: max 50%.
Programs with runtime errors: max 75%.

Late Policy

Late submissions are only accepted with prior permission via a [Request Form].

  • One Week Extension: Request at least 1 week in advance.
  • Three-Day Extension: Request at least 3 days in advance.
  • 24-Hour Extension: Request up until the due date.

Do not modify submissions after the due date without permission.

Schedule

DateSlidesExamplesSection/Topic/Reading AssignmentQuizDue
Fri, Aug 28Intro
Ch1
csits.kenyon.edu
Register
Join Code: COMP218Demo
Introduction, Logistics, A quick review, Chp 1: Software Engineering Principles
Will AI take our jobs?
Introduction to GitHub
Sign up for GitHub
SSH Key Setup
Simpler C++ and VS Code on Windows
Alt C++ and VS Code on Windows
C++ and VS Code on Mac
 Quiz 0
csits.kenyon.edu
Register
Join Code: COMP218QUIZ
 Survey: csits.kenyon.edu
Mon, Aug 31  How to use Classroom50
Lab 0 – Get First Program running

Review, practice, lab work, or continuation of the preceding topic.
  
Wed, Sept 2Intro
Pairs
Ch1
SelectionSort Lab 1
Chp 1: Run Time Analysis, and Big-O notation
Install g++, make and git all at once on Windows
 Survey
GitHub
Fri, Sept 4Ch1
Big-O

Clock
Point
Chp 1 and 2: OOPS concepts, Introduction to C++ Classes
UML UML Class Diagram
Google Diagrams
UML How To
UML Diagrams
UML Association vs Aggregation vs Composition
Google Classrrom setup
1Lab 0
Mon, Sept 7  Review, practice, lab work, or continuation of the preceding topic.  
Wed, Sept 9Ch2Complex
Shapes
Box Template
Makefiles
Chp 2: Operator Overloading. Inheritance and Templates.
Activity
Lab2
2 
Fri, Sept 11Ch3randompointsChp 3: PointersPointer example.
Pointer Activity
Template Activity
 Lab 1 
Mon, Sept 14  Review, practice, lab work, or continuation of the preceding topic.  
Wed, Sept 16 More pointers
FunctionPointer
FunctionObjectPointer
Object pointers
Object pointers with inheritance
Practice with Big-O notation.
Notes
More on Pointers
3 
Fri, Sept 18 Animals
ArrayType
ArrayShapes
Chp 3: Array based lists, Virtual functions and abstract classes
Lab 3
4Lab2
Mon, Sept 21  Review, practice, lab work, or continuation of the preceding topic.  
Wed, Sept 23Ch4, Ch13ArrayListAnimal
Vector (ex)
STL Containers
VectorShapes
List (more)
Queue (more) (ex)
deque (more) (ex)
set (ex)
map (ex)
UniqueSubStrings
Ch 4 and 13: Introduction to STL, vector, deque, set, maps, iterators
Queue
Deque
Sets
Lab 4
5 
Fri, Sept 25STLBFS, Shortest Path Search
Map Iterator
CampusMap
STL algorithms
CountWebpageWords
AlgorithmsDemo (US States)
Chp 4 and 13: Iterators, Algorithms, and practice
Web Words Activity
6 
Mon, Sept 28  Review, practice, lab work, or continuation of the preceding topic.  
Wed, Sept 30Ch5Linked Lists
Virtual Functions
Linked List Activity
Chp 5: Intro to Linked Lists
Lab 5 
LeetCode
7Lab 3
Fri, Oct 2 Doubly Linked Lists
Linked List Activity
Animations
Linked Lists continued. Douby linked lists.
Doubly Linked List
  
Mon, Oct 5  Review, practice, lab work, or continuation of the preceding topic.  
Wed, Oct 7 Doubly Linked Lists
Circular Linked Lists
Recursion Activity
Recursion POGIL1
Peirce Lines
LL finished and LL variations (circular linked lists etc.). Intro to Recursion.8 
Fri, Oct 9October Break — No Class
Mon, Oct 12Ch 6Pair Example
Recursion POGIL 2
PascalTriangle
Chp 6: Recursion. Some video lessons on recursion from Scmp 118. Part1Part2
Memoization
9Lab 4
Wed, Oct 14  Review, practice, lab work, or continuation of the preceding topic.  
Fri, Oct 16 Study GuideMidterm Exam  
Mon, Oct 19 Reverse String
Expression Evaluation
Word Find
Permutations
URLExtractor
N-Queens
Recursion continued (recursion and backtracking)
Lab 6
  
Wed, Oct 21  Review, practice, lab work, or continuation of the preceding topic.  
Fri, Oct 23Ch 7Stacks
Balance Parenthesis
MazeSolve
Call Stack
Chp 7 Stacks
Lab 7
10Lab 5
Mon, Oct 26 Stack and Recursion Case Study: DAG & Topological Sort
Maze Stack
Stacks (Array, LL)
Queues (Array, LL)
Chp 7 Stacks.11 
Wed, Oct 28  Review, practice, lab work, or continuation of the preceding topic.  
Fri, Oct 30Ch 8Queue Implementation
Simulation Activity
Peirce Lines
Chp 8: Queues
Lab 8
12Talk Attendance
Lab 6
Mon, Nov 2 Priority Queues
Heros Task Manager
Linux
Linux at Kenyon
Chp 8 finished.
Linux Slides
Linux Commands
Logging in to Linux
VC Code Editing remotely
13 
Wed, Nov 4  Review, practice, lab work, or continuation of the preceding topic.  
Fri, Nov 6Ch 9Linear Search
Binary Search
Hashing Intro
Hash Functions Intro
Hash Functions
Linear Probing
Animations
Chp 9: Searching and Hashing Algorithms
Lab 9
14 
Mon, Nov 9 Quote
Hash Collision Handling
HashBucketsWithChaining
In Class Activity
Chp 9 Finished
15Lab 7
Wed, Nov 11  Review, practice, lab work, or continuation of the preceding topic.  
Fri, Nov 13CH 10Sort Summary
Sort Animations
More Animations
Selection Sort
Insertion Sort
Bubble Sort
Merge Sort
Ch 10: Sorting algorithms: Selection Sort, Insertion Sort, Bubble Sort, and Merge Sort
In Class Sorting Activity
Lab 10
C++Cast
16 
Mon, Nov 16 Sorting Top 10
Sort Animations with sound
Shell Sort
Shell Sort Demo
Quick Sort
Quick Sort Demo
Quicksort visualization
Ch 10: Shell Sort and Quick Sort. Animations of various sorting algorithms as folk dances. 
MergeSort vs QuickSortShellSort. A slow sorting algorithm.
17Lab 8
Wed, Nov 18  Review, practice, lab work, or continuation of the preceding topic.  
Fri, Nov 20CH 11Binary Trees
Representation
Binary Search Trees
Binary Tree Traversal
Clone Tree
Ch 11: Binary Trees, Tree Traversals, Binary Search Trees (intro)
Tree Activity
18 
Nov 23–27Thanksgiving Vacation — No Classes
Mon, Nov 30 Functions as parameters
AVL Trees
Animation
B-Trees
Animation
Slides
Ch11: Functions as Parameters, AVL Trees, Balancing AVL Trees, B-Trees
Quiz: csits.kenyon.edu 
Wed, Dec 2  Review, practice, lab work, or continuation of the preceding topic.  
Fri, Dec 4 Greedy algorithms
Greedy Examples
Huffman Code Example
Heap Sort
Animation
Ch 11: Heap SortQuiz: csits.kenyon.edu
Quiz on Greedy Algorithms
 
Mon, Dec 7Ch 12Animations
Introduction to Graphs
Representation of Graphs
Adjacency Matrix
Adjacency List
Prim’s Algorithm
Kruskal’s Algorithm
Ch 12: Graphs21Lab 9
Wed, Dec 9  Review, practice, lab work, or continuation of the preceding topic.  
Fri, Dec 11 Depth First Search
Breadth First Search
Shortest Path
Maze Solve Recursive
Maze DFS(Stack) and BFS(Queue)
Chp 12: Graph Algorithms.22Lab 10
Final Exam Final Study Guide
Official final-exam date and time
   

Academic Honesty

All work must reflect your own understanding. Pair programming must follow course guidelines. Violations will be handled in accordance with the college’s academic honesty policy. [Policy Link]


Study Tips

  • Read textbook sections before class.
  • Take notes on confusing concepts and ask in class.
  • Participate actively during class and in Moodle forums.
  • Start labs early and follow pair programming practices.
  • Seek help early during office hours or tutoring.

It is expected that you read all the sections to be covered BEFORE the class and come to class prepared to discuss the topics.

File for labs:

Here are files needed for labs: Link

Check this page regularly for updates . This is a tentative schedule to be updated as needed.

Git on Windows 11
make on Windows 11

Scroll to Top