Download presentation
Presentation is loading. Please wait.
Published byDerrick Brooks Modified over 9 years ago
1
0 CS 130 A: Data Structures and Algorithms n Course webpage: www.cs.ucsb.edu/~suri/cs130a/cs130awww.cs.ucsb.edu/~suri/cs130a/cs130a n Email: suri@cs.ucsb.edusuri@cs.ucsb.edu n Office Hours: 11-12 Wed
2
1 CS 130A: Prerequisites n First upper division course n More in-depth coverage of data structures and algorithms n Prerequisites CS 16: stacks, queues, lists, binary search trees, … CS 40: functions, recurrence equations, proofs, … Programming competence assumed C, C++, and UNIX Refresh your coding and debugging skills Use TAs
3
2 Text Book n Data Structures & Algorithm Analysis in C++ by Mark Allen Weiss n Supplemental material from Introduction to Algorithms, by Cormen, Leiserson, Rivest, Stein [MIT book] n Lecture material primarily based on my notes n Lecture notes available on my webpage n See web page for lectures updates, assignments.
4
3 CS 130 A: Grade Composition n 2 Midterm exams (30% total) n 2 Programming assignments (30% total) n 1 Final exam (40%) n Homework assignments They will not be graded: they are to help you practice problem solving and prepare for exams Solving homework problems key to understanding. Solutions will be made available, so you can self-assess your understanding and work with TAs to correct your mistakes. n Attend all lectures! n Schedule is tentative. n Unexpected changes in midterm/exam dates
5
4 Some Advice and Caution n Posted schedule of lectures, assignments, exams is tentative n Reviews unplanned n Unexpected events may change dates of midterms n No makeup exams, no extensions. n Attend all lectures. n Read lecture notes (material) before coming to class.
6
5 Teaching Assistants n Teaching Assistants: Bay-Yuan Hsu (soulhsu@cs.ucsb.edu)soulhsu@cs.ucsb.edu Discussion: Wed 6:30-7:200 (GIRV 1119) TA hours: Mon 4-6 (Trailer 936) Semih Yavuz (syavuz@cs.ucsb.edu) Discussion: Tues 6:30-7:20 (GIRV 1116) TA hours: Tues 3:30-5:30 (Trailer 936)
7
6 Discussion Sections n No discussion section this week n Discussion Format No new material discussed It is meant as a help session Use them to go over homework assignments Programming pointers But TA are not there to help you write or debug code
8
7 What the course is about n The course is primarily about Data Structures Algorithms covered in small part (20%) CS 130B is the main algorithms course Data structures will be motivated by applications although we won’t discuss them in any detail
9
8 What the course is about n This is a Theory course, not programming/systems Primary focus on concepts, design, analysis, proofs Includes 2 coding assignments, but no programming taught C++, Unix competence expected n My teaching philosophy for 130A Discovery and insights. Big picture. Best understood in abstract form, with pen-paper Alternative Style: learn by coding. ( If coding is your thing, feel free to program the data structures.) Exams on conceptual understanding, not coding details. Homework exercises model for exam questions.
10
9 Course Outline n Introduction and Algorithm Analysis (Ch. 2) n Hash Tables: dictionary data structure (Ch. 5, CLRS) n Heaps: priority queue data structures (Ch. 6) n Balanced Search Trees: general search structures (Ch. 4.1-4.5) n Union-Find data structure (Ch. 8.1–8.5, Notes) n Graphs: Representations and basic algorithms Topological Sort (Ch. 9.1-9.2) Minimum spanning trees (Ch. 9.5) Shortest-path algorithms (Ch. 9.3.2) n B-Trees: External-Memory data structures (CLRS, Ch. 4.7) n kD-Trees: Multi-Dimensional data structures (Notes, Ch. 12.6) n Misc.: Streaming data, randomization (Notes)
11
10 What are your goals? n A step towards the BS degree n Just a required CS course n Becoming a well-rounded computer scientist n Intellectual (theory) aspects of CS n Clever ideas n Interview questions at elite software companies
12
11 My goals n Algorithms is my research expertise n A lively and enormously active area of research n Broad impact on almost every area of CS n My personal mission: transmit some of the knowledge and enthusiasm Win the best teacher award n Weekly Jokes Send me your jokes!
13
12 Why Study Algorithms and Data Structures? n Intellectual Pursuit
14
13 Why Study Algorithms and Data Structures? n To become better computer scientist
15
14 Why Study Algorithms and Data Structures? n World domination
16
Algorithms are Everywhere Search Engines GPS navigation Self-Driving Cars E-commerce Banking Medical diagnosis Robotics Algorithmic trading and so on … 15
17
Emergence of Computational Thinking Computational X Physics: simulate big bang, analyze LHC data, quantum computing Biology: model life, brain, design drugs Chemistry: simulate complex chemical reactions Mathematics: non-linear systems, dynamics Engineering: nano materials, communication systems, robotics Economics: macro-economics, banking networks, auctions Aeronautics: new designs, structural integrity Social Sciences, Political Science, Law ….
18
Emergence of Computational Thinking
19
18 Modern World of Computing n Age of Big Data, birth of Data Science n Digitization, communication, sensing, imaging… n Entertainment, science, maps, health, environmental, banking… n Volume, variety, velocity, variability n What all happens in 1 Internet minute?
20
19
21
Intelligent Computational Systems 20
22
21 Why Data Structures? n Data is just the raw material for information, analytics, business intelligence, advertising, etc n Computational efficient ways of analyzing, storing, searching, modeling data n For the purpose of this course, need for efficient data structures comes down to: Linear search does not scale for querying large databases N 2 processing or N 2 storage infeasible Smart data structures offer an intelligent tradeoff: Perform near-linear preprocessing so that queries can be answered in much better than linear time
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.