CSCE 489 Problem Solving Programming Strategies

Slides:



Advertisements
Similar presentations
Intro to CIT 594
Advertisements

Intro to CIT 594
Intro to CIT 594
CS 410 Applied Algorithms Applied Algorithms Lecture #1 Introduction, class information, first problems.
Spring 2012 MATH 250: Calculus III. Course Topics Review: Parametric Equations and Polar Coordinates Vectors and Three-Dimensional Analytic Geometry.
CSCE 3110 Data Structures and Algorithm Analysis.
Intro to CIT 594
Computer Science 102 Data Structures and Algorithms V Fall 2009 Lecture 1: administrative details Professor: Evan Korth New York University 1.
COMP 465W: Software Engineering Fall Components of the Course The three main components of this course are: The study of software engineering as.
CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1.
Welcome to CS 3260 Dennis A. Fairclough. Overview Course Canvas Web Site Course Materials Lab Assignments Homework Grading Exams Withdrawing from Class.
COMP 465W Software Engineering Fall Components of the Course The three main components of this course are: The study of software engineering as.
Welcome to CS 115! Introduction to Programming. Class URL Write this down!
June 19, Liang-Jun Zhang MTWRF 9:45-11:15 am Sitterson Hall 011 Comp 110 Introduction to Programming.
ICS202 Data Structures King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science Department.
Intro to CIT 594
Data Structures and Algorithms in Java AlaaEddin 2012.
PROBLEM SOLVING AND PROGRAMMING ISMAIL ABUMUHFOUZ | CS 170.
Computer Science I ISMAIL ABUMUHFOUZ | CS 180. CS 180 Description BRIEF SUMMARY: This course covers a study of the algorithmic approach and the object.
Course Information EECS 2031 Fall Instructor Uyen Trang (U.T.) Nguyen Office: LAS Office hours: 
CSc 120 Introduction to Computer Programing II
Networking CS 3470, Section 1 Sarah Diesburg
RAIK 283 Data Structures and Algorithms
Course Overview - Database Systems
ICS 6D Discrete Mathematics for Computer Science Fall 2014
Course Information EECS 2031 – Section A Fall 2017.
Computer Engineering Department Islamic University of Gaza
IST256 : Applications Programming for Information Systems
CSc 1302 Principles of Computer Science II
CSc 020: Programming Concepts and Methodology II
Introduction to Programming
CSCE 451/851 Operating System Principles
Computer Networks CNT5106C
PROBLEM SOLVING AND PROGRAMMING
Welcome to MATH FALL 2016.
How college is different from high school
Welcome to MAT 170 MWF 8:40 SLN
Computer Science 102 Data Structures CSCI-UA
CMPT 409 – Competitive Programming (Spring 2018)
Introduction to MA Day 1.
Introduction to MA Day 1.
CS 201 – Data Structures and Discrete Mathematics I
Course Information and Introductions
Welcome to CS 1010! Algorithmic Problem Solving.
Computer Networks CNT5106C
Course Overview - Database Systems
EEL4930/5934 Reconfigurable Computing
CSCE Problem Solving Programming Strategies
Introduction to Computers Spring 2018
Welcome to CS 1301! Principles of Programming I.
Introduction to Programming Using C++
Intro to CIT 594
EE422C Software Design and Implementation II
Introduction to Computers SPRING 2019
Survey Summary CSCE 489 Spring 2019
Course Information EECS 2031 Fall 2016.
LING 388: Computers and Language
Course Overview CS 4640 Programming Languages for Web Applications
CSCE 221 Professor Lupoli TAMU CSCE 221 Intro.
Intro to CIT 594
Intro to CIT 594
Welcome to Physics 4304!!.
Syllabus and Class Policies
CS102 Algorithms & Programming II
Course Overview CS 4640 Programming Languages for Web Applications
Welcome to Physics 5305!!.
CSCI 1730: C++ and System Programming
MA Fall Instructor: Tim Rolling -Office: MATH 719 -
EEL4930/5934 Reconfigurable Computing
Welcome to Physics 2025! (General Physics Lab 2 - Fall 2012)
Presentation transcript:

CSCE 489 Problem Solving Programming Strategies John Keyser Spring 2018

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

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

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

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

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

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.

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) Email 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.

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

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!

Logistics Textbook: need to order it from publisher directly Competitive Programming, 3rd Edition, by Steven and Felix Halim Hardcover, paperback, or PDF https://cpbook.net/#CP3details Webpage: basic schedule/plans/assignments http://courses.cse.tamu.edu/keyser/csce489/ Kattis webpage: for assignments, labs, submissions https://tamu.kattis.com/courses/CSCE489/2018Spring Piazza: for class discussions/announcements https://piazza.com/class/jbfnzzlldqk33q

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

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.

Other items Academic Honesty Honors section Questions?