NOTE: THIS PAGE IS BEING UPDATED
SOME DETAILS ARE SUBJECT TO CHANGE
Note: The course syllabus may be modified during the term.
Updates will be made only on the course web page, located at
http://cs.bc.edu/~alvarez/Algorithms/.
Contact | References | Objective | Grading | Materials
Welcome to the CSCI 3383 homepage for Fall 2021! You may use the menu options above to find your way around, if you'd rather not scroll.
Additional materials will be made available below on this page at http://www.cs.bc.edu/~alvarez/Algorithms/.
What this course is about
This course focuses on the time and memory requirements of the
algorithms (procedures) that are embodied in computer programs.
We will discuss both analysis of existing algorithms
as well as design of new algorithms with a view toward
achieving efficient computational procedures.
Course topics include divide and conquer design, fundamental data
structures, asymptotic notation, analysis of recurrence relations,
greedy algorithms, search, and dynamic programming.
Prerequisites / Recommended background
The prerequisites for CSCI 3383 are programming
and data structures at the level of CSCI 1101 and CSCI 1102
(including a good grasp
of recursion), and discrete mathematics at the level of CSCI 2243 Logic & Computation (including
familiarity with basic proof techniques and mathematical induction).
A post-calculus course in probability at the level of CSCI 2244 Randomness & Computation is a co-requisite.
Additional background in mathematics and computer science would help
but is not required.
If you have any questions about prerequisites, please contact me.
Grading
The course grade will be based on homework and exams.
If you have any questions, always consult your professor. Violations of academic integrity will be reported to your class dean and judged by the academic integrity committee in your school. If you are found responsible for violating the policy, penalties may include a failing grade as well as possible probation, suspension, or expulsion, depending on the seriousness and circumstances of the violation.
Notes:
Large deviations from the rough schedule below may occur.
See http://cs.bc.edu/~alvarez/Algorithms/ for updates.
Dates/Events | Reading/Homework | Sample Programs/Downloads | Topics |
Aug. 30 - Sept. 3 |
Read chapter 0
Read sections 1.1-1.2 HW1 due Sept. 9 |
Notes on induction |
Introduction
Algorithms Time efficiency Asymptotic notation |
Sept. 6-10
No noon classes on Thurs
|
1.3
HW2 due Sept. 16 |
Euclid's GCD algorithm
|
Modular arithmetic GCD: Euclid |
Sept. 13-17 |
1.4
HW3 due Sept. 23 |
|
Primality Cryptography: RSA |
Sept. 20-24 |
2.1-2.5
HW4 due Sept. 30 |
Notes on divide and conquer |
Divide and Conquer
|
Sept. 27 - Oct. 1 |
chapter 3
HW5 due Oct. 7 |
Notes on depth-first search |
Graphs
|
Oct. 4-8 | 4.1-4.5 | Notes on greedy algorithms |
Greedy algorithms
|
Oct. 11-15
No class on Tu Midterm exam Th Oct. 14 |
|||
Oct. 18-22 |
5.1-5.2
HW6 due Oct. 28 |
Dijkstra visualization (David Galles, U. of San Francisco) |
Greedy algorithms
|
Oct. 25-29 |
6.1-6.6
HW7 due Nov. 4 |
Combinatorial coefficients
|
Dynamic programming
|
Nov. 1-5
|
Dynamic programming
|
||
Nov. 8-12 | HW8 due Nov. 16 | Notes on dynamic time warping |
Dynamic programming
|
Nov. 15-19 | 7.1, 7.2 |
Notes on linear programming
Ford-Fulkerson visualization (Technical U. of Munich) |
Linear programming
|
Nov. 22-26
Class meets Tuesday only
|
7.4-7.5 |
Linear programming
|
|
Nov. 29 - Dec. 3
|
Zero-sum games
NP-hard problems |
||
Dec. 6-10
Last class meeting on Th, Dec 9 CSCI 3383 Final Exam:
|
chapter 8 | Catch up / review |