Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSCE 489 Problem Solving Programming Strategies

Similar presentations


Presentation on theme: "CSCE 489 Problem Solving Programming Strategies"— Presentation transcript:

1 CSCE 489 Problem Solving Programming Strategies
John Keyser Spring 2018

2 Course Goals Teach you to:
Analyze problems Determine algorithms to solve problems Implement algorithms Test code Do this quickly and accurately We will do this using a competitive programming format Discrete problems to be solved – clear input/output requirements Group solutions – see progress toward solutions among the entire class

3 Competitive Programming
Benefits: Sharpens programming skills tremendously Sharpens analytic skills and familiarizes you with more algorithms Lets you deal with a wide variety of challenges in a short time Encourages you to deal with time pressure, think more quickly Lets you judge yourself vs. others – see where you really stand as a programmer Drawbacks: Can encourage some bad programming habits (shortcuts, bad style) Some people do better without competition/time deadlines Ignores many of the larger software development issues

4 What You are Expected to Know
411 is a prerequisite. We will sometimes go over algorithms/ideas you have seen there before Greedy algorithms, dynamic programming, graph algorithms But, I will be doing this assuming you’ve seen it before, and often will not go over the details Basic 221 material will be completely assumed: Basic data structures: Lists/arrays, Trees, Graphs, Hash tables Basic algorithms Search/Sort, Tree manipulation, Graph traversal

5 Format of the Class Monday and Wednesday: Lectures
Will attempt to cover a wide range of topics; see syllabus May require reading in the textbook or outside textbook to learn details Might go over/review problems Might demonstrate some implementations Homework problem sets Given, generally, each Friday after lab, usually due subsequent Friday before lab time Friday: Lab Run somewhat like a contest – need to code rapidly Will get a set of problems at start Must solve what you can during the lab time Individual (most) and Team (few) labs Need to be present in lab each Friday

6 Special situations Programming contests (open)
Tentative plans, will not be required Probably near end of February No lab on March 30 (Reading Day) – Tuesday, May 1 instead (final lab) No planned meeting during final “exam” Lab right before Spring Break might be cancelled or modified To be determined: will poll class about options

7 Grading Percentage of the problems solved
Problems given in weekly problem sets. Problems given in weekly labs. A base will be set for how many are expected to be solved. Base may be determined AFTER the lab period. In weekly problem sets, there will often be a bonus (difficult) problem, and labs will often have more problems than the base amount. All problems count equally. Around 100 (at least 90, at most 125) problems over the course of the semester will be expected A problem is ONLY solved if it is accepted (passes all test cases) on Kattis.

8 Grading Problems completed by the due date get full credit
After the due date/lab: 1 week to “upsolve” problems Complete the problem on tamu.kattis.com (NOT on open.kattis.com) to me the list of problems you upsolved in the previous week. Excused absences may reduce the “base” of the number or give extension Absences of less than 2 days: No change to weekly problem sets – all problems are still due at same time. Absences > 2 days, with Dr.’s note or other documentation: Extension of weekly set for (n-2) days where n is number of days excused. Absence from weekly lab, with documentation: Cannot be made up or upsolved. The base number of problems will be reduced accordingly.

9 Languages You can submit programs in (almost) any language
Sometimes one language might be easier to use than others e.g. Java bignums, Python for string processing/regex Often efficiency is important C++ is usually the best default choice Warning: Python3 is notoriously slower than Python2; both can be MUCH slower than C++. Java can be slower than C++, occasionally significantly. C++ will be the default version used in this class My own examples, for instance Language specific suggestions will usually be C++ based

10 Kattis The problems will all be assigned on the Kattis system.
Kattis will be used for grading in the course. Your Kattis submissions will be treated as your own. You will need to create a Kattis account, and submit problems through the correct site: During lab, submit in the session itself For weekly problems, submit on tamu.kattis.com You may choose to make yourself anonymous to classmates. But, I would encourage you to keep your profile public! Keep your Kattis login private!

11 Logistics Textbook: need to order it from publisher directly
Competitive Programming, 3rd Edition, by Steven and Felix Halim Hardcover, paperback, or PDF Webpage: basic schedule/plans/assignments Kattis webpage: for assignments, labs, submissions Piazza: for class discussions/announcements

12 Office Hours John Keyser - instructor
HRBB 527C Tuesday, Thursday 1:30-2:30 Other times by appointment Generally, Tuesdays, Thursdays are most open Giovana Delfino – Teaching Assistant Visiting exchange student – University of São Paulo, Brazil Significant programming experience (ICPC World Finals) HRBB 527A Office hours to be determined

13 For This Week Sign and turn in (by lab time) the acknowledgement form
Join Piazza and check the Piazza page Get set up in Kattis Create a Kattis account Go to tamu.kattis.com, and join our class Problem Set 0 Due this Friday, before Lab Do three problems They are meant to be very simple, to give you some very basic practice. Do not assume that future problems will be this easy! This Friday Lab will have a set of problems to work on You will get the first longer problem set None of these problems will require advanced algorithms or processing. As the course progresses, problems will get significantly harder.

14 Other items Academic Honesty Honors section Questions?


Download ppt "CSCE 489 Problem Solving Programming Strategies"

Similar presentations


Ads by Google