Ryan Farrell

Virtual Office Hours (via Zoom): By appointment

Teaching Assistants

Tylan McKinney

Virtual Office Hours (via Zoom): Tu 1-3PM, Th 12-2PM, Sat 10:30AM-12PM (contact beforehand for Sat.)

Meeting Time/Place

3:30-4:45 MW
(on zoom)


Course Description

This course has two primary goals:

Learning Objectives

Text & Reading

There is one required textbook for Coding Interview Prep:

and one recommended one for Competitive Programming:

We will read parts of "Cracking the Coding Interview" and work some problems from it as outlined in the course schedule. You are responsible for reading the material for a given day prior to that day's lecture/class.

Attendance & Participation

Class attendance and participation are expected. Your attendance and participation guarantee you a better learning experience. You are unlikely to be successful in the course, but more importantly, in competitions or coding interviews without participating and putting in the needed time practicing.


Most of the coursework will be writing code to solving problems. Each week there will be a set of assigned problems to complete on websites such as HackerRank, LeetCode, and Kattis. Some of these problems will be done/discussed in class, others you are expected to do outside of class.


This course will not have traditional sit-down written exams. Students will instead complete problem-solving/coding exercises during scheduled programming/competition blocks. Some of these competitions will be here at BYU, others will take place online.


Grading will be weighted approximately as follows:

30% In-class Problems (Participation)
50% Out-of-class Problems
20% Final Programming Problems (must pass to pass the course)

These propotions may be adjusted based on relative time spent and relative difficulty, but know that all are important and therefore contribute toward your grade. Also know that your grade is partly based on the time you put in and partly on improving your skills.

Late Policy

Late work is not accepted. In my experience, one key to success, in this class, in our profession, and in life in general, is being organized and meeting deadlines. The no-late-work-policy is in large part to help you be successful and be able to continue progressing and focusing on new material. We will be covering a lot of topics, all of which will benefit you.

If you have extenuating circumstances that may warrant an exception to the no late work policy, please talk to me as early as possible.

Working Together

We will work together in class and at some of the programming competitions. The ICPC requires teams of three students, so we will practice like at times. However, working on a team will not benefit you much at all in a coding interview -- you need to be able to solve problems on your own. So, unless otherwise specified, please work hard at solving the problems outside of class independently. After working on them on your own, we will discuss many of them in class together.

Retake Policy

Students are allowed only one retake of any class. If a student withdraws from or fails a class a second time, the student will not be allowed to register for any CS course for one semester (or one term, if in spring or summer). This policy does not apply to classes dropped before the add/drop deadline.

After one semester (or term), a student must petition to be allowed to take CS courses again. The petition must provide evidence of a substantive change that makes success in future CS classes much more likely. For example, a student may have demonstrated success in technology, math, or science-based courses. The petition will be reviewed by the undergraduate advisor.

Petitions for non-academic (e.g., medical or military) exceptions to the one semester/term waiting period may be granted according to university policies. Information about filing a petition can be found here:

Students With Disabilities

BYU is committed to providing reasonable accommodation to qualified persons with disabilities. If you have any disability that may adversely affect your success in this course, please contact the University Accessibility Center at 422-2767. Services deemed appropriate will be coordinated with the student and instructor by that office.

Preventing & Responding to Sexual Misconduct

In accordance with Title IX of the Education Amendments of 1972, Brigham Young University prohibits unlawful sex discrimination against any participant in its education programs or activities. The university also prohibits sexual harassment—including sexual violence—committed by or against students, university employees, and visitors to campus. As outlined in university policy, sexual harassment, dating violence, domestic violence, sexual assault, and stalking are considered forms of "Sexual Misconduct" prohibited by the university.

University policy requires all university employees in a teaching, managerial, or supervisory role to report all incidents of Sexual Misconduct that come to their attention in any way, including but not limited to face-to-face conversations, a written class assignment or paper, class discussion, email, text, or social media post. Incidents of Sexual Misconduct should be reported to the Title IX Coordinator at or (801) 422-8692. Reports may also be submitted through EthicsPoint at or 1-888-238-1062 (24-hours a day).

BYU offers confidential resources for those affected by Sexual Misconduct, including the university’s Victim Advocate, as well as a number of non-confidential resources and services that may be helpful. Additional information about Title IX, the university’s Sexual Misconduct Policy, reporting requirements, and resources can be found at or by contacting the university’s Title IX Coordinator.


While COVID-19 conditions persist and until further notice, students and faculty are required to wear masks at all times during class; faculty are not at liberty to waive this expectation. Students who feel sick, including exhibiting symptoms commonly associated with COVID-19 (fever; cough; shortness of breath/difficulty breathing; chills; muscle pain; sore throat; new loss of taste or smell; etc.) should not attend class and should work with their instructor to develop a study plan for the duration of the illness.

Our class will follow CS Department COVID-19 policy which is based upon the policies decsribed in the BYU COVID-19 website.

Diversity and Inclusion in the Classroom

"Because we feel the depth of God's love for His children, we care deeply about every child of God, regardless of age, personal circumstances, gender, sexual orientation, or other unique challenges" (President Russell M. Nelson, "The Love and Laws of God," September 2019). As a university community we strive to foster an educational environment that promotes the personal dignity of every student and accept individual responsibility to eliminate racism, sexism, and nationalism. Our course participation reflects our understanding that every individual is a child of Heavenly Parents. We create learning environments in which every individual is motivated to express their opinions and perspectives and ask questions to augment discussions and learning. We listen to, learn from, and strive to consider thoughtfully the opinions of others. We use language that is polite, considerate, and courteous—even when we strongly disagree.