-
Notifications
You must be signed in to change notification settings - Fork 18
Create CS473.md #207
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
xavierrouth
wants to merge
1
commit into
main
Choose a base branch
from
xavierrouth-patch-1
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Create CS473.md #207
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,74 @@ | ||
| --- | ||
| tags: | ||
| - Theoretical computer science | ||
| --- | ||
| # CS473 | ||
|
|
||
| CS473 is a really hard algorithms course. CS473 is an algorithm course aimed at advanced undergraduates and graduate students in computer science and related disciplines. The course is officially cross-listed as MATH473 and CSE414. | ||
|
|
||
| ## Content Covered | ||
| The course covers a wide rang eof algorithm design and analysis techniques. | ||
| - Fast Fourier Transform | ||
| - Advanced dynamic programming | ||
| - Randomized algorithms | ||
| - Hashing, filtering, and streaming algorithms | ||
| - Optimization: Maximum flows minimum cuts, Linear programming | ||
| - NP-hardness and related lower bounds | ||
| - Approximation algorithms | ||
|
|
||
| ## Prerequisites | ||
|
|
||
| - [CS374](./CS374A.md) or [ECE374](../ECE%Course%Offerings/ECE374B.md) | ||
|
|
||
| You should be confident in skills taught in CS173 (induction) and CS225 (graphs and recursive alogirhtms). | ||
|
|
||
| - (Recommended) [ECE313](../ECE%Course%OFferings/ECE313.md) or equivalent probability course. | ||
|
|
||
| ## When to Take it | ||
| - If you are an undergraduate who has taken CS374, you are in the right place! Welcome! | ||
| - If you are an undergraduate who has not taken CS374 or an equivalent course, you are in the wrong place. You really do need to take CS 374 first. | ||
| - If you are a graduate student in computer science or a related discipline, you are in the right place! Welcome! | ||
| - If you are a graduate student without a strong undergraduate background in computer science, you might still be in the right place. Welcome! Past experience suggests that a strong background in proof-based mathematics is more important for success in this class than programming experience. If you have any concerns, please talk to Jeff or Makrand as soon as possible. | ||
| - Finally, if you want an easy A, you are probably in the wrong place. | ||
|
|
||
| ## Course Structure | ||
|
|
||
| Course structure varies slightly by semester, for up to date or historical information, check the Instructors subsection. | ||
| ### Lecture | ||
|
|
||
| CS473 usually has lecture on twice a week for 75 minutes. Attendance is optional and lectures are recorded. Some students prefer to watch Professor Jeff Erickson's CS374 lecture videos instead, which are available on youtube, and listed in [Resources](#resources). | ||
|
|
||
| ### Homework | ||
|
|
||
| CS473 has a homework assignment during each non-exam week, which students may submit in groups of up to three people. Assignments consist of 3-4 problems and can be difficult, so it is beneficial to start early. Typically, external resources are allowed but must be cited properly. There are usualyl around 11 homeworks per semester. Although you can only submit homeworks in groups of three, you may still work with others and use any outside source, as long as you cite it. This means you can talk with other groups about homework solutions, as long as your group writes your own solutions in your own words. | ||
|
|
||
| ### Exams and Grading | ||
|
|
||
| CS473 has two midterms and one final, and typically does not curve exam scores. Each midterm is worth 21% and the final is worth 30%. The remainder comes from homework scores (one GPS is equal to one homework problem). The lowest 4-7 (dependent on professor) homework problem scores over the semester are not included in grade calculation. The cutoffs for the letter grade are slightly lower than standard (e.g. >=90 for A, >=85 for A-, >=80 for B+, etc), and the final letter grade is curved based on the mean and standard deviation. | ||
|
|
||
| ## Instructors | ||
|
|
||
| The instructors for CS473 rotate between CS theory staff (course websites linked), recently this has been: | ||
| - Timothy Chan: https://courses.grainger.illinois.edu/cs473/sp2025/ | ||
| - Jeff Erickson co-teaching with Makrand Sinha: https://courses.grainger.illinois.edu/cs473/fa2024/staff.html | ||
|
|
||
| ## Course Tips | ||
|
|
||
| It is important to work on homework assignments as a group, with others you work well with. Some groups prefer to solve problems together, while others prefer to break up the problems between members. Whichever approach you take, make sure to understand the solutions to every homework problem, because they may contain techniques that will be useful on exams. | ||
| Using LaTeX is strongly recommended, at this point if you are taking this class, you should probably know how to use overleaf and write LaTeX. | ||
|
|
||
| Office hours are very helpful, you will find lots of other students at office hours which you can openly discuss approaches to homework questions with. TAs or professors will usually go over the general idea of the homework problems and provide useful hints. Q/A platform (Edstem, Discord) is also important since course staff will answer questions and make announcements related to the course. | ||
|
|
||
| The course is usually curved generously, specific cutoffs can be found on the course websites. Do not feel discouraged or dissapointed if the first exam or few homeworks do not go as well as you are used to doing. You may still end up with an A or B in the course. | ||
| ## Life After | ||
| Blargh | ||
|
|
||
| ## Infamous Topics | ||
|
|
||
| - Randomized Algorithms: If you don't have a strong probability background, you may find this section of the course (and midterm 2) quite difficult. | ||
|
|
||
| ## Resources | ||
|
|
||
| - [Professor Erickson's Textbook](https://algorithms.wtf) | ||
| - [Professor Erickson's Lectures](https://www.youtube.com/watch?v=A289028I8tc&list=PL0v718LJg-7_4Zwx3CE7kZ398mhlB2TqF) | ||
| - [LaTeX DFA generator](https://madebyevan.com/fsm/) (especially useful on the first three homework assignments) | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Either remove this section or complete it. Best if we don't leave Blargh on the wiki