Handy links:
Course Description
Techniques for design of efficient algorithms. Methods for showing lower bounds on computational complexity. Particular algorithms for sorting, searching, set manipulation, arithmetic, graph problems, pattern matching.
Course Goals
CSE 421 is an introduction to algorithms. By the end of this course, you will be able to:
- Model word problems as computational problems.
- Determine an appropriate algorithm design paradigm for a new problem.
- Design an algorithm using a variety of algorithm-design paradigms (including greedy algorithms, divide and conquer, dynamic programming, flow modeling, and others).
- Prove that your algorithm produces the correct answer.
- Reduce between a known problem and a new problem (for showing hardness or for reusing existing algorithms)
- Identify and cope with computational problems that are infeasible.
- Consider the implications of modeling decisions in the real world.
Eligibility
You should take this course only if
- You have credit for CSE 312 or equivalent
- You have credit for CSE 332 or equivalent
- You are a CSE major
This Website |
Central repository of course information and content including: syllabus, schedule, file hosting, readings, assignment writeups, etc. |
Canvas |
Linking to all of the other tools, lecture recordings, roster maintenance, sample solutions |
Ed Message Board |
Course content and policy questions |
Gradescope |
Homework submission and grading |
What to expect in this course
In the opinion of this instructor, an algorithms course should serve to:
- introduce students to particular noteworthy and/or widely-used algorithms, and
- provide opportunity for students to hone their skill in developing and justifying correct and efficient algorithms.
Since developing a skill is a much more substantial undertaking than understanding prior work of others, the majority of your homework time will be spent on developing that skill. This will be at times uncomfortable, occasionally frustrating, but hopefully always fun and valuable in retrospect. I have a few guidelines/suggestions for how you can get the most out of this course:
- Follow the instructions in the assignments. I’ve been a student before, and I understand the dizzying experience of learning something brand new. For this reason, I do not ask trick questions that are specifically intended to mislead you. If a question seems misleading, then most likely either there’s something about the instructions or the content that you’re missing, or else I made an error in drafting the assignment. In either case, the best thing to do is ask!
- Think carefully and precisely: While I will not purposefully mislead you, I may ask questions that are specifically designed to expose and correct a flawed intuition or common misconception. To ensure your solutions do not fall into these traps, try and be as careful and precise with your explanations as possible, try not to rely on intuition.
- Don’t expect homework to match lecture/section perfectly: Lecture and section experiences are designed to introduce topics/concepts/strategies, and show exmples of how they operate. To maximize the future usefulness of this course’s content, I selected topics whose applications are broad, and try to demonstrate that breadth through a combination of lecture, section, and homework. Almost always, I will tell you which concepts will be most helpful in your solutions. It may not be obvious how or why that concept is relevant, but I promise it is. The reason for this approach is that your assignments in this course will give you experience stretching what you’ve learned in a guided way. With that experience you will be better prepared for solving future problems when that guidance is absent.
What to expect in office hours
Instructor and TA office hours will be available to assist you in understanding course concepts and applying those concepts to your assignments. Office hours should never be used as a substitute for your own learning or for your own earnest effort. As such, the amount of assistance the course staff will provide should correlate with the amount of progress you’ve made and understanding you possess. In short, the more work you’ve done and the more understanding you have demonstrated before arriving to office hours, the more precise the help we will provide. If you’re just beginning to solve the problem or are missing some concept then the help given will be more conceptual in nature.
Our TAs are critical to the operation of this this course, and are responsible for a number of activities (office hours, grading, staff meetings, leading section, personal prep, etc.). Because of this variety of tasks they are involved in, office hours is a limited resource. As such, we ave some expectations in place designed to most equitably provide office hours to students in the course:
- When there is a queue in office hours, we will limit each student-TA interaction to addressing just a single question. To ask multiple questions you will need to re-enter the queue. The reason for this policy is to help as many students as quickly as possible, since after a first round of assistance you will have an opportunity to make more progress on your own before your turn comes up again. I recommend arriving prepared with the question that is your biggest
blocker
to progress.
- The questions we answer must be precise and concept-related. We will not acquiesce requests for hints or other such open-ended questions. If you are
stuck
and unsure of how to proceed, you might instead share what progress you’ve made, what you’re stuck on, and then ask a question related to a potential next step.
- We will also not be able to verify answers in office hours. If you are uncertain of an answer then I would recommend asking a related question. For example, you could perhaps consider some consequence of your solution and ask about that.
- For clarification questions or high-level conceptual questions, consider using the Ed Message Board first. Your question may already be answered there, and even if not then you may get an answer faster compared to going to office hours. If what you ask is something that would be more effective to discuss in office hours, we’ll let you know that, too!