class: center, title-slide
# CSCI-UA 480: APS ## Algorithmic Problem Solving
## Announcements .author[ Instructor: Joanna Klukowska
] .license[ Copyright 2020 Joanna Klukowska. Unless noted otherwise all content is released under a
[Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/).
Background image by Stewart Weiss
] --- layout:true template: default name: section class: inverse, middle, center --- layout:true template: default name: challenge class: challenge --- layout:true template: default name: poll class: inverse, full-height, center, middle --- layout:true template: default name: breakout class: breakout --- layout:true template:default name:slide class: slide .bottom-left[© Joanna Klukowska. CC-BY-SA.] --- ## This Course - Course website: https://cs.nyu.edu/~joannakl/aps_s21/ This page contains the syllabus and daily summaries as well as loads of links to all other resources and services you will need for this class. - Recitations (required): - Wednesdays 3:30 - 4:45pm - plan to bring your laptop (there are outlets available) - Course message board / discussion: Ed - you can self-sign up at https://us.edstem.org/ - Online judge: - Gradescope (for homework assignments and exams) - [Vjudge](https://vjudge.net/) - Grades posted on Brightspace --- ## Online Contest (4 problems) .small[ Throughout the semester we will let you know about various online contests. You need to participate in one or more and submit passing solutions to four different problems (in a single contest or in multiple ones). - ICPC Practice contests - Codeforces - ICPC NAQ (Thursday, 2/11, 8-11pm ET) ] -- When you register for the contest (and BEFORE the actual contest): - when you register, indicate NYU as your association/university - you can use any user name (but, see the next point) - complete this [form](https://forms.gle/h4Lb5faESmUsUybE8) to let us know that you are participating and what your user name is (if we do not have your user name in advance, we cannot verify that you were the one who submitted the solution and it will not count towards your 4 problems) -- When you successfully solve a problem: - make a post on Ed using "Online Contests" category - include a link to the problem that you successfully solved - include a screenshot showing that your solution was accepted - create a runnable code block with your solution so other people can see it and test it out If you solve more than one problem in a single contest, make multiple posts. These posts should be made within one week of contest completion (not on the last day of classes!). --- name: presentations ## Problem Presentation .small[ Once during the semester you will need to make a presentation of a problem and its solution. ] - First round of presentations: Feb 17 during recitations -- - Complete this [form](https://forms.gle/L6gdmJXQHBsAiMCd6) by the end of Feb 10: - Pick a particular problem or a topic that you would like to present. If you indicate just a topic, you will need to pick a problem later on in the semester when we get closer to discussing that topic. We can also make suggestions for problems. - Indicate if you will be able to make your presentation during the Wednesday afternoon session. -- - Presentation duration: 20 minutes -- - If you want to (or consider) making your presentation on Feb 17, complete the above form right after class and send me an email stating that you are interested in presenting during the first session. -- ----- Advantage of presenting earlier during the semester: - Your presentation will not be compared to too many other presentations. It is a learning experience so it is expected that the earlier presentations are not going to be as _great_ as the later ones. - Problems corresponding to topics early in the semester are simpler. - If you have interviews coming up, it is a good chance to get some practice. - It should be still before exams and before major projects are starting to pile up. --- ## Problem Presentation Prior to presentation: - Share your specific problem with us. It has to be a problem that can be added to a problem set on VJudge. --- ## Problem Presentation Flow of a presentation: - Explain the problem (explain != read it). -- - Talk about questions one might have upon the first hearing the problem and what the answers are. -- - Show an example or two (input/output and explain why the output is what it is). -- - Propose/explain a naive solution - this will most likely be very silly and inefficient. Provide just an outline of this algorithm, not the code. Provide time performance (optionally memory performance) of this approach. -- - Propose/explain slightly better solution ... (this is an optional step) -- - Propose/explain the best solution you can find. It may not be optimal, but it should pass the online judge tests. First provide an outline of this algorithm. Talk about time performance (optionally memory performance) of this approach. Either show the code or write the code during the presentation (depends on the time you have). Make sure to explain the code, not just display it. --- ## Problem Presentation Post presentation: - Make a post on Ed in the category "Presentations". - Include a link to the problem statement. - Create a runnable code block with your final solution so other people can see it and test it out. -- The rest of the class: - post __constructive__ feedback and suggestions for improvements in the presentation and solution of the problem. (This does count towards the participation grade.) - be positive and encouraging! ---