Office Hours: By appointment
This course has two primary goals:
There is one required textbook:
and two recommended ones:
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.
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:
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 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.
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.
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 email@example.com 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.
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.
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: cs.byu.edu/retake-policy