Giter Club home page Giter Club logo

csci-432-fall2020's Introduction

CSCI 432: Advanced Algorithm Topicss, Fall 2020

This repository is for class materials for CSCI 432 in Fall 2020, taught by Prof. Fasy.

MSU Course Catalog Description: A rigorous examination of advanced algorithms and data structures. Topics include average case analysis, probabilistic algorithms, advanced graph problems and theory, distributed and parallel programming.

From the Instructor: This course is NOT a programming class, and is not structured like the 132 and 232 courses the precede it. In this course, we will do many proofs (especially using induction), and will be writing pseudo-code, not code.

Prerequisites: CSCI 246 (Discrete) and CSCI 232 (Data Structures and Algorithms) are a prerequisite for this course.
In particular, a student enrolled in CSCI 432 should be familiar with sorting and searching algorithms, big-Oh notation, basic recurrence relations, heaps, queues, lists, hash tables, proof by induction and by contradiction, and discrete probability.

Course Outcomes and Objectives

This course introduces students to the analysis and design of computer algorithms. In this course, students will:

  • Analyze asymptotic time and space complexity of algorithms.
  • Describe algorithmic design paradigms (including dynamic programming, greedy algorithms, divide and conquer) and explain when an algorithmic design situation calls for it.
  • Apply methods of analysis (prove correctness, time/space complexity, termination) to new problems.
  • Use and analyze major graph algorithms and data structures.
  • Analyze algorithms from recent research publications.

When and Where?

When? T,H 8:00-9:15 Where? Zoom (please see email for link)

How do I contact you?

The preferred method to ask questions relating to this class is a public post on the group discussion board, or in my office hours.

Office hours: These office hours are times that we are available to meet, and will be held via Zoom (please see email for links). Please email or call (x4804) in advance if you plan to join. This will eliminate waiting (both on your end and on our end).

What is in this repository?

The folders in this repository contain all materials for this class.

  • README.md: the course syllabus

  • hw: homework assignments.

  • lec_notes: Copies of lecture notes not posted publicly elsewhere.

  • slides: Source for my Beamer slides (which only happens occasionally).

The schedule is at the bottom of this Markdown file. If you want to learn more about Markdown, check out this tutorial.

Accessing this Repo

The repository is set as public, so you can access all course materials easily. I suggest creating a fork, so that you can use your fork to maintain your own materials for this class. See the resources section below for forking directions.

Other Course Tools

  • Group discussions, questions, and announcements will be through TODO.
  • Homework will be graded on Gradescope. All homework should be posted both in Gradescope and in D2L.

Grading

Your grade for this class will be determined by:

  • Homework (min 25 / max 50 points)
  • Group Project (min 15 / max 30 points)
  • Exams (min 0 / max 4 points)
  • In-class Exercises (min 10 / max 20 points)
  • Miscellaneous (min 0 / max 6 points)
  • Yes ... that adds up to more than 100! This allows for you to adjust where you put your effort in the class. Hopefully this will help you focus on practicing the skills, and not worrying about the point distribution.
  • Minimum points indicate the minimum points necessary to pass the class.
  • Maximum points indicate the maximum points allowed in that category.
  • The grading for this class is based on a "no grading" policy. The theory here is the more you practice, the better you will become!
  • Homework: All assignments must be submitted by 23:59 on the due date. Late assignments will not be accepted. The submission should be typeset in the template provided. Each homework will be graded on the following scale: incomplete (-1), low pass (+0.5), pass (+1), high pass (+2).
  • Project: Groups will be assigned. You will be creating a video presentation of a "modern" algorithm.
  • Exams: We will give two oral exam questions throughout the semester. You can choose to take one, both, or neither. Grading scale: incomplete (0), low pass (+0.5), pass (+1), high pass (+2).
  • In-class Exercises: Each day that we have groupwork in class, you will get credit: not present in groupwork (-1), low pass (+0.5), pass (+1), high pass (+2). (Note: for the first week, not present in groupwork will be zero points instead of -1).
  • Miscellaneous: Opportunities to earn points by attending colloquia and other events will be announced in class and posted on the course website. To earn the extra credit, you must attend the entire presentation and write a one-to-two page summary and reflection on the presentation(s). For a list of EC assignments, see extra-credit.md. Credit will be: not attempted (0), low pass (+0.5), pass (+1), high pass (+2).

Class Policies

Policy on Class Attendance

Class attendance and participation is required, but attendance will not be taken. However, to submit in-class exercises, you must be in class on the day of the exercise.

Policy on Collaboration

Collaboration is encouraged on all aspects of the class, except where explicitly forbidden. Note:

  • All collaboration (who and what) must be clearly indicated in writing on anything turned in.
  • Homework may be solved collaboratively except as explicitly forbidden, but solutions must be written up independently. This is best done by writing your solutions when not in a group setting. Groups should be small enough that each member plays a significant role.

Zoom Classroom Etiquette

Please come to class prepared by reading and working on homework problems throughout the week. We welcome questions! In the Zoom breakout rooms, we expect that you are actively working on problems. If needed, start your group by recapping what was discussed right before going into the breakout room or during the class perioud before. If something is unclear, ask for a clarification from your classmate. If your group is unsure of what the task is, please ask and do not sit idle!

Withdrawing

After 15 October 2020, we will only support requests to withdraw from this course with a ``W" grade if extraordinary personal circumstances exist. If you are considering withdrawing from this class, discussing this with me as early as possible is advised. Since this class involves a project, the decision to withdraw must also be discussed with your group.

Special Needs Information

If you have a documented disability for which you are or may be requesting an accommodation(s), please contact both me and the office of Disabled Student Services within the first two weeks of class.

Diversity Statement

Montana State University considers the diversity of its students, faculty, and staff to be a strength and critical to its educational mission. MSU expects every member of the university community to contribute to an inclusive and respectful culture for all in its classrooms, work environments, and at campus events. Dimensions of diversity can include sex, race, age, national origin, ethnicity, gender identity and expression, intellectual and physical ability, sexual orientation, income, faith and non-faith perspectives, socio-economic status, political ideology, education, primary language, family status, military experience, cognitive style, and communication style. The individual intersection of these experiences and characteristics must be valued in our community.

If there are aspects of the design, instruction, and/or experiences within this course that result in barriers to your inclusion or accurate assessment of achievement, please notify the instructor as soon as possible and/or contact Disability Services or the Office of Institutional Equity.

Taking a Class during the COVID-19 Pandemic

This class will be held synchronously online. However, you (or your family/friends) might become ill with COVID-19 or something else, which can make even remote attendance difficult. If this happens, please communicate with the instructor as soon as possible to minimize impact on your academic experience. Also, we welcome feedback throughout the semester about what is working well / not working well with the online delivery. Doing so will help this be a better experience for all!

MSU Policies

Academic Integrity

The integrity of the academic process requires that credit be given where credit is due. Accordingly, it is academic misconduct to present the ideas or works of another as one's own work, or to permit another to present one's work without customary and proper acknowledgment of authorship. Students may collaborate with other students only as expressly permitted by the instructor. Students are responsible for the honest completion and representation of their work, the appropriate citation of sources and the respect and recognition of others' academic endeavors.

Plagiarism will not be tolerated in this course. According to the Meriam-Webster dictionary, plagiarism is `the act of using another person's words or ideas without giving credit to that person.' Proper credit means describing all outside resources (conversations, websites, etc.), and explaining the extent to which the resource was used. Penalties for plagiarism at MSU include (but are not limited to) failing the assignment, failing the class, or having your degree revoked. This is serious, so do not plagiarize. Even inadvertent or unintentional misuse or appropriation of another's work (such as relying heavily on source material that is not expressly acknowledged) is considered plagiarism.

By participating in this class, you agree to abide by the Student Code of Conduct. This includes the following academic expectations:

  • be prompt and regular in attending classes;
  • be well-prepared for classes;
  • submit required assignments in a timely manner;
  • take exams when scheduled, unless rescheduled under 310.01;
  • act in a respectful manner toward other students and the instructor and in a way that does not detract from the learning experience; and
  • make and keep appointments when necessary to meet with the instructor.

Drug and Alcohol Policies

Per the Code of Conduct for students, no student may come to class under the influence of drugs or alcohol, as that would not beFostering a healthy, safe and productive campus and community. See Alcohol and Drug Policies Website for more information. In particular, note:

As a federally-funded institution, we must adhere to all federal laws when it comes to alcohol and drug use or distribution. This holds true for marijuana as well. Using or distributing marijuana on or off campus is a violation of our code of conduct even if a student has a medical card or comes from a state in which marijuana is legal or has been decriminalized.

As noted, the University's alcohol and drug policies apply off campus. Using drugs and/or alcohol and returning to your residence hall in a disruptive fashion- either via odor, noise, destruction, etc- can lead to residence life policy and alcohol or drug policy violations. Remember, not everyone wants to hear or smell you.

Resources

Technical Resources

Course Textbook

Schedule

Each week, we assign:

  • Textbook Reading: should be skimmed before class, read after class
  • Additional Readings: additional resources that your classmates have found helpful. If you need more resources, ask!

Week 1 (18,20 August)

Remaining weeks will be posted shortly


This syllabus was created, using wording from previous courses taught by myself, as well as my colleagues. Thanks all!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.