CSE332: Data Abstractions Lecture 26: Course Victory Lap Dan Grossman Spring 2012.

Slides:



Advertisements
Similar presentations
Toward Better Research: Cross-Threads Nick Feamster, Alex Gray, Charles Isbell College of Computing Georgia Tech.
Advertisements

Intro to CIT 594
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2001 Midterm Review Fri. Oct 26.
Ready-For-Use: 3 Weeks of Parallelism and Concurrency in a Required 2 nd -Year Data-Structures Course Dan Grossman University of Washington 2010 Workshop.
CSE332: Data Abstractions Lecture 28: Course Wrap-Up / Victory Lap Dan Grossman Spring 2010.
CSE332: Data Abstractions Lecture 1: Introduction; Stacks/Queues Dan Grossman Spring 2010.
June 13, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
DAST, Spring © L. Joskowicz 1 Data Structures – LECTURE 1 Introduction Motivation: algorithms and abstract data types Easy problems, hard problems.
1 Foundations of Software Design Lecture 1: Course Overview Intro to Binary and Boolean Marti Hearst SIMS, University of California at Berkeley.
Administrivia- Introduction CSE 373 Data Structures.
CS503: Tenth Lecture, Fall 2008 Review Michael Barnathan.
A-1 © 2000 UW CSE University of Washington Computer Programming I Lecture 1: Overview and Welcome Dr. Martin Dickey University of Washington.
Welcome and Overview Richard Anderson University of Washington June 30, 20081IUCEE: Welcome and Overview.
DAST, Spring © L. Joskowicz 1 Data Structures – LECTURE 1 Introduction Motivation: algorithms and abstract data types Easy problems, hard problems.
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.
HORSEED International University
CSE373: Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks/Queues Dan Grossman Fall 2013.
CSE341: Programming Languages Lecture 26 Course Victory Lap Dan Grossman Winter 2013.
CSE373: Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks/Queues Lauren Milne Summer 2015.
CS 415: Programming Languages Course Introduction Aaron Bloomfield Fall 2005.
Computer Science 102 Data Structures and Algorithms V Fall 2009 Lecture 1: administrative details Professor: Evan Korth New York University 1.
CS211: Course Overview George Mason University. Today’s topics Go over the syllabus Go over resources – Marmoset – Piazza – Textbook Highlight important.
© 2004 Goodrich, Tamassia CS2210 Data Structures and Algorithms Lecture 1: Course Overview Instructor: Olga Veksler.
Teaching Teaching Discrete Mathematics and Algorithms & Data Structures Online G.MirkowskaPJIIT.
CSE332: Data Abstractions Lecture 1: Introduction; Stacks/Queues Tyler Robison Summer 2010.
CS6501 Information Retrieval Course Policy Hongning Wang
CSCA48 Course Summary.
Computer Networks Lecture 1: Logistics Based on slides from D. Choffnes Northeastern U. and P. Gill from StonyBrook University Revised Autumn 2015 by S.
CSE373: Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks/Queues Nicki Dell Spring 2014.
CSE 332 Data Abstractions: Introduction and ADTs Kate Deibel Summer 2012 June 18, 2012CSE 332 Data Abstractions, Summer
CSE332: Data Abstractions Lecture 1: Introduction; ADTs; Stacks/Queues Dan Grossman Spring 2012.
Deriving Algorithms Ran Libeskind-Hadas Department of Computer Science Harvey Mudd College.
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 223 – Advanced Data Structures Course Introduction.
CSE373: Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks/Queues Kevin Quinn Fall 2015.
CSE373: Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks/Queues Catie Baker Spring 2015.
Test Prep CS 690 Test 1. How to Prepare – all topics  Make an outline for each subject/topic or make flash cards  For each major idea, write a short.
ICS202 Data Structures King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science Department.
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 223 – Advanced Data Structures Course Introduction.
Multi-Semester Effort and Experience to Integrate NSF/IEEE-TCPP PDC into Multiple Department- wide Core Courses of Computer Science and Technology Department.
CSE373: Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks/Queues Linda Shapiro Winter 2015.
CSE 331 Software Design & Implementation Dan Grossman Spring 2015 Course Victory Lap (Based on slides by Mike Ernst, Dan Grossman, David Notkin, Hal Perkins)
1 4/11/98 Welcome to CSE 143 Martin Dickey University of Washington Spring 1998 Slides based upon those of Ben Dugan, Winter 1998.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2002 Sections Ms. Susan Mitchell.
CSE373: Data Structures & Algorithms Lecture 23: Course Victory Lap Kevin Quinn Fall 2015.
CSE 326 Course Review David Kaplan Dept of Computer Science & Engineering Autumn 2001.
CSE332: Data Abstractions Lecture 12: Introduction to Sorting Dan Grossman Spring 2010.
Data Structures and Algorithms in Java AlaaEddin 2012.
CSE332: Data Abstractions Lecture 28: Course Wrap-up Tyler Robison Summer
CSE373: Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks/Queues Aaron Bauer Winter 2014.
IMS 4212: Course Introduction 1 Dr. Lawrence West, Management Dept., University of Central Florida ISM 4212 Dr. Larry West
CSE373: Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks/Queues Linda Shapiro Spring 2016.
Zach Tatlock / Winter 2016 CSE 331 Software Design and Implementation Lecture 24 Wrap Up.
Data Structures Dr. Abd El-Aziz Ahmed Assistant Professor Institute of Statistical Studies and Research, Cairo University Springer 2015 DS.
CSE341: Programming Languages Lecture 26 Course Victory Lap
CSE373: Data Structures & Algorithms
CS6501 Advanced Topics in Information Retrieval Course Policy
CSE 374 Programming Concepts & Tools
September 27 – Course introductions; Adts; Stacks and Queues
CS 583 Fall 2006 Analysis of Algorithms
CSE341: Programming Languages Lecture 26 Course Victory Lap
CSE 331 Software Design & Implementation
Introduction CSE 373 Data Structures.
Introduction to CS II Data Structures
PHYS 202 Intro Physics II Catalog description: A continuation of PHYS 201 covering the topics of electricity and magnetism, light, and modern physics.
CSE 331 Software Design & Implementation
CSE341: Programming Languages Lecture 26 Course Victory Lap
CSE341: Programming Languages Lecture 26 Course Victory Lap
Administrivia- Introduction
CSE341: Programming Languages Lecture 26 Course Victory Lap
Presentation transcript:

CSE332: Data Abstractions Lecture 26: Course Victory Lap Dan Grossman Spring 2012

Today Rest-of-course logistics: exam, etc. Review of main course themes Some thoughts on “data structures and threads” together Some time for questions and discussion Course evaluations –Thoughtful and constructive feedback deeply appreciated –(Including what you liked) Spring 20122CSE332: Data Abstractions

Final Exam As also indicated on the web page: Next Tuesday, 2:30-4:20 Intention is to test a subset of the topics in sorting, graphs, parallelism, concurrency, amortization –In other words, “stuff not covered by the midterm” –But as always the course topics build on earlier ones, especially algorithm analysis May need to read and write Java, among other things Spring 20123CSE332: Data Abstractions

Grading Schedule Needs grading: –Homework 8 [Stanley] –Project 3 [Tyler] –Final exam [Dan] Will let you know when grading is done –Encourage you to pick up your homework, exam –But Dan will be out of town June 9-20 Exams at department front desk during this time? Spring 20124CSE332: Data Abstractions

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 CSE332 special Spring 20125CSE332: Data Abstractions

Thank you! Big thank-you to your TAs –Section covers essential software topics and complements lecture: indispensable in my opinion –Lots of grading in CSE332: “free response” and “open design” better for students, harder for TAs Spring 20126CSE332: Data Abstractions

Thank you! And huge thank you to all of you –Great attitude –Extraordinarily good class attendance and questions –Occasionally laughed at stuff Spring 20127CSE332: Data Abstractions

Now five slides, completely unedited, from Lecture 1 –Hopefully they make more sense now –Hopefully we succeeded Spring 20128CSE332: Data Abstractions

Data Structures + Threads About 70% of the course is a “classic data-structures course” –Timeless, essential stuff –Core data structures and algorithms that underlie most software –How to analyze algorithms Plus a serious first treatment of programming with multiple threads –For parallelism: Use multiple processors to finish sooner –For concurrency: Correct access to shared resources –Will make many connections to the classic material Spring 20129CSE332: Data Abstractions

What is 332 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” Experience the purposes and headaches of multithreading Practice design, analysis, and implementation –The elegant interplay of “theory” and “engineering” at the core of computer science Spring CSE332: Data Abstractions

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 Dan’s take: 3 years from now this course will seem like it was a waste of your time because you can’t imagine not “just knowing” every main concept in it –Key abstractions computer scientists and engineers use almost every day –A big piece of what separates us from others Spring CSE332: Data Abstractions

Data structures (Often highly non-obvious) ways to organize information to enable efficient computation over that information –Key goal over the next week is introducing asymptotic analysis to precisely and generally describe efficient use of time and space A data structure supports certain operations, each with a: –Meaning: what does the operation do/return –Performance: how efficient is the operation Examples: –List with operations insert and delete –Stack with operations push and pop Spring CSE332: Data Abstractions

Trade-offs A data structure strives to provide many useful, efficient operations But there are unavoidable trade-offs: –Time vs. space –One operation more efficient if another less efficient –Generality vs. simplicity vs. performance That is why there are many data structures and educated CSEers internalize their main trade-offs and techniques –And recognize logarithmic < linear < quadratic < exponential Spring CSE332: Data Abstractions

Now thoughts on teaching parallelism and concurrency in this class –Something I have vigorously advocated personally –And it seems to be working Spring CSE332: Data Abstractions

Background “Old” data structures course taught more data structures and algorithms –Splay trees, leftist heaps, skew heaps, disjoint-set, network flow, … Threads are way more important than they used to be “Data structures” is not what most faculty would think of for the “best place to fit it”… Spring CSE332: Data Abstractions

The fit Hopefully it did not seem to odd to you, because: Work, span, Amdahl’s Law are about asymptotics Fork-join is great for divide-and-conquer Sequential cutoffs are like quicksort/insertion-sort cutoffs ADTs need critical sections Queues motivate passive waiting … (several more examples) Other main thesis: emphasize parallelism vs. concurrency distinction –Not always widely appreciated –Often mixed in practice Spring CSE332: Data Abstractions

Seems to work CSE332 instructors at UW Parts of materials picked up by 8 other schools so far –So please keep reporting typos, especially in reading notes A paper at SIGCSE2012 (main CS Education Conference) Spring CSE332: Data Abstractions

Last slide What do you think was good about 332? What could be improved? And: Don’t be a stranger: let me know how the rest of your time in CSE (and beyond!) goes… I really do like to know Spring CSE332: Data Abstractions