Course Syllabus

CS 1030: Foundations of Computer Science

2021 Spring


  1. The Basics
  2. Grading
  3. About CS1030
  4. Schedule Outline
  5. University Policies

The Basics

  • Instructor: Scott Brown
  • Textbook: None. (see the Requirements section for details on what you'll need.)
  • Meeting Times and Locations: As a temporary measure, all Zoom meetings (labs, recitations, etc) will be at this Zoom room: 988 6928 0981
    Generally, where we meet is determined by which section you signed up for:
    Section Time Location
    CS1030-002 We    10:45-11:35
    Mo/Fr 10:45-11:35
    WEB L104
    CS1030-003 Mo/We/Fr 14:00-14:50 Zoom
    CS1030-004 We    09:40-10:30
    Mo/Fr 09:40-10:30
    WEB L104
  • Code of Conduct: Students are expected to be kind to each other, and in this class to generally follow The Platinum Rule: "do unto others, wherever possible, as they would be done by". Students are further expected to abide by the University Code of Conduct.
  • How To CS1030:
    • Use The Canvas Course to keep on track.
    • The Lectures can be watched online at a time convenient to you, but you're expected to keep up with the course schedule.
    • The Labs are meant to be completed as a class during normal class times on Monday and Friday (determined by which lab section you signed up for). You are expected to interact with the course staff and fellow students during labs.
    • The Assignments are due approximately once a week.
    • The Recitations are times for us to review and/or for you to ask questions during normal class times on Wednesday.
  • Communications:


  • Problems: If you are having trouble completing the course assignments, etc, for any reason : Please message the professor ASAP! We are much more likely to be able to work something out if you let us know what's going on early. If you wait until way after something was due to message us, there is generally nothing we can do.
  • Evaluation:
    • Assignments: 50% of grade (~6% each). -10% for the first day (or part thereof) late, and -30% for the second day (or part thereof) late (e.g. worth 90% max if 1 minute late, worth 70% max if 30 hours late, and worth 0% max 48 hours after due date). Your 1 (one) worst assignment is dropped. No makeup (this is what the drop grade is for) except for very good reasons.
    • Exams: 30% of grade (10% each). No makeup except for very, very, very good reasons.
    • Labs: 20% of grade (~1% each). Makeup is fine with some kind of reasons.
  • Misconduct Policy: Labs can be completed as a group. Assignments are individual work (i.e. get help only from course staff, and don't give anyone your code) unless a particular assignment is specifically designated as group work. Exams are to be completed by yourself. In general, the course materials, the lecture recordings and other static resources (e.g. wikipedia) are free game during exams or whenever.
  • Letter Grade Discretization:
    A- B+ B- C+ C- D+ D-
    [100 - 93] (93 - 90] (90 - 86] (86 - 83] (83 - 80] (80 - 76] (76 - 73] (73 - 70] (70 - 66] (66 - 63] (63 - 60] (60 - 0]

About CS1030

  • Credit Hours: 3
  • Requirements:
    • Corequisites: C- or better in (MATH(1060 OR 1080 OR 1210 OR 1250 OR 1310 OR 1311 OR 220 OR 1090) OR Higher Math) OR AP CalcAB score of 3 or better OR AP CalcBC score of 3 or better.
    • Materials: A computer. An internet connection. (optional, but highly recommended: A microphone and a webcam).
    • Time: 6-12 hours per week. This course involves 3 hours of in-class time. You additionally will need to complete assignments, watch lectures, practice skills, and study for exams outside of class. Your mileage may vary.
  • Course Description: Foundations of Computer Science is a course for students who are interested in pursuing a computer science degree but have no background in computing. CS 1030 provides a gentle introduction to the fundamental concepts of computer science. In particular, students learn problem-solving skills and apply them by writing programs in a visual and fun programming environment that is friendly to beginners. Students also study, simulate, and visualize the inner workings of a simple computer.
  • Course Objectives: The following are expected outcomes for a student completing CS 1030:
    • The student will be able to solve (simplified versions of) scientific problems using skills such as following and composing algorithms, as well as, using variables, assignment, selection, repetition, and lists. Furthermore, the student will be able to implement solutions in a graphical programming environment that is friendly to beginners (e.g., Scratch).
    • The student will be able to relate the concepts of data representation, logic gates and Boolean algebra, and digital circuits to the fundamental workings of a Simple Computer (made up of RAM, registers, an ALU, and a control path). Furthermore, the student will be able to “program” the Simple Computer (simulated using the Logisim tool) to solve simple problems in a variety of ways (including direct manipulation of the control path, machine-language instructions, assembly-language instructions, and high-level programming-language instructions).
    • The student will be able to explain abstraction as a crucial mental technique of devising simple models for complicated things by selectively ignoring details. The student will be able to describe abstraction at work in the Simple Computer and in problem-solving techniques.
    • The student will be able to discuss what computer science is, what computer scientists do, and what makes computer science a fun and challenging field. CS 1030 gives students a sampling of what makes computer science an innovative and exciting field as well as preparing them for CS 1410: Introduction to Object Oriented Programming, and the rest of the computer science degree.

Tentative Schedule (by week)

  1. Getting Started Course overview, administrative details, problem solving introduction
  2. Introduction to Algorithms How to follow and compose algorithms, problem-solving strategies
  3. Introduction to Programming How to compose a computer program, solving problems (from algorithm to testing)
  4. Repetition and Selection Repetition via loops, selection via if-else, testing for correctness
  5. Lists and Searching Algorithms Sequential and binary searching algorithms
  6. Procedures in ProgrammingProcedures as a way of abstracting and reusing code
  7. Representing Data: Integers Abstract representations, binary numbers, two’s complement for signed integers
  8. Representing Data: Images, Sound, Floating-Point Numbers, Text Representing color and images, analog vs. digital, representing floats and text
  9. Manipulating Data: Boolean Logic Manipulating bits: why and how, logic gates, boolean algebra, truth tables
  10. Manipulating Data: Circuits Everyday circuits, circuits for addition and selection
  11. A Simple Computer Von Neumann model, data and control paths, machine language
  12. Levels of Abstraction in Programming Assembly language and assemblers, high-level languages and compilers
  13. Limitations of Computing What computers can and cannot do, and why
  14. Transitioning to CS 1410 and Beyond Brief introduction to Java, how to major in Computer Science and Computer Engineering
  15. Course Wrap-Up and Review CS 1030 wrap-up, review for final exam

University Policies

  • 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 this class, reasonable prior notice needs to be given to the Center for Disability Services, 162 Olpin Union Building, (801) 581-5020. CDS will work with you and the instructor to make arrangements for accommodations. All written information in this course can be made available in an alternative format with prior notification to the Center for Disability Services.
  • 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
  • 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 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).
  • Undocumented Student Support Statement. ​Immigration is a complex phenomenon with broad impact—those who are directly affected by it, as well as those who are indirectly affected by their relationships with family members, friends, and loved ones. If your immigration status presents obstacles to engaging in specific activities or fulfilling specific course criteria, confidential arrangements may be requested from the Dream Center. Arrangements with the Dream Center will not jeopardize your student status, your financial aid, or any other part of your residence. The Dream Center offers a wide range of resources to support undocumented students (with and without DACA) as well as students from mixed-status families. To learn more, please contact the Dream Center at 801.213.3697 or visit