CS 498R Competitive Programming

or Killing that Google Interview

Purpose

Increase CS students’ abilities to recognize, understand, and solve new programming problems in a time-sensitive environment.

Improve skills for programming contests and interviews.

Prepare students to interview effectively.

Increase CS students' ability to use existing algorithms to solve a new problem.

Prerequisites

  • Competence in C++ or Java
  • An interest in new and challenging problems
  • CS 312

Class

We will meet twice a week for 60 minutes on Tuesday and Thursday from 12:00 pm to 1:00 pm in TMCB 1029 (Sports Lab). Class time will be spent doing a variety of activities, including: working in teams to solve interview/programming problem, short lectures, and student presentations on algorithms or problems. Each student is expected to be in class each day and is required to participate.

This is a self driven class. You will get out of it as much as you put into it. There are over 500 points offered in the class and only 280 required to receive 100%. In order to get the most out of this class, we encourage you to focus on topics you need to review or want to learn.

How to enroll

  1. You do not have to enroll for credit to attend this class. But if do you want to earn 3 credits of CS 498R (special projects) credit be sure to get a permission-to-add code in class.
  2. Add yourself to the Google Group BYU Competitive Programming. We will use this group for updates.

Requirements & Grading

Requirements

BYU students are expected to spend about 3 hrs / wk / credit hr (including class time). Students will be taking this class for 3 credit hours and will be required to finish 10 points per class period (20 points per week).

Points may be earned in the following ways:

  • (2 pts each) Attendance and participation in class.
  • (2 - 6 pts) Solve one of the class problems on SPOX. Credit is given by submission to the site or by submission to the course instructors.
  • (up to 6 pts) Add a wiki to this or another website about a problem and solution. See more details here.
  • (6 pts) Give a 15-20 minute presentation in class on a topic or problem of choice.
  • (10 pts) Participate in one of the programming contests this semester.
  • (10 pts) Build a personal website to display your resume and portfolio. (2pts/hour)
  • (10 pts) Read one of the classes assigned books.
  • (2 pts) Have an interview with a company. (Per company, up to 10pts)

Point requirements are cumulative during the semester; i.e. points can “carry over” between weeks.

The best way to ensure you are earning the assigned amount of points is to work on the problems consistently throughout the semester. Two weeks after a problem is assigned it will be worth half the original points. A problem will also be worth half the original points if we show the solution in class. Students who choose to put off all the work until the end of the semester will have a difficult time getting a good grade in the course. This course is heavily weighted toward effort. If you work hard you will get a good grade. If you have any question please email the TA account at [mailto:cs498r@gmail.com cs498r@gmail.com].

Also remember that this course follows all honor code requirements strictly. You must do your own work.

Submissions

On SPOX, there will be a “lesson” for each week. Submit your points there. The intent is that each student meets the weekly point requirement in each “lesson”. Points are earned by participating in in-class problems and contests as well. These points will still be gathered through SPOX. Instruction will be given during class time for how you will gain these points.

Grading

Grading is done on the typical 93-100 (A), 90-92 (A-), etc. It is expected that all students will receive an A, so long as they complete the weekly requirement.

If you are self-motivated to improve your programming in a collaborative and stimulating environment, this class will be great. If you are not self-motivated, this particular class is probably not the best fit for you.

The first and last class periods will not contribute to total requirement, although we will still have class, and any earned SPOX points for those weeks still count. There will be no final exam.

Thus, for 100%, your total score at the end of the semester would be

  • 3 credits: 280 = 224 problem/wiki/presentations/programming contests + 56 class attendance and participation (not including first or last day of class).

As a point of clarification points will carry over from week to week. Problems are also worth half the original points when we show a solution in class. We strongly encourage you to work each week on the class as opposed to waiting until the last minute to do all the work. In order to encourage this, we will be assessing grades at the end of each month during the semester. You will only be able to recieve a final grade 2 letters higher than your lowest grade on one of the four assessments. For example, if you are on pace for a D at the end of October, the best grade you can receive in the class is a B.

If you are not on track for the grade you would like please:

  • Take advantage of the opportunities listed on the wiki.
  • Consider revisiting any old problems you felt you understood well.
  • If you spend several hours on problem without success, email your work to [mailto:cs498r@gmail.com cs498r@gmail.com], and you may received partial or full credit.
  • These credits count just as much any an other CS class, so expect the time requirement to be somewhat similar.
  • If you have spent an inordinate amount of time on multiple problems come talk to us.

Good luck!

Readings

This course recommends you read one of two books in order to better prepare for job interviews. The two books are:

Cracking the Coding Interview - Gayle McDowell ://www.valleytalk.org/wp-content/uploads/2012/10/CrackCode.pdf

Programming Interview Exposed - John Mongan ://it-ebooks.info/book/1293/ (Reproduction of site books is authorized only for informative purposes and strictly for personal, private use.)

10 points will be awarded for each book that is read. The points will be awarded when a 500 word summary of what you learned and how it helped you prepare for the coding interview is submitted on the course website.

TA Hours

Please email us at cs498r@gmail.com for help or to schedule an appointment.

Resources

Questions?

Post on the Google Group, or contact [mailto:cs498r@gmail.com cs498r@gmail.com].

cs-498r/start.txt · Last modified: 2015/01/20 06:24 by jangell3
Back to top
CC Attribution-Share Alike 4.0 International
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0