arrow-left

All pages
gitbookPowered by GitBook
1 of 3

Loading...

Loading...

Loading...

Preface

Jinho D. Choi

This is an advanced programming course in Computer Science that teaches how to design efficient structures and algorithms to process big data and methods to benchmark their performance for large-scale computing. Topics cover data structures such as priority queues, binary trees, tries, and graphs and their applications in constructing algorithms such as sorting, searching, balancing, traversing, and spanning. Advanced topics such as network flow and dynamic programming are also discussed. Throughout this course, students are expected to

  • Have a deep conceptual understanding of various data structures and algorithms.

  • Implement their conceptual understanding in a programming language.

  • Explore the most effective structures and algorithms for given tasks.

  • Properly assess the quality of their implementations.

There are topical quizzes and homework assignments that require sufficient skills in Java programming, Git version control, Gradle software project management, and scientific writing. Intermediate-level Java programming is a prerequisite of this course.

Syllabus
Schedule

Syllabus

Spring 2023

hashtag
General

  • Book: https://emory.gitbook.io/dsa-java/arrow-up-right

  • GitHub:

  • Time: MW 11:30AM - 12:45PM

  • Location: Atwood 240

hashtag
Instructors

  • Associate Professor of Computer Science Office Hours → MW 4PM - 5:30PM, MSC W302F

  • BS in Computer Science; BA in Physics and Astronomy Office Hours → TuTh 10:30AM - 12PM, MSC E308

  • BS in Computer Science and Economics Office Hours -> MW 2:30PM - 4PM, MSC E308

hashtag
Grading

  • 1 + 10 topical quizzes: 70%

  • 3 homework assignments: 30%

  • Your work is governed by the . Honor code violations (e.g., copies from any source, including colleagues and internet sites) will be referred to the .

hashtag
Notes

  • For every topic, one quiz will be assigned to check if you keep up with the materials.

  • Homework assignments assess conceptual understanding, programming ability, and analytical writing skills relevant to this course.

  • All quizzes and assignments must be submitted individually. Discussions are allowed; however, your work must be original.

BS in Computer Science; BA in Music Office Hours → TuTh 1PM - 2:30PM, MSC E308

Excuses for exam absence/rescheduling and other serious personal events (health, family, personal related, etc.) that affect course performance must be accompanied by a letter from the .

Late submissions within a week will be accepted with a grading penalty of 15% and will not be accepted once the solutions are discussed in class.

https://github.com/emory-courses/dsa-javaarrow-up-right
Jinho Choienvelope
Peilin Wuenvelope
Jeongrok Yu envelope
Emory Honor Codearrow-up-right
Emory Honor Councilarrow-up-right
Zinc Zhaoenvelope
Office of Undergraduate Educationarrow-up-right

Schedule

Spring 2023

Date
Topic
Assignment

01/11

01/16

MLK Holiday

01/18

01/23

(Continue)

01/25

(Continue)

01/30

02/01

(Continue)

02/06

02/08

(Continue)

02/13

(Continue)

02/15

02/20

(Continue)

02/22

(Continue)

02/27

03/01

(Continue)

03/06

Spring Break

03/08

Spring Break

03/13

03/15

03/20

(Continue)

03/22

03/27

(Continue)

03/29

(Continue)

04/03

04/05

(Continue)

04/10

(Continue)

04/12

04/17

(Continue)

04/19

(Continue)

04/24

Review

0. Getting Started
Quiz 0
1. Java Essentials
Quiz 1
2. Priority Queues
Quiz 2
3. Soring Algorithms
Homework 1
Quiz 3
4. Binary Search Trees
Quiz 4
5. Tries
Quiz 5
Homework 2
6. Disjoint Sets
Quiz 6
7. Graph
Quiz 7
8. Minimum Spanning Trees
Homework 3
Quiz 8
9. Network Flow
Quiz 9
10. Dynamic Programming
Quiz 10