Ryan Farrell
Office Hours (via Zoom,
DM me on Slack
for appointments)
This course is designed to help students learn advanced problem solving and has two primary goals (there are two :
For the Coding Interview Prep Section (Section 001), there are two required textbooks and one recommended one:
For the Competitive Programming Section (Section 002), there is one recommended (2-volume) text:
We will read parts of "Cracking the Coding Interview" and work some problems from it as outlined in the course schedule. I will also reference material from the Programming Problems books and strongly recommend both of those books for your individual study. You are responsible for reading the material for a given day prior to that day's lecture/class.
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:
20% | In-class Participation and Mock Interviews (5% for individual attendence, 5% for Mock Interviews, 10% for participating in group problem-solving, etc.) |
60% | Out-of-class Problems (20% for assigned problems, 40% on individually-selected problems) |
20% | Final Exam [Programming Problems] (must pass to pass the course) |
I expect that students will come to class (on zoom) and will fully participate. Please plan and prepare such that you are able to be in class, with your video on. I am not trying to create an inconvenience for you, I am trying to help you and your classmates learn. We will be doing a fair amount of work in groups, but also just when we're discussing as a class, I hope that you all will participate and ask/answer questions.
My expectation is that you will spend 6 hours per week working on problemes outside of class. I will assign a small number of problems each week/class (up to 4 problems/week) that I expect for you to spend at least 30 minutes working on (unless you solve it in less than 30 minutes). After completing (or spending 30 minutes each) on these problems, it is up to you which problems you work on for the balance of the 6 hours each week. If you solve the assigned problems more quickly, you still need to spend 6 hours total. I will provide recommended problems on each topic that you can work on after the assigned problems, or you may select your own additional problems.
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.
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.
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 t9coordinator@byu.edu or (801) 422-8692. Reports may also be submitted through EthicsPoint at https://titleix.byu.edu/report 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 http://titleix.byu.edu 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.
"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.