1. Meetings & staff
  2. Prerequisites
  3. Grading
  4. Course policies
  5. Communication with teaching staff
  6. Textbooks and resources


Students are expected to be familiar with:

  1. Basic probability theory and statistics

  2. Linear algebra

  3. Enough computer science background to be able to understand and reason about algorithms and implement them

Of course, we will introduce some of the relevant prerequisite concepts in the lectures as needed, but knowing the topics will significantly help in understanding the new material. The resources page lists references that may help you get up to speed on these topics.

Officially, the following prerequisites are enforced for undergraduate students:

  1. You should be a full major in the computer science and the computer engineering program,

  2. You should have obtained a C- or better in CS 3500 and CS 3190.


The grades for the course will be based on 6-7 assignments (some of which will be quizzes), one final exam and a project. The different components will be weighted as follows:

Assignments & quizzes 65%
Final exam 10%
Project 25%

Undergraduate and graduate students will be separately curved. Some assignments and the exam may include extra problems only for the graduate students.

Your assignments must be submitted electronically on Canvas by midnight of the due date. Detailed instructions for submission will accompany each assignment. Hand written assignments or printouts will not be accepted or graded.

See the homeworks page for information about submitting programming assignments.

Late policy

All assignments must be submitted by the deadline. We will use the timestamp on Canvas as the submission time. Assignments will be accepted up to 24 hours after deadline, but will be assessed a 10% penalty. That is, if your assignment is late and scores 90, then your actual grade will be 81 = 90 - 9.

Assignments will not be accepted 24 hours after the deadline.

We will be strict about this policy: If the deadline is midnight and you submit the assignment at 12:01 AM, you will face the 10% penalty! This may sound harsh, but we have to draw a line somewhere.

To get the best grades possible, we offer the following advice:

  • You can submit files as often as you like, so always try to submit something before the due date!

  • If you discover a major bug or finish solving a problem within 24 hrs after the due date, and you believe that your new solution is substantially improved over your original solution, then resubmit new files! In this case, you will be assessed the 10% late penalty. But your new solution could earn you a better score, so even with the late penalty you will end up with a higher grade.

Exceptions: All submissions are subject to the late day policy stated here. We understand, however, that certain factors may occasionally interfere with your ability to hand in work on time. If that factor is an extenuating circumstance such as a medical condition, we ask you to provide documentation directly issued by the University, and we will try to work out an agreeable solution with you.

Regrade requests and errors in grading: It is important to us that all assignments are properly graded. If you believe there is an error in your assignment grading, please submit an explanation via canvas within 7 days of receiving the grade. No regrade requests will be accepted orally, and no regrade requests will be accepted more than 7 days after you receive the grade for the assignment.

No double dipping projects across multiple classes

You can not submit the same project to this class and another class that you may be taking at the same time. If you are doing related projects in two different classes, there may be some overlap (e.g. in code libraries, etc.), but they should not be identical. A project that is found to be double-submitted will receive zero credit. If you have questions about this policy, please contact the instructor.

Course Policies

School of Computing Policies and Guidelines

The class operates under the School of Computing’s policies and guidelines. Among other things, linked page provides information about the academic misconduct policy that we will adhere to.

Also see the College of Engineering guidelines for information about appeals procedures, withdrawal procedures, and adding and repeating courses.

Collaboration and Cheating

Collaboration is encouraged; cheating will not be tolerated.

Honor code for this class

You are encouraged to discuss class materials with your peers. If you want you can form study groups because discussions help understanding. You are also welcome to discuss assignments.

However, you must write your own solutions, proofs and code and submit your own solution. Do not copy or ask for assignments from other students or the internet. Do not let someone else copy your submissions either.

If you are caught cheating once, you will receive a failing grade for that submission. If you are caught cheating again, you will fail the class.

For projects, you are free to discuss the project with your classmates, but your work should be your own.

For both assignments and the project, you should cite all sources that you refer to. This includes personal communication, books, papers, websites, etc. Doing so reflects academic integrity.

For the exam, of course, we will allow neither collaboration nor cheating!

The Americans with Disabilities Act

The University of Utah seeks to provide equal access to its programs, services and activities for people with disabilities. If you will need accommodations in the class, reasonable prior notice needs to be given to the Center for Disability and Access. CDA will work with you and the instructor to make arrangements for accommodations. Accommodations cannot be given without paperwork from this office.

University Safety Statement

The University of Utah values the safety of all campus community members. To report suspicious activity or to request a courtesy escort, call campus police at 801-585-COPS (801-585-2677). You will receive important emergency alerts and safety messages regarding campus safety via text message. For more information regarding safety and to view available training resources, including helpful videos, visit safeu.utah.edu.

Addressing Sexual Misconduct

Title IX makes it clear that violence and harassment based on sex and gender (which Includes sexual orientation and gender identity/expression) is a civil rights offense subject to the same kinds of accountability and the same kinds of support applied to offenses against other protected categories such as race, national origin, color, religion, age, status as a person with a disability, veteran’s status or genetic information.

If you, or someone you know, are harassed or assaulted, you are encouraged to report it to the Title IX Coordinator in the Office of Equal Opportunity and Affirmative Action, 135 Park Building, 801-581-8365, or the Office of the Dean of Students, 270 Union Building, 801-581-7066. For support and confidential consultation, contact the Center for Student Wellness, 426 SSB, 801-581-7776. To report to the police, contact the Department of Public Safety, 801-585-2677(COPS).


Personal concerns such as stress, anxiety, relationship difficulties, depression, cross-cultural differences, etc. can interfere with a student’s ability to succeed and thrive at the University of Utah.

For helpful resources, contact the Center for Student Wellness online, or on the phone at 801-581-7776.


It is our intent that students from all diverse backgrounds and perspectives be well-served by this course, that students’ learning needs be addressed both in and out of class, and that the diversity that the students bring to this class be viewed as a resource, strength and benefit. It is our intent to present materials and activities that are respectful of diversity: gender identity, sexuality, disability, age, socioeconomic status, ethnicity, race, nationality, religion, and culture. Your suggestions are encouraged and appreciated. Please let us know ways to improve the effectiveness of the course for you personally, or for other students or student groups.

Communication with Teaching Staff

Don’t be shy if you don’t understand something: come to office hours, send email, or ask questions in class!

We strongly encourage you to post your questions on the class discussion board on Canvas, unless you have a question that you wish to keep confidential. The instructor and the TAs will monitor the forum and will answer questions. Other students may also be able to answer questions on Canvas.

For grading questions, project related issues or simply a more hands-on interaction, we encourage you to attend the office hours or meet the instructor/TAs after class.

Of course, for personal/private questions, do feel free contact the instructor or the TAs by email or in person.

Please note that discussion threads and emails are all considered to be equivalent to the classroom, and your behavior in all these venues should conform to the university’s student code.

Textbooks and resources

See the resources page