CS 171 - Introduction to Computer Science II

Synchronous Lectures T/Th 10:00a - 11:15a EST
(Fall 2026)

Remember all those Java constructs and programming skills you learned in CS 170 (or an equivalent course)?

CS 171 will teach you how to use these Java programming skills to build what we call data structures and to design efficient algorithms. In other words, you will learn how to use Java programming to store and manage data efficiently while solving real-world problems. How exciting!

Course Logistics

When: T/Th 10:00a - 11:15a EST, synchronous
Where: MSC W301
Pre-requisites: CS 170 (or equivalent)
Discussion / Questions: Piazza
Office Hours: here

Textbooks

This textbook is recommended; you are not required to purchase it. I will copy any relevant material from the book into our course slides and reading material, but if you wish to own a copy of the book (e.g. for further reading), here it is:

  • Data Structures and Algorithms in Java (6th Edition), by Goodrich, Tamassia, and Goldwasser [Amazon]
  • Supplemental & Online Examples: Princeton's Algorithms (4th edition) by Robert Sedgewick and Kevin Wayne [Textbook Website]

People

Instructor: Dr. Emily Wall (Instructor) is an Assistant Professor at Emory University CS. She directs the Cognition and Visualization (CAV) Lab where she and her students conduct research on decision making with data.

Sung Oh (TA) is a CSI Ph.D. student.

java icon


data structures


algorithms


Learning Objectives

OOP

  • You will learn the basics of Object-Oriented Programming (OOP) -- the what, the why, and the how.

Implementation

  • You will learn how to implement OOP concepts in Java programming language.

Data Structures & Algorithms

  • You will learn about data structures and algorithms: what are they, and how can we use them to solve real-world problems?

Problem Solving

  • You will learn how to apply and implement the right data structures and algorithms to approach common real-world problems like sorting, searching, and even solving mazes!

Assignments & Responsibilities

You will be individually responsible for some programming assignments , completing quizzes either online or in class , as well as two exams: a midterm and a final .

Objective Weight Description Symbol
30% Programming Assignments.
10% (Online) Short Quizzes.
15% Programming Quizzes.
20% Test 1 (Midterm).
25% Test 2 (Final).
In addition, there may be a few extra credit opportunities.

Schedule

= Programming Assignment = Quiz = Exam
= Optional Reading = No Preparation = No Lecture

Week Date Topic Reading Assignments Due
1 8-27 Overview, Course Logistics, & Java Review I Textbook Ch. 1 Complete the course survey
2 9-01 Java Review II
Object-Oriented Programming (OOP) I
Textbook Ch. 2.1
9-03 Object Oriented Programming (OOP) II
3 9-8 OOP: Pass by Value for Objects v. Primitive Variables
9-10 OOP: Inheritance I Textbook Ch. 2.2
4 9-15 OOP: Inheritance II (Implementation)
9-17 OOP: Inheritance III (Implementation)
5 9-22 OOP: Abstraction I Textbook Ch. 2.3
9-24 OOP: Abstraction II (Implementation)
6 9-29 OOP: Abstraction III (Implementation) A1
10-01 ArrayList & Generics Textbook Ch. 7.2
7 10-06 Stack I Textbook Ch. 6.1
10-08 Midterm
8 10-13 Fall Break
10-15 Stack II
9 10-20 Queue Textbook Ch. 6.2
10-22 LinkedList I
Textbook Ch. 3 A2
10 10-27 LinkedList II
10-29 LinkedList Implementation (w/ Support for Iterable, Generics)
11 11-03 Introduction to Algorithms Analysis
Election Day -- Go Vote!
11-05 Basic Sorting I (Bubble, Selection, & Insertion) Textbook Ch. 9.4
12 11-10 Basic Sorting II
11-12 MergeSort I Textbook Ch. 12.1 A3
13 11-17 MergeSort II
QuickSort I
Textbook Ch. 12.2
11-19 QuickSort II
14 11-24 QuickSort III
11-26 Thanksgiving Recess
15 12-01 HashTable I Textbook Ch. 10.2
12-03 HashTable II
A4
(optional)
16 12-08 HashTable III, Course Recap,
& Final Exam Overview
12-10 Reading Period
17 12-15 (8:00am - 10:30am) Final Exam Period

Policies

Timeliness

All assignments are due at the end of the day (11:59pm Eastern Time) on the day listed in the schedule. You will have one “free” late token to use for any assignment (except exams) as needed throughout the course. The token gets you a 24 hour extension on the assignment deadline. These are for any cases where Institute-approved absences do not apply, and no reason must be given to use them. After the “free” late token is used up, any late assignments will receive a 10% per day penalty. Assignments turned in one week or later past the due date will not be graded and given a 0. You do not need to notify the course staff to use late tokens -- they will be automatically applied. Once you use them, you cannot switch them later in the course, so plan wisely. If you do not used your late token at the end of the semester, you will receive 5% extra credit on the final exam.

Regrade Policy

You can request a re-grade of an assignment within seven days of releasing the grade by sending an email to the course staff. The request should contain a written explanation of why you think that the grade is incorrect. We will look over your work again upon request.

If there is an error, we will of course correct it. However, do not ask for a regrade or a boost simply because you do not like your grade. If your request is based on a rationale of "what's the harm" or "it's worth a try," save your energy. You get the grade that you earn in this class -- no more and no less. Baseless requests for regrades devalue all of your classmates' hard work and waste everyone's time.

Letter Grades

For numerical grade x, we will use the following standard letter grade correspondence:

A A-
x ≥ 93 90 ≤ x < 93
B+ B B-
87 ≤ x < 90 83 ≤ x < 87 80 ≤ x < 83
C+ C C-
77 ≤ x < 80 73 ≤ x < 77 70 ≤ x < 73
D+ D
67 ≤ x < 70 63 ≤ x < 67
F
x < 63

Office of Accessibility Services

Your success in this class is important to me. We all need accommodations because we all learn differently. If there are aspects of this course that prevent you from learning or exclude you, let me know as soon as possible. Together we'll develop strategies to meet both your needs and the requirements of the course.

I encourage you to visit the Office of Accessibility Services to determine how you could improve your learning as well. If you need official accommodations, you have a right to have these met. Students must renew their accommodation letter every semester they attend classes. Contact the Office of Accessibility Services for more information at (404) 727-9877 or email at accessibility@emory.edu. Additional information is available at the Department of Accessibility website.

Student Support Services

In your time at Emory, you may find yourself in need of support. Here you will find some resources to support you both as a student and as a person.

Academic Honesty

Emory aims to cultivate a community based on trust, academic integrity, and honor. Students are expected to act according to the highest ethical standards. For information on Emory’s Honor Code, please visit here.

Any student suspected of cheating or plagiarizing on a quiz, exam, or assignment will be reported to the Office of Student Conduct, who will investigate the incident and identify the appropriate penalty for violations.

Unless explicitly stated otherwise, you are expected to complete assignments on your own. It is appropriate to discuss your ideas with others to gain feedback and help with sticky problems. It is not appropriate to find an existing solution online or from your friends, modify them, and submit as your own work. If in doubt, confer with your instructor. It is much easier to ask about these things than handle the consequences of a poor decision.

Any code and writeup that is found to be similar is grounds for an honor code investigation. This includes similarities with any submissions from current or past semesters, as well as suspicions of plagiarism from online resources.

Every program assignment must have the following comment included at the top of the file.

/* THIS CODE IS MY OWN WORK, IT WAS WRITTEN WITHOUT CONSULTING CODE WRITTEN BY OTHER STUDENTS OR COPIED FROM ONLINE RESOURCES. _Your_Name_Here_ */

An assignment will not be considered turned in without the comment.

Use of AI

AI tools (e.g., ChatGPT, Copilot, Gemini, Claude, etc.) can be useful for learning programming concepts, debugging, and practicing problem-solving. In this course, the goal is for you to develop the ability to read, write, trace, debug, and explain Java code independently.

You may use AI tools to:

  • Ask for explanations of Java concepts, syntax, errors, or compiler messages.
  • Request examples that are not copied into your assignment.
  • Brainstorm approaches to a problem before writing your own solution.
  • Get hints for debugging after attempting the problem yourself.
  • Study for quizzes and exams.

You may not:

  • Submit code written wholly or in part by an AI tool as your own work.
  • Ask an AI tool to complete an assignment, lab, homework, or project for you.
  • Copy AI-generated code, comments, variable names, or test cases into a submission.
  • Use AI tools during quizzes, exams, or other assessments designated as closed-resource.

If you use an AI tool while working on an assignment, include a brief note at the beginning of your submission, after your honor code statement:
/*AI Use Statement: I used [tool name] to [e.g., explain a compiler error / review my approach / suggest debugging steps]. I wrote and tested all submitted code myself.*/
If you did not use AI, write:
/*AI Use Statement: No AI tools were used.*/

You should be prepared to explain how your program works, trace your code on a small example, and modify or extend your solution during class, office hours, or a follow-up discussion. Inability to explain or modify submitted work may be treated as evidence that the submission is not your own. Violations of this policy will be handled according to the course's Academic Honest policy (see above).

The goal of this policy is to encourage you to use AI responsibly -- to augment your own learning rather than circumvent it.

Contact

Instructor: Dr. Emily Wall

emily.wall@emory.edu

Office Hours: Thursdays 11:15a-12:15p in MSC W302K

Zoom link (if virtual, by appointment)

https://emilywall.prof

TA: Sung Oh

sunggyeol.oh@emory.edu

Office Hours: TBD in MSC 308 A TA consulting area