CS 171 - Introduction to Computer Science II

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

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: Atwood 240
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.

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

Policies

Timeliness

All assignments are due at the start of class on the day listed in the schedule. You will have one “free” late tokens 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

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.

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 OAS 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.

Contact

Instructor: Dr. Emily Wall

emily.wall@emory.edu

Office Hours: Thursdays 9a-10a in MSC W302K

Zoom link (if virtual, by appointment)

https://emilywall.prof

TA: Siyu Li

siyu.li@emory.edu

Office Hours: Mondays 3p-4p and Wednesdays 1p-2p in MSC 308 A TA consulting area

Zoom link (if virtual, by appointment)