CS 3343: Analysis of Algorithms

Slides:



Advertisements
Similar presentations
5/1/20151 Analysis of Algorithms Introduction. 5/1/20152 Are you want to be a computer scientist?
Advertisements

1 Welcome Jeff Edmonds York University Lecture 0 COSC 4111 Jeff Edmonds CSB 3044, ext
CS 46101–600/CS Design and Analysis of Algorithms Dr. Angela Guercio Spring 2010.
CS 232 Geometric Algorithms: Lecture 1 Shang-Hua Teng Department of Computer Science, Boston University.
CS 232 Geometric Algorithms: Lecture 1 Shang-Hua Teng Department of Computer Science, Boston University.
CS 166 DATABASE MANAGEMENT SYSTEMS Dr Eamonn Keogh uci
COMP 14 – 02: Introduction to Programming Andrew Leaver-Fay August 31, 2005 Monday/Wednesday 3-4:15 pm Peabody 217 Friday 3-3:50pm Peabody 217.
Welcome to CompSci 100! As You Arrive… Make sure you grab a syllabus packet. Read through it. I will be covering the most essential points in my talk,
CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1.
COMP Introduction to Programming Yi Hong May 13, 2015.
MGS 351 Introduction to Management Information Systems
CSc 2310 Principles of Programming (Java) Dr. Xiaolin Hu.
CS 3343: Analysis of Algorithms
CST 229 Introduction to Grammars Dr. Sherry Yang Room 213 (503)
Catie Welsh January 10, 2011 MWF 1-1:50 pm Sitterson 014.
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009.
Welcome to CS 115! Introduction to Programming. Class URL Write this down!
Introduction to Data Structures
Syllabus Highlights CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
June 19, Liang-Jun Zhang MTWRF 9:45-11:15 am Sitterson Hall 011 Comp 110 Introduction to Programming.
Syllabus Highlights CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
SE-2030 Software Engineering Tools and Practices SE-2030 Dr. Mark L. Hornick 1.
1 CS 381 Introduction to Discrete Structures Lecture #1 Syllabus Week 1.
Syllabus Highlights CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Data Structures and Algorithms in Java AlaaEddin 2012.
Class Introduction IST 210: Organization of Data IST2101.
Syllabus Highlights CSE 1310 – Introduction to Computers and Programming Alexandra Stefan University of Texas at Arlington 1.
Introduction to CSCI 1311 Dr. Mark C. Lewis
CSc 120 Introduction to Computer Programing II
Networking CS 3470, Section 1 Sarah Diesburg
RAIK 283 Data Structures and Algorithms
All important information will be posted on Blackboard
Course Overview - Database Systems
Course Overview CS 4501 / 6501 Software Testing
CS101 Computer Programming I
CSc 1302 Principles of Computer Science II
COMPSCI 330 Design and Analysis of Algorithms
MIS323 Business Telecommunications
Database Design and Implementation
Data Structures Algorithms: (Slides to be Adopted from Goodrich and aligned with Weiss' book) Instructor: Ganesh Ramakrishnan
Computer Science 102 Data Structures CSCI-UA
Using MyMathLab Features
Welcome to CS 1010! Algorithmic Problem Solving.
Definition In simple terms, an algorithm is a series of instructions to solve a problem (complete a task) We focus on Deterministic Algorithms Under the.
Course Overview - Database Systems
Welcome to CS 1340! Computing for scientists.
Welcome to CS 1010! Algorithmic Problem Solving.
MA Fall 2016 Instructor: Matt Weaver Office: MATH 615
EGED: Elementary General Engineering & Design
CS 3343: Analysis of Algorithms
CSC215 Lecture Orientation.
EG1003: Introduction to Engineering and Design
Welcome to CS 1301! Principles of Programming I.
Welcome to Physics 1D03.
EG 1003 Overview.
CMPT 438 Algorithms Instructor: Tina Tian.
Using MyMathLab Features
MIS323 Business Telecommunications
PHYS 202 Intro Physics II Catalog description: A continuation of PHYS 201 covering the topics of electricity and magnetism, light, and modern physics.
EG1003: Introduction to Engineering and Design
CSC215 Lecture Orientation.
EG 1003: Introduction of Engineering and Design
EG1003: Introduction to Engineering and Design
Syllabus Highlights CSE 1310 – Introduction to Computers and Programming Alexandra Stefan University of Texas at Arlington.
COMPSCI 330 Design and Analysis of Algorithms
Course policy.
Introduction CSE 2320 – Algorithms and Data Structures
CS201 – Course Expectations
CS 232 Geometric Algorithms: Lecture 1
Dr. Chengwei Lei CEECS California State University, Bakersfield
Presentation transcript:

CS 3343: Analysis of Algorithms Introduction Some slides courtesy from Jeff Edmonds @ York University 9/17/2018

The course Instructor: Dr. Jianhua Ruan TA&Grader: see course webpage Jianhua.ruan@utsa.edu Office: NPB 3.318 Office hours: see course webpage (cs.utsa.edu/~jruan/ under “Teaching” and link to current CS3343) TA&Grader: see course webpage 9/17/2018

The course Purpose: a rigorous introduction to the design and analysis of algorithms Textbook: Introduction to Algorithms, Cormen, Leiserson, Rivest, Stein An excellent reference you should own Go to course website for a link to the errata http://cs.utsa.edu/~jruan/teaching/cs3343_spring_2015/ Or go to http://cs.utsa.edu/~jruan/ then follow “teaching”. Under “textbook” 9/17/2018

Course Format 3 Lectures + 1 recitation / week Recitation Mandatory CS3343.001 should attend CS3341.001/002/005 CS3343.002 should attend CS3341.003/004 Otherwise may not receive credit for certain in-class exercises ~8 homework assignments Problem sets (paper-based) Typically due in 1-1.5 week Hard copy submission desired. For email submission, must put “CS3343” in subject line. Otherwise may risk receiving no credit. ~8 in-class quizzes and exercises Two midterms + final exam 9/17/2018

Grading policy Homework: 25%. One lowest grade in homework will be dropped. Quiz and participation 5%. Midterm 1 and Midterm 2 will be averaged and compared with final exam. Whichever is greater will weight 50% and the other will weight 20%. I reserve the right to slightly adjust the weights of individual components if necessary. 9/17/2018

Late homework submissions 10% penalty if submitted the same day after the instructor left classroom 15% penalty each additional day after the submission deadline Submission will not be accepted once TA shows solution in recitation or instructor puts solution online Email submission is acceptable in case of emergency. Must include “CS3343” in subject line. Otherwise may risk receiving no credit. 9/17/2018

Exams Exams cannot be made up, cannot be taken early, and must be taken in class at the scheduled time.  Proofs are needed for exceptions or true emergencies 9/17/2018

Cheating You are not allowed to read, copy, or rewrite the solutions written by others (in this or previous terms). Copying materials from websites, books or any other sources is considered equivalent to copying from another student. If two people are caught sharing solutions, then both the copier and copiee will be held equally responsible, which will result in zero point in homework. Cheating on an exam will result in failing the course. 9/17/2018

Getting answers from the internet is CHEATING Getting answers from your friends is I will send it to the Dean! You will be nailed! However, teamwork is encouraged. Group size at most 3. Clearly acknowledge who you worked with. 9/17/2018

Do NOT get answers from other groups! Do NOT do half the assignment and your partner does the other half. Each try all on your own. Discuss ideas verbally at a high-level but write up on your own. 9/17/2018

Attendance Missing 3 or more classes / recitations (whenever attendance is checked) will result in a minimum of 5 points taken off your final grade In reality, attendance and final grade are highly correlated 9/17/2018

Feedbacks We appreciate your feedbacks Your feedbacks help me know how I can better deliver my lectures, which will ultimately benefit you You get bonus points in homework for your feedbacks 9/17/2018

Introduction Why should you study algorithms What is an algorithm What you can expect to learn from this course 9/17/2018

Please feel free to ask questions! Help me know what people are not understanding We do have a lot of material It’s your job to slow me down 9/17/2018

So you want to be a computer scientist? 9/17/2018

Is your goal to be a mundane programmer? 9/17/2018

Or a great leader and thinker? 9/17/2018

Everyday industry asks these questions. Boss assigns task: Given today’s prices of pork, grain, sawdust, … Given constraints on what constitutes a hotdog. Make the cheapest hotdog. Everyday industry asks these questions. 9/17/2018

Your answer: Um? Tell me what to code. With more sophisticated software engineering systems, the demand for mundane programmers will diminish. 9/17/2018

Soon all known algorithms will be available in libraries. Your answer: I learned this great algorithm that will work. Soon all known algorithms will be available in libraries. Your boss might change his mind. He now wants to make the most profitable hotdogs. 9/17/2018

Great thinkers will always be needed. Your answer: I can develop a new algorithm for you. Great thinkers will always be needed. 9/17/2018

How do I become a great thinker? Maybe I’ll never be… 9/17/2018

Learn from the classical problems 9/17/2018

Shortest path end Start 9/17/2018

Traveling salesman problem 9/17/2018

Knapsack problem 9/17/2018

There is only a handful of classical problems. Nice algorithms have been designed for them If you know how to solve a classical problem (e.g., the shortest-path problem), you can use it to do a lot of different things Abstract ideas from the classical problems Map your boss’ requirement to a classical problem Solve with classical algorithms Modify it if needed 9/17/2018

How to design an algorithm by yourself? Learn some meta algorithms What if you can NOT map your boss’ requirement to any existing classical problem? How to design an algorithm by yourself? Learn some meta algorithms A meta algorithm is a class of algorithms for solving similar abstract problems There is only a handful of them E.g. divide and conquer, greedy algorithm, dynamic programming Learn the ideas behind the meta algorithms Design a concrete algorithm for your task 9/17/2018

Useful learning techniques Read Ahead. Read the textbook before the lectures. This will facilitate more productive discussion during class. Explain the material over and over again out loud to yourself, to each other, and to your stuffed bear. Be creative. Ask questions: Why is it done this way and not that way? Practice. Try to solve as many exercises in the textbook as you can. 9/17/2018

What will we study? Expressing algorithms Algorithm validation Define a problem precisely and abstractly Presenting algorithms using pseudocode Algorithm validation Prove that an algorithm is correct Algorithm analysis Time and space complexity What problems are so hard that efficient algorithms are unlikely to exist Designing algorithms Algorithms for classical problems Meta algorithms (classes of algorithms) and when you should use which 9/17/2018