CSE373: Data Structures & Algorithms Lecture 23: Course Victory Lap Kevin Quinn Fall 2015.

Slides:



Advertisements
Similar presentations
1 i206: Distributed Computing Applications & Infrastructure 2012
Advertisements

Introduction to Computer Science CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
1-1 CMPT 225 Data Structures and Programming Instructor: Aaron Hunter Section: E300 Campus: Harbour Centre Semester: Spring 2007.
CSE332: Data Abstractions Lecture 28: Course Wrap-Up / Victory Lap Dan Grossman Spring 2010.
CSCE 210 Data Structures and Algorithms
1 CENG 707 Data Structures and Algorithms Nihan Kesim Çiçekli Department of Computer Engineering Middle East Technical University Fall 2010.
June 13, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
1 CS1001 Lecture Overview Java Programming Java Programming Midterm Review Midterm Review.
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
1 Foundations of Software Design Lecture 1: Course Overview Intro to Binary and Boolean Marti Hearst SIMS, University of California at Berkeley.
Abstract Data Types (ADT)
Administrivia- Introduction CSE 373 Data Structures.
CS503: Tenth Lecture, Fall 2008 Review Michael Barnathan.
Introduction to Artificial Intelligence Prof. Kathleen McKeown 722 CEPSR, TAs: Kapil Thadani 724 CEPSR, Phong Pham TA Room.
CS : Artificial Intelligence: Representation and Problem Solving Fall 2002 Prof. Tuomas Sandholm Computer Science Department Carnegie Mellon University.
Data Structures, Spring 2004 © L. Joskowicz 1 DAST – Final Lecture Summary and overview What we have learned. Why it is important. What next.
July 16, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
CSE341: Programming Languages Lecture 26 Course Victory Lap Dan Grossman Spring 2013.
CSE341: Programming Languages Lecture 26 Course Victory Lap Dan Grossman Winter 2013.
CSCE 3110 Data Structures and Algorithm Analysis.
Data Structures and Programming.  John Edgar2.
Instructor: Dr. Sahar Shabanah Fall Lectures ST, 9:30 pm-11:00 pm Text book: M. T. Goodrich and R. Tamassia, “Data Structures and Algorithms in.
Teaching Teaching Discrete Mathematics and Algorithms & Data Structures Online G.MirkowskaPJIIT.
CS 21a: Intro to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
Data Structures and Programming.  Today:  Administrivia  Introduction to 225, Stacks  Course website: 
CS 103 Discrete Structures Lecture 01 Introduction to the Course
EECE 310 Software Engineering Lecture 0: Course Orientation.
CSE332: Data Abstractions Lecture 26: Course Victory Lap Dan Grossman Spring 2012.
CSCA48 Course Summary.
CSE 331 SOFTWARE DESIGN & IMPLEMENTATION MIDTERM REVIEW Autumn 2011.
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009.
Major objective of this course is: Design and analysis of modern algorithms Different variants Accuracy Efficiency Comparing efficiencies Motivation thinking.
CSE373: Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks/Queues Kevin Quinn Fall 2015.
Data Structures for Programmers Vamshi Ambati
Introduction to ECE 2401 Data Structure Fall 2005 Chapter 0 Chen, Chang-Sheng
CSE373: Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks/Queues Linda Shapiro Winter 2015.
Fall 2015, Kevin Quinn CSE373: Data Structures & Algorithms Lecture 25: Problem Solving CSE373: Data Structures and algorithms1.
CMPT 308 — Computability and Complexity Fall 2004 Instructor: Andrei Bulatov, TA: Ramsay Dyer, Learning.
Data Structures and Algorithms in Java AlaaEddin 2012.
CSE332: Data Abstractions Lecture 28: Course Wrap-up Tyler Robison Summer
Principles of Imperative Computation Lecture 1 January 15 th, 2012.
1 i206: Lecture 17: Exam 2 Prep ; Intro to Regular Expressions Marti Hearst Spring 2012.
CS16: Introduction to Algorithms and Data Structures
CSE341: Programming Languages Lecture 26 Course Victory Lap
CSCE 210 Data Structures and Algorithms
CSE 373: Data Structures & Algorithms Course Victory Lap
CSE373: Data Structures & Algorithms
CSC207 Fall 2016.
CSE 374 Programming Concepts & Tools
CS 21a: Intro to Computing I
September 27 – Course introductions; Adts; Stacks and Queues
Major themes Abstraction Design tradeoffs Recursion Leverage existing components without understanding details Create components that can be.
CSE332: Data Abstractions About the Final
CSE341: Programming Languages Lecture 26 Course Victory Lap
CSE 143 Goodbye, world!.
CSE 142 vs CSE 143 CSE 142 CSE 143 You learned how to write programs and decompose large problems with: Print statements Methods Control Structures.
Objective of This Course
Introduction CSE 373 Data Structures.
Introduction to CS II Data Structures
CSE341: Programming Languages Lecture 26 Course Victory Lap
Administrivia- Introduction
CSE341: Programming Languages Lecture 26 Course Victory Lap
CSC 321: Data Structures Fall 2018
Principles of Imperative Computation
Administrivia- Introduction
Design and Analysis of Algorithms
CSCE156: Introduction to Computer Science II
COMP 122 – Design and Analysis of Algorithms
CSE341: Programming Languages Lecture 26 Course Victory Lap
Presentation transcript:

CSE373: Data Structures & Algorithms Lecture 23: Course Victory Lap Kevin Quinn Fall 2015

Today Rest-of-course logistics: exam, etc. Review of main course themes Course evaluations –Thoughtful and constructive feedback deeply appreciated –(Including what you liked) Fall CSE373: Data Structures & Algorithms

Final Exam As also indicated on the web page: Next Tuesday, 2:30-4:20 Cumulative but topics post-midterm worth about 2/3 of the points Not unlike the midterms in style, structure, etc. Tough-but-fair exams are the most equitable approach –And/but 110 minutes will make a big difference Fall 2015CSE373: Data Structures & Algorithms3

Sorting Minimum Spanning Trees Parallelism And Concurrency Problem Solving Perserving Abstractions Post Midterm Topics Fall 2015CSE373: Data Structures & Algorithms4

Properties and runtimes of varying sorting algorithms –How much extra space required? In place? –Partially sorted? Reverse order? –Homework 6 is great to help prepare Given a following block mystery psuedocode, determine which sorting algorithm it is Non-comparison based sorts (bucket sort and radix sort) Sorting Fall 2015CSE373: Data Structures & Algorithms5

How to build from a graph Kruscal’s vs Primm’s algorithms and their runtimes –Primm’s: Modified Dijkstras running in O(Elog(V)) –Kruscal’s: Using Disjoin sets, O(Elog(E)) Minimum Spanning Trees Fall 2015CSE373: Data Structures & Algorithms6

What is the difference? Maps and Reductions –Map: Applying a function to all of the values in a collection, resulting in a identical length collection. Map([1,2,3,4,5,6], +1) = [2,3,4,5,6,7] –Reduction: Applying a function to a collection to reduce it to a single value. Reduce([1,2,3,4,5,6], leftmost even number) = 2 Work: How long it takes 1 processor to execute a sequentially execute a block of code Span: how long it takes infinite processors to execute a block of code Parallelism and Concurrency 7

Copy in vs. Copy out –To protect internal structures from being modified by clients Private and Final fields –How do they impact immutability? Hiding unnecessary information from Clients –For example: A client generally does not need to know that your Disjoint sets are being represented as Uptrees –Another example: Java’s HashTable does not tell you what hashcode they are using. Why? Preserving Abstraction Fall 2015CSE373: Data Structures & Algorithms8

Lots of different metrics for determine which solution is “best” For example, solve the following problem first by optimizing for time, then by optimizing solely for space: Given a list of Strings representing States of birth for students at a highschool. For the most common State, output all the students who were born there. Problem Solving Fall 2015CSE373: Data Structures & Algorithms9

Victory Lap A victory lap is an extra trip around the track –By the exhausted victors (that’s us) Review course goals –Slides from Lecture 1 –What makes CSE373 special Fall 2015CSE373: Data Structures & Algorithms10

Thank you! Big thank-you to your TAs: Rocne Hunter Hunter 2.0 Bessie Rahul Johnson Eden Megan Mauricio Andy! Fall 2015CSE373: Data Structures & Algorithms11

Thank you! And huge thank you to all of you –Great attitude –Good class attendance and questions for the largest-ever CSE373 Thoughts on how to “make it feel smaller” appreciated –Occasionally laughed at stuff Fall 2015CSE373: Data Structures & Algorithms12

Now three slides, completely unedited, from Lecture 1 –Hopefully they make more sense now –Hopefully we succeeded Fall 2015CSE373: Data Structures & Algorithms13

Data Structures Introduction to Algorithm Analysis Lists, Stacks, Queues Trees, Hashing, Dictionaries Heaps, Priority Queues Sorting Disjoint Sets Graph Algorithms May have time for other brief exposure to topics, maybe parallelism Fall 2015CSE373: Data Structures & Algorithms14

What 373 is about Deeply understand the basic structures used in all software –Understand the data structures and their trade-offs –Rigorously analyze the algorithms that use them (math!) –Learn how to pick “the right thing for the job” –More thorough and rigorous take on topics introduced in CSE143 (plus more new topics) Practice design, analysis, and implementation –The elegant interplay of “theory” and “engineering” at the core of computer science More programming experience (as a way to learn) Fall 2015CSE373: Data Structures & Algorithms15

Goals Be able to make good design choices as a developer, project manager, etc. –Reason in terms of the general abstractions that come up in all non-trivial software (and many non-software) systems Be able to justify and communicate your design decisions Kevin’s take: –Key abstractions used almost every day in just about anything related to computing and software –It is a vocabulary you are likely to internalize permanently Fall 2015CSE373: Data Structures & Algorithms16

Hopefully cse373 will not be your last exposure to computer science. There are lots of other awesome computer science courses for non-cse majors! - CSE 154: Web Programming - Developing Websites and client and server side software - CSE 374: Intermediate programming Concepts and Tools - Concepts of lower-level programming (C/C++) and explicit memory management - CSE 417: Algorithms and Computational Complexity - NP Complete problems, undecidable problems, graph theory and complexity - CSE 415: Introduction to Artificial Intelligence –Knowledge representation, logical and probabilistic reasoning, learning, language understanding, intro to game theory Where next?

Coursera Python Coursehttps:// Machine learning course: Computer Security: Computational Neuroscience: Principles of Computing (Great next step for math lovers): So many other resources outside of UW

Haskell: C++: Scala: Ruby: PHP: Racket: There are resources of 100’s of languages online. Pick one and mess with it! Learn a new Language! Fall 2015CSE373: Data Structures & Algorithms19

Using Unity: Using ActionScript: Make an Android App (using mostly Java): Learn to code games! Fall 2015CSE373: Data Structures & Algorithms20

Create an account on StackOverflow –Ask and answer questions! Subscribe to the Programming subreddit (the people are only a little pretentious ) Fork peoples projects on github and read their code Contribute to open source projects Participate in a hackathon Learn how to write scripts to automate things you don’t like spending time on! So much more!

Finally, thanks for the opportunity to work with you all! Fall 2015CSE373: Data Structures & Algorithms22