CSC 495: Competitive Programming
General Information
- Semester: Winter 2022
- Class Meeting Time: MTWRF 6:00PM-9:00PM.
- Instructor: Linh B. Ngo
- Office: UNA 138
- Office Hours: MWF 5:00PM - 6:00PM. Zoom links will be made available internally via D2L.
- Email: lngo AT wcupa DOT edu
- Phone: 610-436-2595
Delivery and Format
- The course will be taught online via WCU Zoom. Links to each meeting's Zoom session will be pre-scheduled and made available to students via the Zoom Tab inside the course' D2L page. For security and privacy purposes, WCUPA authentication to D2L and Zoom is required in order to join the Zoom session.
- The course will be 100% online and remote synchronous.
Communication
- Office hours will be faciliated via Zoom and links will be made available internally via D2L.
- For this class, office hours are Monday, Wednesday, and Friday from 5:00PM to 6:00PM.
- The instructor can be contacted via email (lngo AT wcupa DOT edu) or via the class' Discord chat server.
Course Description
In this course, students will introduce students to implement data structures, algorithms, and programming techniques to solve challenging computation problems. We will learn about fundamental algorithmic solving techniques including complete search, divide/reduce/transform and conquer, greedy, dynamic programming, etc. We will also briefly touch on domain specific techniques like graph, string processing, and computational geometry. The course will prepare students to participate in regional, national, and hopefully international programming competitions and also to get ready for technical interviews at top ranking companies.
Learning Objectives
- CS Program Objectives (CSPO):
- Be able to apply theory, techniques, and methodologies to create and/or maintain high quality computing systems that function effectively and reliably in the emerging and future information infrastructure.
- CS/ABET Program Outcomes (ABET):
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline (ABET 2)
- Apply computer science theory and software development fundamentals to produce computing-based solutions. (ABET 6).
- Student Learning Outcomes (SLO)
- Be able to identify data structures and algorithms to solve a complex computational problem.
- Be able to implement data structures and algorithms to solve a complex computational problem.
- Be able to develop extensive testing strategies to ensure implementations work across edge cases
- Be able to work as a team to solve complex computation problems under timing constraints
Course Topics and Activities:
- Week of January 3, 2023 : Introduction to competitive programming
- General principles, competitive programming (CP) versus software engineering (SE)
- How to be competitive
- Generic ad-hoc programming problems
- Team Assignment 1 Due January 6, 2023.
- Assignment 1 Due January 8, 2023.
- Week of January 9, 2023: Data structures (DS), algorithms (ALGO), and supporting libraries.
- Linear DS with built-in libraries.
- Non-linear DS with built-in libraries.
- Team Assignment 2 Due January 13, 2023.
- Assignment 2 Due January 15, 2023.
- Week of Januyary 16, 2023: Problem solving paradigms
- Complete search
- Divide and conquer
- Greedy
- Dynamic programming
- Team Assignment 3 Due January 20, 2023.
- Assignment 3 Due January 22, 2023.
Artifacts used to demonstrate Student Learning Outcomes:
- Assignments (SLO 1, 2, 3):
- Solving set of programming problems individually under timing constraints.
- Participate in weekly competitions on LeetCode/Kattis.
- Team assignments (SLO 4): Compete in weekly class competitions on Kattis under timing constraints. Team of students will be assigned to Zoom's breakout rooms and team members are expected to engage in workload division and problem solving as a team.
- In-class participation (SLO 1): Given the short duration of a Winter course and the intensity of materials, students are expected to actively participate in all online activities. This means to attend all synchronous Zoom sessions, engage with provided materials, and respond to communications in a timely and thoughtful manner.
Prerequisites
- Academic prerequisites: Students are required to have passed CSC 241, Data Structures and Algorithms, with a grade of C- or higher.
- Technical skills: Students are expected to be competent in using computers, writing and compiling codes in any Intergrated Development Environment, which should have come from CSC 241's prerequisites. In addition, you should be able to utilize a web-camera and microphone. You should have a basic understanding of how to use the common elements of the university learning management system.
- Required hardware: Students should have access to a desktop computer or laptop with reliable Internet connection, speaker or headset, and a microphone.
Resources and Accessibility
- For general technical support, students can contact WCU IT HelpDesk at 610-436-3350 or via email: helpdesk@wcupa.edu.
- For distance education support, students can contact WCU Distance Education Services at 610-436-3373 or via email: distanceed@wcupa.edu.
- A Discord server will be created and invitation link made available inside D2L. Technical questions specific to online competition platforms used in the course can be sent via email to the instructor or posted on the Discord server.
Required Text (either print or e-book):
Competitive Programming by Steve Halim and Falix Halim (4th Ed.).
Evaluation Policy:
Grade Distributions
Percentage | Tasks |
---|---|
45% | 6 individual assignments |
10% | Participation |
Grade Scale:
Numeric | Letter |
---|---|
100-93 | A |
92-90 | A- |
89-87 | B+ |
86-83 | B |
82-80 | B- |
79-77 | C+ |
76-73 | C |
72-70 | C- |
69-67 | D+ |
66-63 | D |
62-60 | D- |
<= 59 | F |
Lateness Policy:
Given the short duration of the Winter semester and the intensity of the course, no late assignment will be accepted at all. There is simply no room for negotiation in this class.
Policy
University Sanctioned Events Policy:
Students participating in participating in University sanctioned events such as, but not limited to, the Marching Band, musical ensembles, theatre group, athletic events, forensics competition, etc., will be granted an excused absence for class periods missed. Students will be granted the privilege of taking, at an alternative time to be determined by the professor, scheduled examinations or quizzes that will be missed. I will designate such times prior to the event and reserve the right to provide a fair alternative to taking the examination or quiz that will be missed. Students must submit original documentation on University letterhead signed by the activity director, coach, or adviser detailing the specifics of the event in advance. Specific requirements include:
- Responsibility for meeting academic requirements rests with the student.
- Students are expected to notify their professors as soon as they know they will be missing class due to a University sanctioned event.
- Students are expected to complete the work requirement for each class and turn in assignments due on days of the event prior to their due dates unless other arrangements are made with myself.
- If a scheduled event is postponed or canceled, the student is expected to go to class.
- Students are not excused from classes for practice on nonevent days.
The following are specifics for the student athlete: 1. The student athlete is expected, where possible, to schedule classes on days and at hours that do not conflict with athletic schedules. 2. Athletes are not excused from classes for practice or training-room treatment on nongame days.
Email Policy:
It is expected that faculty, staff, and students activate and maintain regular access to University provided e-mail accounts. Official university communications, including those from your instructor, will be sent through your university e-mail account. You are responsible for accessing that mail to be sure to obtain official University communications. Failure to access will not exempt individuals from the responsibilities associated with this course.
Please abide by the following email etiquette policies to ensure clear communication: - Subject Line: Please include a descriptive and specific subject heading for all of your emails, including course and section number (e.g. “CSC 050-23: Question about lab 1”). - Greeting: Please make a clear and appropriate greeting; I will not answer emails addressed to “hey” or “yo”. Please address me as Dr. Ngo, or “Professor”. - Tone & Style: Always use a tone and language that is appropriate to an academic setting; I will not respond to emails that are written in short-hand or without proper punctuation and grammar. Your emails should not resemble a text message. - Sign and Proofread: Always sign your full name, especially if you are writing from your smart phone. Always proofread your emails before sending. - Email Account: I do not care which email account you send email from, as long as it is clearly addressed and signed so that I know who you are. But please be advised to appropriately link the email that you wish to use with myWCU and D2L; I will be using those services to send out emails to the entire class. It is your responsibility to make sure this is configured correctly so that you receive my emails.
Computer Science Department Dishonesty Policy:
The Computer Science Committee has adopted the following policies in regard to academic dishonesty in Computer Science classes: 1. A student found to be academically dishonest in an assignment will receive zero for that assignment if it is his/her first offense in that class [the course, not the class period], but an F for the course if it is for his/her second offense in that class [the course]. 2. A student found to be academically dishonest in a test will receive the grade of F in that class [the course]. 3. For the purposes of this document on academic dishonesty, every form or method of evaluation in a class will be considered as being of one of two types: an assignment or a test. Assignments include homework assignments, and short quizzes [and labs]. Tests include final exams and major exams. An instructor has, subject to these guidelines, the discretion to determine the type of any other form of evaluation, such as a project, in his/her class. 4. A student who has received the grade of F in a course because of academic dishonesty and who wants or is required to repeat that course may re-take that course only as a regularly scheduled course that is open to the student community in general. In exceptional circumstances, this condition may be revoked, but only by an explicit action to that effect by the full Computer Science Committee, and only then on a case by case basis. 5. The term academic dishonesty is used throughout in the sense provided by the rules and regulations of West Chester University. The following is taken from The Ram's Eye View of 1997-1998: “Academic dishonesty as it applies to students includes but is not limited to academic cheating; plagiarism; the sale, purchase, or exchange of term papers or research papers; falsification of information which includes any form of providing false or misleading information, written, electronic, or oral; or of altering or falsifying official institutional records. Plagiarism is defined as copying another's work or portion thereof and/or using ideas and concepts of another and presenting them as one's own without giving proper credit to the source.”
No-Grade, Violation of Academic Integrity, and Violation of Student Code of Conduct Policy:
For questions regarding Academic Dishonesty, the No-Grade policy, Sexual Harassment, or the Student Code of Conduct, students are encouraged to refer to their major department’s handbook, the Undergraduate Course Catalogue, the Rams Eye View, or the University Web Site. Please understand that improper conduct in any of these areas will not be tolerated and may result in immediate ejections from the class.
ADA Policy:
If you have a disability that requires accommodations under the Americans with Disabilities Act (ADA), please present your letter of accommodations and meet with me as soon as possible so that I can support your success in an informed manner. Accommodations cannot be granted retroactively. If you would like to know more about West Chester University’s Services for Students with Disabilities (OSSD), please contact the OSSD which is located at 223 Lawrence Center. The OSSD hours of Operation are Monday – Friday 8:30 a.m. – 4:30 p.m. Their phone number is 610-436-2564, fax number is 610-436-2600, and their email address is ossd@wcupa.edu. More information can be found at the OSSD website.
Title IX Statement:
West Chester University and its faculty are committed to assuring a safe and productive educational environment for all students. In order to meet this commitment and to comply with Title IX of the Education Amendments of 1972 and guidance from the Office for Civil Rights, the University requires faculty members to report incidents of sexual violence shared by students to the University's Title IX Coordinator, Ms. Lynn Klingensmith. The only exceptions to the faculty member's reporting obligation are when incidents of sexual violence are communicated by a student during a classroom discussion, in a writing assignment for a class, or as part of a University-approved research project. Faculty members are obligated to report sexual violence or any other abuse of a student who was, or is, a child (a person under 18 years of age) when the abuse allegedly occurred to the person designated in the University protection of minors policy. Information regarding the reporting of sexual violence and the resources that are available to victims of sexual violence is set forth at the Office of Social Equity website.
Emergency Contact:
In the event of an emergency during class, the phone number for WCU’s Department of Public Safety is 610-436-3311.