BYU logo Computer Science

Welcome to CS 110 The Joy of Computing

Currently known as CS 201R, sections 1 and 2

Our Team

Instructor - Gordon Bean, CS faculty

Gordon Bean

Instructor - Daniel Zappala, CS faculty

Daniel Zappala

Section Leader - Warda Usman, CS grad student

Warda Usman

TA - Rylee Albrecht, CS undergrad student

Rylee Albrecht

Development TA - Teikn Smith, CS undergrad student

Teikn Smith

Please read the syllabus!

Read the syllabus

What this course is about

  • The joy of computing — programming is fun!

  • How to program
  • How to think in abstractions
  • How to think about the impact of computing on society

This course is for beginners

  • No prior experience required
  • We will go step by step, starting from the basics
  • You will learn with TAs and peers in lab sections
  • You will hopefully make friends — programming is a social exercise

You will be amazed

  • You will do some cool things
    • Partly because it’s easier than you think
    • Partly because computers are powerful
  • You will become powerful
Captain Marvel

Why should you take CS 110?

  • You’ve always wanted to learn to code but have no experience
    • This course is exactly for you!
    • We will help you not to be intimidated by computers
    • You will learn how computers work — no magic!
    • It’s a lot easier than you think
  • You will learn some useful skills
    • Python is powerful, used in many disciplines — natural and physical sciences, math, engineering, business
    • Pretty much every academic needs to handle data and visualize/plot it — Python is your power tool for this
    • In one semester, you’ll learn enough to solve real problems
  • You open a gateway to a lot of exciting courses, both in CS and in other departments
  • You may find you enjoy this!

When you are done, you will be ready to

  • Take CS 111 Introduction to Computer Science
  • Take CS 180 Introduction to Data Science
  • Take CS 260 Web Programming
  • Take classes in your program that require programming experience
  • Write programs for your discipline

Many professors outside of CS will hire a student in their research lab who can program

This is a pilot course

  • That means it is the first time we have taught it, and it is not yet assigned a permanent course number (CS 201R instead of CS 110)

  • We plan to replace CS 142 with CS 110 and CS 111

  • We have made a proposal to the university and are waiting to hear back

  • You get an early experience with our plans for a new curriculum

  • You get to learn how to program in Python (CS 110) instead of C++ (CS 142)

  • Every pilot means

    • We are still working out the details of how the course will be taught
    • We ask you to be patient with us throughout the semester
    • In return, we will be generous if things don’t go as planned

What if this course is too easy?

  • You could take CS 111 instead
  • We have made switching easy — they are at the same time (even the labs)
  • You should try to determine this as soon as possible
  • Talk to us if you are unsure

Course Resources

  • Lab website at
    • all the lecture notes, labs, programming assignments, discussion readings, announcements, etc.
  • Ed
    • ask questions
    • other students, TAs, instructors will answer
  • Canvas
    • turn in assignments, get grades
  • Office Hours
    • ask questions in person

Labs are collaborative

  • Work together with a friend, it’s OK to ask questions, get help
  • Don’t copy code (you don’t learn that way), but ask about concepts
  • Should finish and check off with TA during the lab time
  • Can always finish on your own and check off during office hours

Projects are individual

  • Solve an interesting problem
  • Prove (to us, but more importantly to yourself) that you really do know how to program

Learning focused

  • Lecture on Monday, practice that on Tuesday in lab
  • Lecture on Wednesday, practice that on Thursday in lab
  • Project handed out on Friday, due one week later, covering the same material
  • Ask questions on Ed or in office hours about the concepts in the project

Learning is the goal

  • We are going to give you a lot of code (how could you be expected to learn without us showing you things?)
  • You will be tempted to copy/paste and “just get it working”
  • You’re not done when it is working!
  • You’re done when you understand every line of code you have written

Why have discussions?

  • Society keeps thinking computing solves problems or makes things easier — sometimes! but sometimes it makes things worse!
  • Important to understand the impact of computing / technology on society and be informed about tech policy
    • Should we use AI to determine the length of a prison sentence?
    • What impacts are social networks having on society?)
  • Too many people making policy don’t know anything about the technology (watch a Congressional hearing sometime) — your generation needs to be better prepared
  • Take a break from learning how to program and look at the big picture


An important part of CS 110 is creating a culture of belonging. BYU recently released a statement on belonging and we would love to embody these in our class:

Statement on Belonging

We are united by our common primary identity as children of God (Acts 17:29; Psalm 82:6) and our commitment to the truths of the restored gospel of Jesus Christ (BYU Mission Statement). We strive to create a community of belonging composed of students, faculty, and staff whose hearts are knit together in love (Mosiah 18:21) where:

  • All relationships reflect devout love of God and a loving, genuine concern for the welfare of our neighbor (BYU Mission Statement);
  • We value and embrace the variety of individual characteristics, life experiences and circumstances, perspectives, talents, and gifts of each member of the community and the richness and strength they bring to our community (1 Corinthians 12:12–27);
  • Our interactions create and support an environment of belonging (Ephesians 2:19); and
  • The full realization of each student’s divine potential is our central focus (BYU Mission Statement).

Our commitment to you:

  • We will answer your questions in a caring and helpful manner.

  • We will do our best to show you that computing is a field anyone can be successful in. In other words, there is no “gene” for coding. If you put in the work and see us for help, we are confident you can succeed.

  • We will discuss the impacts of computing on minorities and discuss ways these can be addressed.

If you feel you are lacking support and would like some mentoring, please contact Jen Bonnett at jen [at] and ask about our CSIDE mentoring program. CSIDE is devoted to increasing inclusion, diversity, and equity in the BYU Computer Science Department. All are welcome to our mentoring program, regardless of gender or race.