15-295 Competition Programming and Problem Solving 15-295 - COURSE PROFILECourse Level: UndergraduateUnits: 5Special Permission Required: No (if yes, please see Notes)Frequency Offered: Generally offered every fall and spring semester - confirm course offerings for upcoming semesters by accessing the university Schedule of Classes.Course Relevance (who should take this course?): Many of the algorithms and techniques covered are classic ones that every computer scientist should know. You will also learn to think about algorithms in a deeper way, because many of the problems require you have to devise a new algorithm, not just apply a classic one. These skills will be of great value in your other classes, in your job interviews, and in your future work.Key Topics:Background Knowledge:Assessment Structure:Learn how to devise and implement efficient algorithmsMost Recent Syllabus: https://contest.cs.cmu.edu/295/s17/Be comfortable in one of the following languages: java, c, c++, ocaml, haskell. You must have beginner's skill level (high school level is sufficient) in one of the following programming languages: C/C++, Pascal, Java, C#, Python, Ruby, Perl, PHP, Haskell, Scala, OCaml, Go, D, JavaScript, Rust and Kotlin. It will not be possible to do well (get an A or a B) if you only know Python.Sample class notes: See any of the "solution" links under Weekly Problem Sets at https://contest.cs.cmu.edu/295/s17/Sample Assignment: See any of the "problems" links under Weekly Problem Sets at https://contest.cs.cmu.edu/295/s17/Every week there will be a problem set of about 6 problems. You solve as many as you can in class or during the following week (for half credit).The final grade in the course is based on how many problems you solve.Sample Exam: none providedSample Lecture Recording: Typically no recorded lecturesCourse Goals/Objectives:You will learn to apply fundamental algorithmic techniques such as:divide and conquersweeplinebinary searchgraph searchsegment treeshill climbingstring search, and many othersYou will become fluent using the features and libraries in your chosen programming language.You will learn by solving a series of problems. In each problem you will write a short program that will then be automatically judged on efficiency and correctness.Course Website: https://contest.cs.cmu.edu/295/s17/Learning Resources:Pre-reqs, Cross list, Related:Notes:The course uses a variety of resources such as:The USACO training websiteOnline judge (codeforces.com)Lecture material posted on our own websiteSolution descriptions that are posted after each problem setPrerequisites Required: 15-122Minimum Grades in Prereqs:C in 15-122Corequisites: NonePrerequisite for: n/aAnti-requisites: NoneCross-Listed: NoneSubstitutes: NoneRelated Courses: 15-210Reservations: Some reservations are for Students in CSNoneDepartment Website:College Website:Updated November 2017https://www.csd.cs.cmu.eduhttps://www.cs.cmu.edu/ Back to Course Profile List