Course Syllabus

Welcome to CS 1400!

Welcome to CS 1400: Introduction to Computer Programming! In this course, you will learn how to write computer programs using Python. By the end of this course, you will be able to start with a problem statement and then design, implement, document, and test a Python program that solves the problem. Along the way, you will learn how to think like a computer scientist, and you will learn a number of key ideas from computer science.


Course Information

This course meets three times per week: two class sessions and one lab. You should be registered for a single lab section and the class sessions.

  • Class Sessions: Mondays & Wednesdays, 11:50am - 1:10pm in ASB 220
  • Labs: Tuesdays (time varies) in WEB L226

Course Staff

The course staff (instructor and the teaching assistants) are all eager to help you succeed. However, success in programming comes from time, determination, and care. Expect to be challenged and work hard!

Instructor: Dr. Noelle Brown

Teaching Assistants (TAs): Nathaniel Ray Raharjo, Jason Zamora, Samantha Watrin, Duke Nguyen, Jonathan Thompson, Ryan Krogue, Delia Leonard, Luis Alvarado Labarca

Who to contact? → Registration questions? Contact the academic advisors (course staff do not have access to permission codes). Questions about course concepts or assignments? Visit TA help hours, instructor office hours, or post on Piazza (see the pages under Course Resources). Questions about extenuating circumstances? Email Professor Brown directly at noelle.brown@utah.edu.

Important Dates

There are a number of in-person, paper tests and quizzes for this course. 

  • Midterms: Wednesday, September 25 and Wednesday, November 6 (in class)
  • Final Exam: Friday, December 13, 10:30 am - 12:30 pm
  • Quizzes: September 4, September 18, October 16, October 30, and November 25 (in class)

Tests and quizzes are in-person in the classroom and generally cannot be missed and made-up (see full policy below). It is your responsibility to be available during the tests. If you have testing accommodations, please make sure to respond to the CDA office for scheduling.

Course Goals

CS 1400: Introduction to Computer Programming is the first of two courses that make up our introduction to computer programming. The second course, CS 1410, teaches object-oriented programming using the Java programming language. For many people, CS 1400 will be their first CS course - if you are one of these people, be kind and generous with yourself as you learn a new way of thinking about problem-solving! The course introduces the engineering and mathematical skills required to effectively program computers, as well as the range of issues confronted by computer scientists. A major theme of the course is the role of procedural and data abstraction in decomposing programs into manageable pieces. Students will complete extensive programming exercises that involve the application of elementary software engineering techniques.

This course has a co-requisite of MATH 1050, 1060 or 1080. This means you should be taking or have completed up to this level in math.

CS 1400/1410 or CS 1420? → There are two introductory paths for CS. CS 1400 is part of a two-course sequence. CS 1420 is an accelerated single course. Please carefully consider your background, course load, other demands on your time, and interest in a high-intensity course before choosing CS 1420 over CS 1400/10. The two-course sequence was developed for a reason - to help students be successful in computer science! The belief is that students taking the time for the two-course sequence will be better prepared for the next courses in the CS sequence and that more of these students will do well enough to progress.

🎯 Learning Objectives 🎯

In this course, you will learn how to:

  • use variables, assignment, selection, and repetition to form solutions to simple problems
  • exploit procedural abstraction (non-recursive and recursive methods) to decompose a program into manageable pieces
  • employ data collections and their algorithms to solve problems, especially canonical loop patterns to process arrays and lists
  • incorporate an understanding of creating and using object types, as well as their scope and life cycle, into solutions
  • utilize binary representations, memory models (references, heap, stack), and persistent storage (files) in solving problems
  • leverage the features of an Integrated Development Environment to design, implement, test, debug, and document a complete computer program, given only a problem statement

Class Sessions

Core material will be covered in the class sessions. During class sessions, the course instructor will describe key ideas and terms, demonstrate programming concepts, and ask for class participation to assess understanding. It is critical to attend the class sessions and to actively engage in the material.

Class sessions are in ASB 220. You can see this on the campus map, where it is listed as Skaggs Biology Building.

Location of ASB. It is located East of the Campus Store.

All class sessions will be in person. The instructor will make a reasonable effort to record class sessions but does not guarantee that all classes will be recorded. Recordings are not intended as a replacement for attending class but are intended as an aid for review. Recordings may fail for various technical reasons and will not be redone. 

Lab Sessions

Lab sections are smaller, TA-run sessions that allow students to apply concepts from lectures and readings in guided activities. The lab session is a place for you to see if you can translate the material learned in lectures to small programming exercises while getting feedback from your peers and course TAs. Lab attendance is required. Labs are in WEB L226. Students are expected to have a laptop to use in lab (see the SoC laptop policy). The library has machines available to borrow for a semester. Please talk to the course instructor if you have issues accessing a machine.

Student Success

This section was adapted from CSE 123 at the University of Washington, used with permission.

All students are welcome, respected, and valued in CS 1400. We strive to create a challenging but supportive learning environment that is conducive to learning for all students. If at any time you feel that you are not experiencing a supportive environment or you are made to feel uncomfortable, disrespected, or excluded, please report the incident to the course staff so that we may address the issue and maintain a supportive learning environment.

Further, while our focus is providing an excellent educational environment, our course does not exist in a vacuum - life happens! Our ultimate goal as a course staff is to provide you with the ability to be successful, and we encourage you to work with us to make that happen. If you have any unforeseen circumstances that arise during the course, please do not hesitate to contact the instructor to discuss your situation. Additionally, while some amount of “productive struggle” is healthy for learning, you should ask the course staff for help if you have been stuck on an issue for a very long time.

Course Materials

Canvas: The class website is the Canvas course available through CIS. It will be updated throughout the semester with the class schedule, lesson notes and recordings, lab exercises, assignment specifications, and much more. Please regularly look at the course weekly modules for new materials.

What to bring to class: Interactive class activities will be done during class sessions. A device with Internet access is needed during class. You should also be prepared to write small programs on paper and to share your thoughts with the class.

Textbook: A free interactive ebook will be used. Please see the page under Course Resources for creating an account on our course ebook.

Software: All programming in CS 1400 is in Python, using the PyCharm programming environment. PyCharm can be installed on your personal computer and is also available for your use on the College of Engineering’s Windows computers (WEB 210) and through the CADE remote desktop. Both Python and PyCharm are platform-independent. Instructions for installing both on your personal computer are available on a Canvas page under the Course Resources module.

New students should create a College of Engineering lab account.

Required Course Work

Programming Assignments

Longer, weekly programming assignments will assess your proficiency with the skills and concepts covered in class. While programming assignments will typically emphasize content introduced shortly before their release, they will often integrate content from earlier in the course as well. The instructions for each assignment and its due date will be posted on Canvas. It is the student’s responsibility to ensure the successful and timely submission of each programming assignment — start early and follow the instructions carefully. Corrupted or missing files will not be grounds for extensions. Double-check your submissions, and save a digital copy of all of your work. Many assignments will be submitted through the Gradescope system, which provides some basic checking and testing. Students should review the results of this testing and use it to make sure the assignment is submitted properly and working.

Late Assignments: Assignments turned in after the due date and time receive an immediate 10% deduction of the assignment value (so 10 points for an assignment worth 100 possible points) up to 24 hours after the due date. After 24 hours, the deduction increases to 20%. Two days after the due date, the submission system closes and the score becomes 0%. There is not an option to, for example, submit late assignments at the end of the semester for credit.

Longer-term issues should be discussed with the instructor - we are not trying to fail students! The Dean of Students is also a good office to contact if there are longer issues impacting your performance during the semester. 

Late Passes: Every student gets two late passes to use during the semester. A single late pass forgives the one or two day late penalty for one assignment. It does not extend the assignment past the two day late period. Late passes will be automatically applied to late assignments and tracked in the Canvas gradebook. Students cannot decide to shift a late pass from one assignment (for example, where a pass was used on a 24 hour late assignment) to another (a later assignment that was 40 hours late). A late pass can only be applied on a pair submission when both members of the pair have an available late pass.

Pair Programming: For many assignments, you will be allowed to work with a partner. This is not like a group project where different tasks for the assignment might be split up between the team. Instead, if you work with a partner, you must schedule time to work together on the same part of the assignment. The basic requirement is that both teammates are working together for all the code and other materials submitted. This can be done by sitting next to a single computer while one person types and the other makes suggestions (and those roles should be switched at regular intervals). It can also be done through a shared video session while one person shares their screen and types, while the other gives ideas. It cannot be done by sending versions back and forth by email (or other similar communication) or by working on different sections of the assignment - even if you are working in the same space. Each member of a pair is responsible for knowing the details of the submitted work and knowing that each member of the team participated in all parts of producing the submitted work.

Point RecoveryProgramming assignments are an excellent tool for learning. Your grade on these assignments should not be viewed solely as a final score but as an opportunity to identify areas for improvement. To support this learning process, you have the opportunity to recover points (up to 3% of the total assignment value) on each programming assignment by demonstrating that you have reviewed your feedback and are actively using it to learn.

To recover points, follow these steps:

      1. View Feedback: Assignments are typically graded in the Gradescope system. You will be able to see general comments and deductions applied in the grading rubric. You may also have text comments added to the submission file. An automated testing system (the 'autograder') will also provide feedback on code correctness. You should review all of this feedback. 
      2. Attend TA Help Hours: Visit TA help hours within one week after grades for a programming assignment are published. You may meet in person or on Zoom as scheduled in the TA help hours document (see the Course Resources module). If the assignment was submitted with a partner, both must attend together.
      3. Discuss Assignment Feedback: Explain to the TA the feedback you received on aspects of the assignment. Then, describe how you would improve your assignment based on this feedback. If you're unsure about any part of the feedback, you can ask the TA for clarification and guidance.
      4. Request Point Recovery: After discussing the assignment with the TA, let them know that you would like assignment point recovery. The TA will then add up to 3% to the existing assignment score. The changes to the score should update in Canvas at the end of the one week recovery period.

Additional details:

      • The point recovery allows you to regain up to 3% of the total possible points for the assignment. For example, if an assignment is worth 100 points, you can recover up to 3 points. 
      • The amount of points recovered will be based on:
        • coming prepared by reviewing feedback
        • having a good discussion with a TA
        • proposing improvements to the assignment.
      • This recovery opportunity is available only within one week of receiving your assignment grade and can only be used once per assignment. After this period, point recovery for that assignment will no longer be available.
      • This is the only form of "extra credit" available in the course.

Electronic Textbook Exercises and Participation

There will be weekly readings and online programming exercises through the free online course ebook. These exercises are critical practice for material covered during the week. There will also be problem-solving exercises completed in groups during class for credit. There may be a few other small activities that can earn participation credit. Several scores will be dropped to accommodate short-term issues you may be having.

Lab Exercises

Every Tuesday, students complete a lab exercise to review the material covered recently in class or to prepare for an upcoming assignment. Often, a Canvas quiz accompanies the lab exercise and is completed for credit. Two lab scores will be automatically dropped to allow for issues you may have in attending the labs. To handle small issues, you can attend a different lab section than the one you are registered for, but this should not be a long-term practice. 

Quizzes

Quizzes will be given during many weeks when there is not a test. See the "Important Dates" section at the top of this syllabus for the quiz dates. Quizzes will typically be given during the last 20 minutes of the lecture period. One quiz score will be dropped.

Exams

Testing will consist of two midterms and a final exam. Exams are given in person in the regular classroom (or sometimes in an extra room). You will need to show your university ID to take a test. See the "Important Dates" section at the top of this syllabus for the exam dates. In general, make-up opportunities for exams will not be granted except for cases of a documented medical emergency, official University of Utah excused activities, or extenuating circumstances. In such cases, please email the instructor as soon as possible. 

Midterm Score Replacement: Tests are used to assess your understanding of course material. The test scores form a large portion of the overall grade. To aid in recovering from a poor midterm exam, the final exam will be structured in several parts with some parts covering the material from earlier midterm exams. Students who perform better on any final exam portion corresponding to an earlier midterm will be able to replace the lower midterm score with the score from the portion of the final exam corresponding to that midterm. All the parts of the final are used to compute the final exam score. This is the only form of redo attempts for exams.

During the semester, if you score poorly on a test, do not give up. You should discuss the test with the course staff. Consider if there are things you can do to improve your preparation for future tests. Put effort into preparing for the final exam and you can recover from that earlier midterm score.

Getting Help from Course Staff & Peers

This section was adapted from CSE 123 at the University of Washington, used with permission.

Having questions or getting stuck on something is entirely expected in the learning process. If you find something challenging with your studies, that is a sign you are learning! Learning is not something that you need to do alone, though! In fact, connecting with your peers or asking a member of the course staff for help can add extreme depth to your knowledge.

Synchronous Help (Help/Office Hours): One place to go to get help is our Help/Office Hours hosted throughout the week. This is a great place to go if you want to review a particular course concept, work on a practice problem with the help of a TA or your peers, or get help on a programming assignment if you are running into difficulties.

See the "Getting Help from Course Staff" page under Course Resources for the help/office hour schedules. During TA help hours, use the TA Queue (details on the "Getting Help from Course Staff" page) to alert the TA on duty that you have a question. TA help hours are normally held in the CADE lab - please see the Course Resources page for more information.

💡Tip → A common misconception is that you can only go to help/office hours with specific homework questions. That is not true! If you have any questions about course concepts (e.g., from class that day), you are super encouraged to go work on that concept with a member of the course staff during help/office hours! Getting help with a concept earlier, when you first feel unsure, is much better than saving it until you need it on the homework.

Asynchronous Help (Piazza): With a class of our size, directly emailing a member of the course staff with questions about course concepts or assignments is not recommended. There are many of you and only a few of us, so if you email one person directly, we can’t make a guarantee how quickly we can respond! To alleviate this one-on-one communication via email, we have a course discussion board through Piazza (linked on the Canvas course navigation menu) that will be a much more lively place for discussion and a way to make sure you are helped more quickly. The message board is set up so that all of the course staff can help you, which will make it more likely for you to receive a quicker response! See the "Course Communication" page for more details and tips for using Piazza.

For sensitive matters that you only want to discuss with Professor Brown, you can instead email her if that makes you feel more comfortable. Note that the response time for the instructors’ email is longer than posting on Piazza, and, in general, Professor Brown will respond to emails between 9:00 am and 5:00 pm, Monday through Friday. Messages received outside of these hours may not receive a response until the next business day. 

Advice for Success

For most of you, this will be your first class in computer science. Here is some advice on how to approach this class such that you will have the best chance for success:

  • Concentrate and actively participate in class sessions. The concepts that are presented in class sessions and lab are what are important; you will be able to find the details in the assigned reading. Don't write down everything that is said, and then try to figure it out later. Instead, think about what is being said. Try to answer all the questions that are asked, even if only in your head. Think about why the material is being presented - if you do not see the connection to past materials or assignments, ask for help.
  • Participate in the lab sections. You will be working at a computer in a room with at least one TA and a small number of other students. Take advantage of the computer by trying things out. That way, you will discover the things that you do not understand in a setting where there are plenty of other people (TAs, as well as other students) to help you.
  • Respect the assignments. Some students expect that if they have done the reading, concentrated in class sessions, and participated in the labs, then the assignments will be straightforward. What these students do not understand is that the assignments are designed to challenge you by requiring that you apply the concepts you have learned to new situations. The assignments will be your most important learning experience in the course; they will rarely be straightforward. You should start each assignment as soon as the specifications are posted. This way, you will have time to take a break when you get stuck.

Beginners are often surprised by the amount of human effort that must go into designing, writing, and testing a program. Complaints from students about the amount of time required by introductory computer programming courses are universal. You should expect to spend at least 8 hours outside of class every week (according to University guidelines) reading, studying, and designing/writing programs. Some of you will spend less, but many of you will spend even more time. Please keep this in mind when setting up your schedule for the semester!

Grades

Final Course Grade

The weighting for the final grade is:

Programming Assignments: 30%
Midterms: 25%
Final Exam: 20%
Quizzes: 15%
Labs: 5%
Ebook and Participation: 5%

It is important to note that, under this system, it is your work that is assessed as a proxy for your knowledge. This is an imperfect system, but is necessary to manage a course of the size and scale of CS 1400. It is in your best interest to ensure that your work accurately reflects your proficiency by being careful and diligent in following instructions, meeting deadlines, and understanding requirements.

Your weighted, cumulative course percentage score is turned into letter grades using the following scheme:

[100-94] A
(94-90] A-
(90-87] B+
(87-84] B
(84-80] B-
(80-77] C+
(77-74] C
(74-70] C-
(70-67] D+
(67-64] D
(64-60] D-
(60-0] E

where [ ] means including that number, and ( ) means up to but not including. 

Regrades

Students who wish to appeal a score on an assignment, a lab, a quiz, or a test must do so within one week of receiving the score. See the page under Course Resources in Canvas for the regrade process.

Dropped Scores

We understand that you may end up missing a deadline, a class session, or a lab session for a reason that is not granted an exception. Therefore, to allow for such an occurrence, various activities allow dropped scores:

  • The lowest two scores on lab exercises are dropped.
  • Three ebook and participation scores will be dropped.
  • One quiz score is dropped.

No programming assignment, midterm, or final exam scores are dropped. 

Academic Misconduct and Collaboration

Relying on shortcuts in school can hinder your learning, leading to gaps in your understanding and knowledge. A weak foundation can impact your future studies and career, where a solid grasp of the material is crucial.

Academic honesty reflects the trust (or the lack thereof) between students and teachers. We hope that, when you are struggling, you will take advantage of the resources and policies that we have provided (e.g., consulting course resources, posting on Piazza, attending help/office hours, using your late passes, taking advantage of the point recovery system, and using the midterm score replacement option) rather than taking shortcuts and resorting to dishonest conduct.

Policy

It is expected that students comply with University of Utah policies regarding academic honesty, including but not limited to refraining from cheating, plagiarizing, misrepresenting one’s work, and/or inappropriately collaborating. This includes the use of generative artificial intelligence (AI) tools without citation, documentation, or authorization. Students are expected to adhere to the prescribed professional and ethical standards of the profession/discipline for which they are preparing. Any student who engages in academic dishonesty or who violates the professional and ethical standards for their profession/discipline may be subject to academic sanctions as per the University of Utah’s Student Code: Policy 6-410: Student Academic Performance, Academic Conduct, and Professional and Ethical Conduct.

Plagiarism and cheating are serious offenses and may be punished by failure on an individual assignment, and/or failure in the course. Academic misconduct, according to the University of Utah Student Code:

“...Includes, but is not limited to, cheating, misrepresenting one’s work, inappropriately collaborating, plagiarism, and fabrication or falsification of information…It also includes facilitating academic misconduct by intentionally helping or attempting to help another to commit an act of academic misconduct.”

For details on plagiarism and other important course conduct issues, see the U's Code of Student Rights and Responsibilities and the SoC Academic Misconduct Policy.

Collaboration

Many courses ask you to work independently on code. In this course, you are encouraged to work with a partner on programming assignments, and to work with others on activities like labs and in-class exercises. 

During quizzes and exams, you are not permitted to consult with others or use external resources to ensure that your grades accurately reflect your own understanding and mastery of the course material.

On programming assignments, the work you submit must be predominantly and substantially your own (and your partner's, should you choose to work with one). This means you are expected to:

  • Write Your Own Code: You must write code yourself or with your partner. Using AI tools to generate or modify code is not permitted, as this will not help you learn the foundational programming concepts we intend to teach you in the class. However, you may use basic features of your development environment, such as autocompletion for variable names and functions.
  • Avoid External Code: You may not copy or refer to code from the internet that is related to the assignments. You may use general tutorial resources to review basic Python statements and concepts. However, you may not search for or use solutions to specific assignment problems.
    • A good rule of thumb for conforming to this policy is that, if you seek out outside resources or help, search for examples or resources that are not directly tied to the course or the assignment. For example, searching for “how to split a string” or “how to add an element to a list” is likely acceptable. Searching for "CS 1400 Assignment 1 solution” or directly copying and searching for the instructions from the assignment is not.
    • In addition, the more code you directly copy, the more likely you are to violate the policy. Utilize outside resources to help you understand the concepts necessary to write your own code rather than directly including outside code in your work.
  • No Sharing or Copying: You may not copy or view code from anyone outside your assignment partner. Additionally, you are not allowed to share your code with others to view or copy. Submissions are routinely checked by the course staff for signs of unauthorized collaboration. 
  • Collaboration: If you choose to work with a partner on programming assignments, all work must be done collaboratively and together. You cannot claim credit for work on an assignment that you did not substantially contribute to. Every student is responsible for understanding all parts of the submitted work and should be able to explain and discuss the code they submit.

Cheating is: sharing written or electronic work either by copying, retyping, looking at, or supplying a copy. Cheating is not: discussing concepts, answering questions about concepts or clarifying ambiguities, or helping someone understand how to use the class tools and software. When in doubt, we encourage you to contact the course staff proactively for clarification. 

Any student found cheating may fail the entire course and receive a misconduct sanction in the School of Computing. A student with two sanctions will no longer be able to take SoC courses. 

Course Climate & University Resources

Our goal is to support all students to succeed in our course. The University of Utah has a number of offices to help you be successful. Please look over this collection of resources.

Americans With Disabilities Act (ADA)

Your experience in this class should not be negatively affected by any disabilities that you may have. The University of Utah seeks to provide equal access to its programs, services, and activities for people with disabilities.

All written information in this course can be made available in an alternative format with prior notification to the Center for Disability & Access (CDA). CDA will work with you and the instructor to make arrangements for accommodations. Prior notice is appreciated. To read the full accommodations policy for the University of Utah, please see Section Q of the Instruction & Evaluation regulations.

In compliance with ADA requirements, some students may need to record course content. Any recordings of course content are for personal use only, should not be shared, and should never be made publicly available. In addition, recordings must be destroyed at the conclusion of the course.

If you will need accommodations in this class, or for more information about what support they provide, contact:

Center for Disability & Access

 801-581-5020
 disability.utah.edu
 162 Union Building
 200 S. Central Campus Dr.
 Salt Lake City, UT 84112

Safety at the U

The University of Utah values the safety of all campus community members. You will receive important emergency alerts and safety messages regarding campus safety via text message. For more safety information and to view available training resources, including helpful videos, visit safeu.utah.edu.

To report suspicious activity or to request a courtesy escort, contact:

Campus Police & Department of Public Safety

 801-585-COPS (801-585-2677)
 dps.utah.edu
 1735 E. S. Campus Dr.
 Salt Lake City, UT 84112

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 has been harassed or assaulted, you are encouraged to report it to university officials: 

Title IX Coordinator & Office of Equal Opportunity and Affirmative Action

 801-581-8365
 oeo.utah.edu
 135 Park Building
 201 Presidents' Cir.
 Salt Lake City, UT 84112

Office of the Dean of Students

 801-581-7066
 deanofstudents.utah.edu
 270 Union Building
 200 S. Central Campus Dr.
 Salt Lake City, UT 84112

To file a police report, contact:

Campus Police & Department of Public Safety

 801-585-COPS (801-585-2677)
 dps.utah.edu
 1735 E. S. Campus Dr.
 Salt Lake City, UT 84112

If you do not feel comfortable reporting to authorities, the U's Victim-Survivor Advocates provide free, confidential, and trauma-informed support services to students, faculty, and staff who have experienced interpersonal violence.

To privately explore options and resources available to you with an advocate, contact:

Center for Student Wellness

 801-581-7776
 wellness.utah.edu
 328 Student Services Building
 201 S. 1460 E.
 Salt Lake City, UT 84112

Student Names & Personal Pronouns

Class rosters are provided to the instructor with the student’s legal name and “Preferred first name” (if previously entered by you in the Student Profile section of your CIS account). Please let the instructor know of any name or pronoun changes (and update CIS) so we can help create a learning environment in which you, your name, and your pronouns will be respected. If you need assistance getting your preferred name on your UIDcard, please visit the LGBT Resource Center Room 409 in the Olpin Union Building, or email bpeacock@sa.utah.edu to schedule a time to drop by. The LGBT Resource Center hours are M-F 8am-5pm, and 8am-6pm on Tuesdays.

Student Wellness

Personal concerns such as stress, anxiety, relationship difficulties, depression, cross-cultural differences, and more 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 or call 801-581-7776.

Veterans Center 

If you are a student veteran, the University of Utah has a Veterans Support Center located in Room 161 in the Olpin Union Building. Hours: M-F 8-5pm. Please visit their website for more information about what support they offer, a list of ongoing events, and links to outside resources. Please also let the instructor know if you need any additional support in this class for any reason.

Learners of English as an Additional/Second Language

If you are an English language learner, please be aware of several resources on campus that will support you with your language and writing development. These resources include the Writing Center, the Writing Program, and the English Language Institute. Please let the instructor know if there is any additional support you would like to discuss for this class.

School of Computing Policies

Please read through the SoC undergraduate handbook.

College of Engineering Policies

Please read through the CoE policies on appeals, adds/drops, etc.

Behavior in the Classroom 

All students are expected to maintain professional behavior, according to the University of Utah Student Code. Students should read the Code carefully and know that they are responsible for the content. 

Students are expected to engage with the instructor and classmates during class sessions. Students are permitted to use a laptop or mobile device to take notes. Use of a laptop or mobile device for any other purpose is not permitted, and students who do so may be asked to leave the classroom. While you may consider it a right to casually browse the web, engage in social media, or play games during class sessions, such activity is very distracting to others (especially in a crowded classroom) and is therefore not permitted.

Classroom behavior is important. If you wish to talk to another student during class sessions, please leave the classroom. If you receive a phone call, please leave the classroom. You may be singled out and asked to be quiet if you are disrupting the learning environment.


This syllabus is not a contract. It is meant to serve as an outline and guide for your course. Please note that your instructor may modify it to accommodate the needs of your class.