Time: MW 11:45-1:30 (section 2) MW 4:45-6:20 (section 1)
Location: LS 307 (section 2), Harney 435 (section 1)
Professor: EJ Jung
Office: Harney 403A
Office Hours: MW 10-11:30am, or by appointment
I highly encourage you to make an appointment with me, and I'm available on Zoom (video conference) too.
Email: ejung@cs.usfca.edu (include 673 in the subject) - Piazza preferred
Teaching Assistants: Chengcheng Wang, Bingkun Yang
Contact: Use Piazza!
Office Hours: Bingkun - Mondays 6:30-8:30pm, Fridays 4-6pm in CSI 307
Chengcheng - Wednesdays 1:30-2:10pm, 3:25-3:55pm CSI 307
4:05-4:40pm CSI G12
Tutoring Center
You may also visit the CS Tutoring Center for help with this course.
Prerequisite:
Graduate standing
Text:
Required: Cormen, Leiserson, Rivest, Stein Introduction to Algorithms, 3rd Edition
External Resources
Grading Policy
Grades will be given according to scores on written homework assignments, midterms and finals, according to the following percentages.
Assignment | Percentage | Date |
Homework | 40% | Approx. Weekly |
Midterm 1 | 15% | 10/04/2017 |
Midterm 2 | 15% | 11/15/2017 |
Final (Comprehensive) | 30% | Saturday, December 9th, 2017 5:30pm - 7:30pm (both sections) |
A+ >100% | B+ ≥87% | C+ ≥77% | A ≥94% | B ≥84% | C ≥74% |
A- ≥90% | B- ≥80% | C- ≥70% |
F < 70% |
Academic Honesty
All students are expected to know and adhere to the University of San Francisco's Academic Honor Code. Go to https://myusf.usfca.edu/academic-integrity/honor-code for details.
You must never represent another person’s work as your own.
Any student may be asked to reproduce any of his/her work at any time. Failure to reproduce work in a timely manner will be considered academic dishonesty.
Copying answers from other students or sources during an exam or homework assignment is a violation of the university’s honor code. This includes copying answers or other material from the web, and having anyone other than yourself complete your assignments. It also includes working too closely with another student. Collaboration or discussion that results in the same or very similar answer indicates that you have not placed enough independent work into your solution and is a violation of the honor code.
Flagrant or repeat violations of the honor code will result in an F in the course, a report to the University Academic Integrity Committee, and a report to the Dean.
At the discretion of the instructor, a less severe penalty may be imposed for minor or first offenses. This is at the sole discretion of the instructor and any violation may result in an F in the course.
Examples of honor code violations include but are not limited to:
Academic Honesty
You are not allowed to search the web for solutions to the homework assignments. You are not allowed to use any solutions to previous version of this class in completing your homework assignments -- if you have any old solutions, throw them out now! While it is acceptable to discuss the homework problems at a high level with other students, you should not get into details, or tell another student the solution to a problem. You should write up the solutions to your homework problems entierly on your own. You should never look at the solutions of other students, or allow them to use your solutions.
Late Policy
Late homeworks WILL NOT BE ACCEPTED. If you have difficulty with an assignment, or some type of time conflict, the correct time to see me is before it is due. Trying to get an extension on the due date itself will lead to sympathy from the instructor, but no extension.
Exams
The exam portion of your grade will be based on two exams administered throughout the semester and one exam administered during the final exam period. You are responsible for being in class on the day of the exam. Make-up exams will be given only in the case of a medical emergency verified by a doctor's note.
Exam Policy
If a student earns less than 60% on any two out of the three exams the student will get an automatic F for the class.
Students with Disabilities
If you are a student with a disability or disabling condition, or if you think you may have a disability, please contact USF Student Disability Services (SDS) at (415) 422-2613 within the first week of class, or immediately upon onset of disability, to speak with a disability specialist. If you are determined eligible for reasonable accommodations, please provide me with your SDS Verified Individualized Services and Accommodations (VISA) form, and we will discus your needs for this course. For more information, please visit: http://www.usfca.edu/sds or call (415) 422-2613.
I would like to hear from anyone who has a disability which may require seating modifications or testing accommodations or accommodations of other class requirements, so that appropriate arrangements may be made. Please contact me during my office hours or make an appointment.
Learning Objectives
Upon successful completion of this course, you should be able analyze the running time and space requirements for complex algorithms, both recursive and iterative. You will understand a variety of fundamental computer science algorithms, and be able to modify them to solve related problems. Most importantly, you will improve your "algorithmic thinking" skills, and be better able to create novel algorithms for new problems.
Tentative Course Outline
The following is subject to change, given the interests/knowledge of the students
Introductions
Algorithm Basics
Mathematical Foundations
O(), Ω(), o(), ω() Θ()
Recurrence Relations
Proof Techniques
Randomized Algorithms
Sorting & Selection
Heapsort, Quicksort, Randomized Quicksort, Mergesort
Selection Problem
O(n lg n) Quicksort (worst case)
sub-O(n lg n) sorting
counting sorts, radix sort, bucket sort
Modifying Data Structures
Read/Black Trees & Interval Trees
Leftest Heaps
Fibonacci Heaps
Dynamic Programming
Relation to Divide and Conquer
Fibonacci Numbers
Matrix Chain Multiplication
Longest Common Subsequence
Polygon Triangulation
Greedy Algorithms
Scheduling
Huffman Codes
Proving Correctness
Matroids
Amortized Analysis
Basic Concepts
Aggregate method
Accounting method
Potential Method
Graph Algorithms
Graph representations
BFS / DFS
Spanning Trees
Shortest Path
Maximum Flow
Other Topics (Time permitting)
String Matching
RSA & Encription
Computational Geometry
Approximation Algorithms