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.
Spring 2023
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
Spring 2023
Time: MW 11:30AM - 12:45PM
Location: Atwood 240
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
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 .
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.