The Art of Data Structures Introduction. Richard E Sarkis CSC 162: The Art of Data Structures

Size: px
Start display at page:

Download "The Art of Data Structures Introduction. Richard E Sarkis CSC 162: The Art of Data Structures"

Transcription

1 The Art of Data Structures Introduction Richard E Sarkis CSC 162: The Art of Data Structures

2 Class Administrivia

3 Agenda To review the ideas of computer science, programming, and problem-solving To understand abstraction and the role it plays in the problem-solving process To understand and implement the notion of an abstract data type

4 Class Overview

5 Just the Facts, Ma am Mr. Richard Sarkis Bausch & Lomb Hall, Room 470 Take elevators to the 4th floor of B&L Hall, make a left and all the way to the end of the hall

6 Class Organization Class content provided mostly through a class website, and the rest through Blackboard Course components are: Lectures Assignments Quizzes

7 Lectures See class website for schedule! Course will include Lecture slides (i.e. my lecture notes) Live, demonstrative coding Discussions from the class Class participation is vital We are a small class (v.s people)

8 Syllabus

9 What is Computer Science?

10 Why Computer Science? Everything is bits and computation! Astronomy - simulation and observation data Biology Protein folding Music Sound processing Mechanical Engineering Load bearing Literature Text analysis What are you studying?

11 Lies, damned lies Common misconceptions about Computer Science Computer science is the study of computers Computer science is the study of how to write computer programs Computer science is the study of the uses and applications of computers and software

12 What would we like our children- the general public of the future to learn about computer science in schools? We need to do away with the myth that computer science is about computers. Computer science is no more about computers than astronomy is about telescopes, biology is about microscopes or chemistry is about beakers and test tubes. Science is not about tools, it is about how we use them and what we find out when we do." Micheal R. Fellows, Ian Parberry (1993) "SIGACT trying to get children excited about CS". in: Computing Research News. January 1993.

13 Computer science is the study of computation. Feasibility, structure, expression, and mechanization of the methodical processes (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information

14 What a tool The computer is just a tool, described and realized by the concepts computer science

15 Why Programming?

16 The art of programming is the art of organizing complexity, of mastering multitude and avoiding its bastard chaos as effectively as possible. Edsger W. Dijkstra (1970) "Notes On Structured Programming" (EWD249), Section 3 ("On The Reliability of Mechanisms"), p. 7.

17 Why Programming? Simply using off the shelf applications will get you a long way: Spreadsheets, Photo editors, word processors But if you are doing novel, creative work, sooner or later, you will need to solve a new problem Learning good principles of programming will make it possible with more fun and less frustration

18 Programming Take a computing problem and create an executable program Analyze and understand the problem Design a data model and an algorithm Data model: way to represent the information Algorithm: formal computation steps Implement the algorithm in a computer language

19 Programming Programming!= solving a problem Programming is teaching somebody else how to solve a problem Somebody else is a computer A computer is a device that can be programmed to carry out a finite set of operations on binary numbers Computers can t do anything that they are not programmed to do

20 Procedural Abstraction n sqrt( ) square root of n

21 Tic-Tac-Toe An almost universally known game To create a Tic-Tac-Toe program you have to teach a computer: The rules of the game A strategy to play the game (Plus other things, like input/output, etc)

22 Programming Example

23 Why Python?

24 Why Python? It's powerful, accessible and used in many fields

25 Why Python? Python is a language of choice for: Scientists (NASA) Web site builders (Reddit) Researchers in the humanities (Somebody ) Application developers (Dropbox)

26 Why Python? We'll be using Version 3.6 or later

27 Why Python? Python can be used in a variety of contexts, we'll be using Jupyter notebooks This class will use Jupyter notebooks exclusively!

28 Why Python? Python installations can be complex with the large number of third-party packages (Jupyter, NumPy, matplotlib, etc.) Anaconda is a great re-packaging of Python and a variety of packages: downloads

29 Why Data Structures and Algorithms?

30 Why Data Structures and Algorithms? Our goal is to write good programs

31 Why Data Structures and Algorithms? Write computer programs in some language (e.g. Python) Mathematical maturity to understand proof Abstraction

32 Why Data Structures and Algorithms? Imagine it's You're a law clerk, charged with organizing the records of a newly created law firm. How do you expect people to use the files? What sorts of questions will they want to answer -- what sorts of things will they want to look up?

33 Why Data Structures and Algorithms? Records of a particular case, by: date plaintiff, defendant, client name court docket # All cases with given: plaintiff defendant judge point of law size of award

34 Why Data Structures and Algorithms? What other indices would you keep? How hard would it be to find things for which you don't have an index? What shortcuts might be possible?

35 Why Data Structures and Algorithms? The list of operations you want the files to support is analogous to an Abstract Data Type (ADT). The physical organization is analogous to a Data Structure (DS).

36 Why Data Structures and Algorithms? It's very important to distinguish between these two concepts We will look at three main things this semester: ADTs, DSes, and algorithms

37 Why Data Structures and Algorithms? An Abstract Data Type (ADT) represents a particular set of behaviors You can formally define, perhaps using mathematical logic) what an ADT is/does

38 Why Data Structures and Algorithms? For example, a Stack is a list implements a LIFO policy on additions/deletions

39 Why Data Structures and Algorithms? A data structure is more concrete Typically, it is a technique or strategy for implementing an ADT

40 Why Data Structures and Algorithms? Use a linked list or an array to implement a stack class

41 Why Data Structures and Algorithms? stack queue Some common ADTs that all trained programmers know about: priority queue dictionary sequence, set

42 Why Data Structures and Algorithms? Some common data structures used to implement those ADTS: array linked list hash table (open, closed, circular trees (binary search trees, heaps, AVL trees, 2-3 trees, tries, red/black trees, B-trees)

43 Computer Science is a science of abstraction creating the right model for thinking about a problem and devising the appropriate mechanizable techniques to solve it. - A. Aho

44 Why Data Structures and Algorithms? Abstract data types has similarity to procedural abstraction A logical description of how we view the data A set of operations allowed No care about implementation underneath

45 Why Data Structures and Algorithms? User Encapsulation provides information hiding Hides the details of the implementation Interface Implementation Operations

46 Case in Point: Factoring

47 Case in Point: Factoring Computers are fast, but some problems still take a long time Example : 7 x 13 = 91 7 x 13 =? (multiplication),? x? = 91 (factoring) Giant numbers : 100 digits RSA factoring challenge (google) Rsa, cryptography, factoring

48 Case in Point: Factoring RSA Challenge RSA-704 Status: Factored in 2012 Decimal Digits: Decimal Digit Sum: 1009

49 Case in Point: Factoring RSA Challenge RSA-220 Status : Not Factored Decimal Digits : 220 (729 bits)

50 Case in Point: Factoring What's so hard about factoring?

51 Case in Point: Factoring What's so hard about factoring? Divide by 2, 3, 5, 7... until you find a factor Brute Force Search is very slow when the search space is huge Is searching necessary? (so far, it seems so)

52 Case in Point: Factoring Needle in a haystack problem Searching may not be necessary if you have a magnet (closed form) Figuring triangle sum

53 Big-O

54 Big-O Given an algorithm can you estimate how much time and memory it will take to process a given amount of data?

55 Big-O I have two programs They both do the same thing I measure their run time

56 Big-O prog1 takes 1 sec to process a 1GB array and 2.25 sec to process a 1.5GB array. prog2 takes 3 sec to process a 1GB array and sec to process a 1.5GB array. Which should I use on my 100GB array?

57 Big-O

58 Big-O How many people have heard of this? It captures the notion of asymptotic complexity how much time (and sometimes space) it takes to solve a problem of a given input size If you keep taking CS, you'll learn a lot more about this in 173, 280, or 282

59 Big-O Sorting is a canonical example For lists of length N, we'll look at sorts that take time proportional to 2 N, N 2, Nlog(N), and N (in special cases) Note that if N is big enough, Nlog(N) is still less than N 2 (Does everybody know what log is?)

60 Conclusion This course will cover a variety of intermediate topics: Analytical Process Standard Techniques Data Structures Lists, Stacks, Queues, Trees, Heaps, Hashes, Graphs, Sets

61 Conclusion Algorithms Sorting, Greedy, Backtracking, Randomized, Dynamic Programming Mathematics Proof by Induction Recurrence Relations

62 Questions?

SRM UNIVERSITY FACULTY OF ENGINEERING AND TECHNOLOGY SCHOOL OF COMPUTING DEPARTMENT OF CSE COURSE PLAN. Sec. Name Office Office hour Mail id

SRM UNIVERSITY FACULTY OF ENGINEERING AND TECHNOLOGY SCHOOL OF COMPUTING DEPARTMENT OF CSE COURSE PLAN. Sec. Name Office Office hour Mail id SRM UNIVERSITY FACULTY OF ENGINEERING AND TECHNOLOGY SCHOOL OF COMPUTING DEPARTMENT OF CSE COURSE PLAN Course Code Course Title : DATA STRUCTURES AND ALGORITHMS Semester : I Course Time : July Dec 207

More information

AP Computer Science 4325

AP Computer Science 4325 4325 Instructional Unit Algorithm Design Techniques -divide-and-conquer The students will be -Decide whether an algorithm -classroom discussion -backtracking able to classify uses divide-and-conquer, -worksheets

More information

COMP Analysis of Algorithms & Data Structures

COMP Analysis of Algorithms & Data Structures COMP 3170 - Analysis of Algorithms & Data Structures Shahin Kamali Topic 1 - Introductions University of Manitoba Picture is from the cover of the textbook CLRS. COMP 3170 - Analysis of Algorithms & Data

More information

Data Structures and Algorithms

Data Structures and Algorithms Data Structures and Algorithms About the course (objectives, outline, recommended reading) Problem solving Notions of Algorithmics (growth of functions, efficiency, programming model, example analysis)

More information

Data Structures and Algorithms

Data Structures and Algorithms Berner Fachhochschule - Technik und Informatik Data Structures and Algorithms Topic 1: Algorithm Analysis Philipp Locher FS 2018 Outline Course and Textbook Overview Analysis of Algorithm Pseudo-Code and

More information

CSC2100-Data Structures

CSC2100-Data Structures CSC2100-Data Structures Final Remarks Department of Computer Science and Engineering The Chinese University of Hong Kong, Shatin, New Territories Interesting Topics More Graph Algorithms Finding cycles,

More information

CSE373: Data Structures & Algorithms Lecture 28: Final review and class wrap-up. Nicki Dell Spring 2014

CSE373: Data Structures & Algorithms Lecture 28: Final review and class wrap-up. Nicki Dell Spring 2014 CSE373: Data Structures & Algorithms Lecture 28: Final review and class wrap-up Nicki Dell Spring 2014 Final Exam As also indicated on the web page: Next Tuesday, 2:30-4:20 in this room Cumulative but

More information

Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi.

Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi. Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 18 Tries Today we are going to be talking about another data

More information

Hash Tables. CS 311 Data Structures and Algorithms Lecture Slides. Wednesday, April 22, Glenn G. Chappell

Hash Tables. CS 311 Data Structures and Algorithms Lecture Slides. Wednesday, April 22, Glenn G. Chappell Hash Tables CS 311 Data Structures and Algorithms Lecture Slides Wednesday, April 22, 2009 Glenn G. Chappell Department of Computer Science University of Alaska Fairbanks CHAPPELLG@member.ams.org 2005

More information

SRM UNIVERSITY FACULTY OF ENGINEERING AND TECHNOLOGY SCHOOL OF COMPUTING DEPARTMENT OF CSE COURSE PLAN

SRM UNIVERSITY FACULTY OF ENGINEERING AND TECHNOLOGY SCHOOL OF COMPUTING DEPARTMENT OF CSE COURSE PLAN SRM UNIVERSITY FACULTY OF ENGINEERING AND TECHNOLOGY SCHOOL OF COMPUTING DEPARTMENT OF CSE COURSE PLAN Course Code : CS0201 Course Title : Data Structures using C++ Semester : III Course Time : JUL DEC

More information

Design and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute. Module 02 Lecture - 45 Memoization

Design and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute. Module 02 Lecture - 45 Memoization Design and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute Module 02 Lecture - 45 Memoization Let us continue our discussion of inductive definitions. (Refer Slide Time: 00:05)

More information

An Introduction to Computer Science. Misconceptions about Computer Science. Misconceptions ( cont. ) CMPUT101 Introduction to Computing - Spring 2001

An Introduction to Computer Science. Misconceptions about Computer Science. Misconceptions ( cont. ) CMPUT101 Introduction to Computing - Spring 2001 An Introduction to Computer Science Chapter 1 Topics: The Definition of Computer Science Algorithms CMPUT101 Introduction to Computing (c) Yngvi Bjornsson 1 Misconceptions about Computer Science Computer

More information

CCCCS meeting October 31, Transferring Courses and Students

CCCCS meeting October 31, Transferring Courses and Students CCCCS meeting October 31, 2014 Transferring Courses and Students Louis Steinberg lou@cs.rutgers.edu Based on slides & info from Jerry Richter These slides available a http://www.cs.rutgers.edu/~lou 1 Outline

More information

Algorithms and Data Structures

Algorithms and Data Structures Algorithm Analysis Page 1 - Algorithm Analysis Dr. Fall 2008 Algorithm Analysis Page 2 Outline Textbook Overview Analysis of Algorithm Pseudo-Code and Primitive Operations Growth Rate and Big-Oh Notation

More information

Binary Search Trees Treesort

Binary Search Trees Treesort Treesort CS 311 Data Structures and Algorithms Lecture Slides Friday, November 13, 2009 Glenn G. Chappell Department of Computer Science University of Alaska Fairbanks CHAPPELLG@member.ams.org 2005 2009

More information

Total No. of Questions :09] [Total No. of Pages : 02. II/IV B.Tech. DEGREE EXAMINATIONS, NOV/DEC First Semester CSE/IT DATA STRUCTURES USING C

Total No. of Questions :09] [Total No. of Pages : 02. II/IV B.Tech. DEGREE EXAMINATIONS, NOV/DEC First Semester CSE/IT DATA STRUCTURES USING C CSE/IT 216 (CR) Total No. of Questions :09] [Total No. of Pages : 02 Time: Three Hours 1. a. ADT II/IV B.Tech. DEGREE EXAMINATIONS, NOV/DEC- 2015 First Semester CSE/IT DATA STRUCTURES USING C Answer Question

More information

CPSC 221: Algorithms and Data Structures Lecture #1: Stacks and Queues

CPSC 221: Algorithms and Data Structures Lecture #1: Stacks and Queues CPSC 221: Algorithms and Data Structures Lecture #1: Stacks and Queues Alan J. Hu (Slides borrowed from Steve Wolfman) Be sure to check course webpage! http://www.ugrad.cs.ubc.ca/~cs221 1 Lab 1 is available.

More information

Theory of Computation Prof. Raghunath Tewari Department of Computer Science and Engineering Indian Institute of Technology, Kanpur

Theory of Computation Prof. Raghunath Tewari Department of Computer Science and Engineering Indian Institute of Technology, Kanpur Theory of Computation Prof. Raghunath Tewari Department of Computer Science and Engineering Indian Institute of Technology, Kanpur Lecture 01 Introduction to Finite Automata Welcome everybody. This is

More information

Partha Sarathi Mandal

Partha Sarathi Mandal MA 252: Data Structures and Algorithms Lecture 1 http://www.iitg.ernet.in/psm/indexing_ma252/y12/index.html Partha Sarathi Mandal Dept. of Mathematics, IIT Guwahati Time Table D / T 8-8:55 9-9:55 10-10:55

More information

CPSC 221: Algorithms and Data Structures ADTs, Stacks, and Queues

CPSC 221: Algorithms and Data Structures ADTs, Stacks, and Queues CPSC 221: Algorithms and Data Structures ADTs, Stacks, and Queues Alan J. Hu (Slides borrowed from Steve Wolfman) Be sure to check course webpage! http://www.ugrad.cs.ubc.ca/~cs221 1 Lab 1 available very

More information

CS 206 Introduction to Computer Science II

CS 206 Introduction to Computer Science II CS 206 Introduction to Computer Science II 01 / 21 / 2015 Instructor: Michael Eckmann Today s Topics Introduction of myself Review the syllabus List of Topics we'll cover Start Java review Who is your

More information

COMP251: Algorithms and Data Structures. Jérôme Waldispühl School of Computer Science McGill University

COMP251: Algorithms and Data Structures. Jérôme Waldispühl School of Computer Science McGill University COMP251: Algorithms and Data Structures Jérôme Waldispühl School of Computer Science McGill University About Me Jérôme Waldispühl Associate Professor of Computer Science I am conducting research in Bioinformatics

More information

Virtual University of Pakistan

Virtual University of Pakistan Virtual University of Pakistan Department of Computer Science Course Outline Course Instructor Dr. Sohail Aslam E mail Course Code Course Title Credit Hours 3 Prerequisites Objectives Learning Outcomes

More information

CSE 332: Data Structures & Parallelism Lecture 12: Comparison Sorting. Ruth Anderson Winter 2019

CSE 332: Data Structures & Parallelism Lecture 12: Comparison Sorting. Ruth Anderson Winter 2019 CSE 332: Data Structures & Parallelism Lecture 12: Comparison Sorting Ruth Anderson Winter 2019 Today Sorting Comparison sorting 2/08/2019 2 Introduction to sorting Stacks, queues, priority queues, and

More information

CSC 172 Data Structures and Algorithms. Fall 2017 TuTh 3:25 pm 4:40 pm Aug 30- Dec 22 Hoyt Auditorium

CSC 172 Data Structures and Algorithms. Fall 2017 TuTh 3:25 pm 4:40 pm Aug 30- Dec 22 Hoyt Auditorium CSC 172 Data Structures and Algorithms Fall 2017 TuTh 3:25 pm 4:40 pm Aug 30- Dec 22 Hoyt Auditorium Agenda Administrative aspects Brief overview of the course Hello world in Java CSC 172, Fall 2017, UR

More information

CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims. Lecture 25: Review and Open Problems

CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims. Lecture 25: Review and Open Problems CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims Lecture 25: Review and Open Problems Course Overview Programming Concepts Object-Oriented Programming Interfaces

More information

MSc(IT) Program. MSc(IT) Program Educational Objectives (PEO):

MSc(IT) Program. MSc(IT) Program Educational Objectives (PEO): MSc(IT) Program Master of Science (Information Technology) is an intensive program designed for students who wish to pursue a professional career in Information Technology. The courses have been carefully

More information

Algorithms in Systems Engineering IE172. Midterm Review. Dr. Ted Ralphs

Algorithms in Systems Engineering IE172. Midterm Review. Dr. Ted Ralphs Algorithms in Systems Engineering IE172 Midterm Review Dr. Ted Ralphs IE172 Midterm Review 1 Textbook Sections Covered on Midterm Chapters 1-5 IE172 Review: Algorithms and Programming 2 Introduction to

More information

DATA STRUCTURES WITH C++ USING STL (2ND EDITION) BY WILLIAM H. FORD, WILLIAM R. TOPP

DATA STRUCTURES WITH C++ USING STL (2ND EDITION) BY WILLIAM H. FORD, WILLIAM R. TOPP Read Online and Download Ebook DATA STRUCTURES WITH C++ USING STL (2ND EDITION) BY WILLIAM H. FORD, WILLIAM R. TOPP DOWNLOAD EBOOK : DATA STRUCTURES WITH C++ USING STL (2ND EDITION) BY WILLIAM H. FORD,

More information

Scientific Computing using Python

Scientific Computing using Python Scientific Computing using Python Swaprava Nath Dept. of CSE IIT Kanpur mini-course webpage: https://swaprava.wordpress.com/a-short-course-on-python/ Disclaimer: the contents of this lecture series are

More information

CS302 Data Structures using C++

CS302 Data Structures using C++ CS302 Data Structures using C++ Study Guide for the Final Exam Fall 2018 Revision 1.1 This document serves to help you prepare towards the final exam for the Fall 2018 semester. 1. What topics are to be

More information

Programming for Engineers in Python

Programming for Engineers in Python Programming for Engineers in Python Lecture 13: Shit Happens Autumn 2011-12 1 Lecture 12: Highlights Dynamic programming Overlapping subproblems Optimal structure Memoization Fibonacci Evaluating trader

More information

Skill 1: Multiplying Polynomials

Skill 1: Multiplying Polynomials CS103 Spring 2018 Mathematical Prerequisites Although CS103 is primarily a math class, this course does not require any higher math as a prerequisite. The most advanced level of mathematics you'll need

More information

CSCI 136 Data Structures & Advanced Programming. Fall 2018 Instructors Bill Lenhart & Bill Jannen

CSCI 136 Data Structures & Advanced Programming. Fall 2018 Instructors Bill Lenhart & Bill Jannen CSCI 136 Data Structures & Advanced Programming Fall 2018 Instructors Bill Lenhart & Bill Jannen Administrative Details Class roster: Who s here? And who s trying to get in? Handout: Class syllabus Lecture

More information

Computer Algorithms CISC4080 CIS, Fordham Univ. Instructor: X. Zhang Lecture 1

Computer Algorithms CISC4080 CIS, Fordham Univ. Instructor: X. Zhang Lecture 1 Computer Algorithms CISC4080 CIS, Fordham Univ. Instructor: X. Zhang Lecture 1 Acknowledgement The set of slides have use materials from the following resources Slides for textbook by Dr. Y. Chen from

More information

Computer Algorithms CISC4080 CIS, Fordham Univ. Acknowledgement. Outline. Instructor: X. Zhang Lecture 1

Computer Algorithms CISC4080 CIS, Fordham Univ. Acknowledgement. Outline. Instructor: X. Zhang Lecture 1 Computer Algorithms CISC4080 CIS, Fordham Univ. Instructor: X. Zhang Lecture 1 Acknowledgement The set of slides have use materials from the following resources Slides for textbook by Dr. Y. Chen from

More information

Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5

Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5 Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5 [talking head] This lecture we study theory design and implementation. Programmers have two roles to play here. In one role, they

More information

CSc 225 Algorithms and Data Structures I Algorithm Analysis

CSc 225 Algorithms and Data Structures I Algorithm Analysis CSc 225 Algorithms and Data Structures I Algorithm Analysis Jianping Pan Fall 2007 09/06/07 CSc 225 1 What is an Algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem

More information

Lecture Summary CSC 263H. August 5, 2016

Lecture Summary CSC 263H. August 5, 2016 Lecture Summary CSC 263H August 5, 2016 This document is a very brief overview of what we did in each lecture, it is by no means a replacement for attending lecture or doing the readings. 1. Week 1 2.

More information

Horn Formulae. CS124 Course Notes 8 Spring 2018

Horn Formulae. CS124 Course Notes 8 Spring 2018 CS124 Course Notes 8 Spring 2018 In today s lecture we will be looking a bit more closely at the Greedy approach to designing algorithms. As we will see, sometimes it works, and sometimes even when it

More information

CS2102, B11 Exam 1. Name:

CS2102, B11 Exam 1. Name: CS2102, B11 Exam 1 Name: You have 50 minutes to complete the problems on the following pages. There should be sufficient space provided for your answers. If a problem asks you to create a class hierarchy,

More information

CSE 373: Data Structures and Algorithms

CSE 373: Data Structures and Algorithms CSE 373: Data Structures and Algorithms Lecture 19: Comparison Sorting Algorithms Instructor: Lilian de Greef Quarter: Summer 2017 Today Intro to sorting Comparison sorting Insertion Sort Selection Sort

More information

CSC148H Week 3. Sadia Sharmin. May 24, /20

CSC148H Week 3. Sadia Sharmin. May 24, /20 CSC148H Week 3 Sadia Sharmin May 24, 2017 1/20 Client vs. Developer I For the first couple of weeks, we have played the role of class designer I However, you are also often in the opposite role: when a

More information

CS103 Lecture 1 Slides. Introduction Mark Redekopp

CS103 Lecture 1 Slides. Introduction Mark Redekopp 1 CS103 Lecture 1 Slides Introduction Mark Redekopp 2 What is Computer Science All science is computer science It is very interdisciplinary: Math, Engineering, Medicine, Natural sciences, Art, Linguistics,

More information

Learning Goals. CS221: Algorithms and Data Structures Lecture #3 Mind Your Priority Queues. Today s Outline. Back to Queues. Priority Queue ADT

Learning Goals. CS221: Algorithms and Data Structures Lecture #3 Mind Your Priority Queues. Today s Outline. Back to Queues. Priority Queue ADT CS: Algorithms and Data Structures Lecture # Mind Your Priority Queues Steve Wolfman 0W Learning Goals Provide examples of appropriate applications for priority queues. Describe efficient implementations

More information

Lecture Notes for Advanced Algorithms

Lecture Notes for Advanced Algorithms Lecture Notes for Advanced Algorithms Prof. Bernard Moret September 29, 2011 Notes prepared by Blanc, Eberle, and Jonnalagedda. 1 Average Case Analysis 1.1 Reminders on quicksort and tree sort We start

More information

COURSE: DATA STRUCTURES USING C & C++ CODE: 05BMCAR17161 CREDITS: 05

COURSE: DATA STRUCTURES USING C & C++ CODE: 05BMCAR17161 CREDITS: 05 COURSE: DATA STRUCTURES USING C & C++ CODE: 05BMCAR17161 CREDITS: 05 Unit 1 : LINEAR DATA STRUCTURES Introduction - Abstract Data Types (ADT), Arrays and its representation Structures, Stack, Queue, Circular

More information

CITS3001. Algorithms, Agents and Artificial Intelligence. Semester 2, 2016

CITS3001. Algorithms, Agents and Artificial Intelligence. Semester 2, 2016 CITS3001 Algorithms, Agents and Artificial Intelligence Semester 2, 2016 Tim French School of Computer Science & Software Eng. The University of Western Australia 2. Review of algorithmic concepts CLRS,

More information

ECE Spring 2018 Problem Set #0 Due: 1/30/18

ECE Spring 2018 Problem Set #0 Due: 1/30/18 ECE 45234 - Spring 2018 Problem Set #0 Due: 1/30/18 The purpose of this first problem set is to remind you of the material you need from 2574 and help get you up-to-speed with python. This course uses

More information

Lecture 1. Introduction

Lecture 1. Introduction Lecture 1 Introduction 1 Lecture Contents 1. What is an algorithm? 2. Fundamentals of Algorithmic Problem Solving 3. Important Problem Types 4. Fundamental Data Structures 2 1. What is an Algorithm? Algorithm

More information

School of Computing and Information Sciences. Course Title: Data Structures Date: 3/30/2010 Course Number: COP 3530 Number of Credits: 3

School of Computing and Information Sciences. Course Title: Data Structures Date: 3/30/2010 Course Number: COP 3530 Number of Credits: 3 Course Title: Date: 3/30/2010 Course Number: Number of Credits: 3 Subject Area: Programming Subject Area Coordinator: Tim Downey email: downeyt@cis.fiu.edu Catalog Description: Basic concepts of data organization,

More information

CS1 Lecture 2 Jan. 16, 2019

CS1 Lecture 2 Jan. 16, 2019 CS1 Lecture 2 Jan. 16, 2019 Contacting me/tas by email You may send questions/comments to me/tas by email. For discussion section issues, sent to TA and me For homework or other issues send to me (your

More information

Scientific Computing: Lecture 1

Scientific Computing: Lecture 1 Scientific Computing: Lecture 1 Introduction to course, syllabus, software Getting started Enthought Canopy, TextWrangler editor, python environment, ipython, unix shell Data structures in Python Integers,

More information

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Sorting lower bound and Linear-time sorting Date: 9/19/17

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Sorting lower bound and Linear-time sorting Date: 9/19/17 601.433/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Sorting lower bound and Linear-time sorting Date: 9/19/17 5.1 Introduction You should all know a few ways of sorting in O(n log n)

More information

CSE 417 Practical Algorithms. (a.k.a. Algorithms & Computational Complexity)

CSE 417 Practical Algorithms. (a.k.a. Algorithms & Computational Complexity) CSE 417 Practical Algorithms (a.k.a. Algorithms & Computational Complexity) Outline for Today > Course Goals & Overview > Administrivia > Greedy Algorithms Why study algorithms? > Learn the history of

More information

What is an algorithm?

What is an algorithm? Reminders CS 142 Lecture 3 Analysis, ADTs & Objects Program 1 was assigned - Due on 1/27 by 11:55pm 2 Abstraction Measuring Algorithm Efficiency When you utilize the mylist.index(item) function you are

More information

CSE373: Data Structure & Algorithms Lecture 18: Comparison Sorting. Dan Grossman Fall 2013

CSE373: Data Structure & Algorithms Lecture 18: Comparison Sorting. Dan Grossman Fall 2013 CSE373: Data Structure & Algorithms Lecture 18: Comparison Sorting Dan Grossman Fall 2013 Introduction to Sorting Stacks, queues, priority queues, and dictionaries all focused on providing one element

More information

Algorithms and Data Structures (INF1) Lecture 15/15 Hua Lu

Algorithms and Data Structures (INF1) Lecture 15/15 Hua Lu Algorithms and Data Structures (INF1) Lecture 15/15 Hua Lu Department of Computer Science Aalborg University Fall 2007 This Lecture Minimum spanning trees Definitions Kruskal s algorithm Prim s algorithm

More information

CS/COE 1501 cs.pitt.edu/~bill/1501/ Introduction

CS/COE 1501 cs.pitt.edu/~bill/1501/ Introduction CS/COE 1501 cs.pitt.edu/~bill/1501/ Introduction Meta-notes These notes are intended for use by students in CS1501 at the University of Pittsburgh. They are provided free of charge and may not be sold

More information

INDEX. Cambridge University Press How to Think About Algorithms Jeff Edmonds Index More information

INDEX. Cambridge University Press How to Think About Algorithms Jeff Edmonds Index More information INDEX 439 abstract data type (ADT), 1, 43 exercise solutions, 414 functions vs., 43 merging with queue, 56 specifications/implementations, 44 dictionary, 47 graphs, 47 link list implementation, 51 list,

More information

The Limits of Sorting Divide-and-Conquer Comparison Sorts II

The Limits of Sorting Divide-and-Conquer Comparison Sorts II The Limits of Sorting Divide-and-Conquer Comparison Sorts II CS 311 Data Structures and Algorithms Lecture Slides Monday, October 12, 2009 Glenn G. Chappell Department of Computer Science University of

More information

CISC 1100: Structures of Computer Science

CISC 1100: Structures of Computer Science CISC 1100: Structures of Computer Science Chapter 8 Algorithms Gary M. Weiss Fordham University Department of Computer and Information Sciences Fall, 2010 What is an algorithm? There are many ways to define

More information

Processor. Lecture #2 Number Rep & Intro to C classic components of all computers Control Datapath Memory Input Output

Processor. Lecture #2 Number Rep & Intro to C classic components of all computers Control Datapath Memory Input Output CS61C L2 Number Representation & Introduction to C (1) insteecsberkeleyedu/~cs61c CS61C : Machine Structures Lecture #2 Number Rep & Intro to C Scott Beamer Instructor 2007-06-26 Review Continued rapid

More information

Verification and Parallelism in Intro CS. Dan Licata Wesleyan University

Verification and Parallelism in Intro CS. Dan Licata Wesleyan University Verification and Parallelism in Intro CS Dan Licata Wesleyan University Starting in 2011, Carnegie Mellon revised its intro CS curriculum Computational thinking [Wing] Specification and verification Parallelism

More information

Draw the resulting binary search tree. Be sure to show intermediate steps for partial credit (in case your final tree is incorrect).

Draw the resulting binary search tree. Be sure to show intermediate steps for partial credit (in case your final tree is incorrect). Problem 1. Binary Search Trees (36 points) a) (12 points) Assume that the following numbers are inserted into an (initially empty) binary search tree in the order shown below (from left to right): 42 36

More information

(Ca...

(Ca... 1 of 8 9/7/18, 1:59 PM Getting started with 228 computational exercises Many physics problems lend themselves to solution methods that are best implemented (or essentially can only be implemented) with

More information

CS 4349 Lecture August 21st, 2017

CS 4349 Lecture August 21st, 2017 CS 4349 Lecture August 21st, 2017 Main topics for #lecture include #administrivia, #algorithms, #asymptotic_notation. Welcome and Administrivia Hi, I m Kyle! Welcome to CS 4349. This a class about algorithms.

More information

Abstract Data Structures IB Computer Science. Content developed by Dartford Grammar School Computer Science Department

Abstract Data Structures IB Computer Science. Content developed by Dartford Grammar School Computer Science Department Abstract Data Structures IB Computer Science Content developed by Dartford Grammar School Computer Science Department HL Topics 1-7, D1-4 1: System design 2: Computer Organisation 3: Networks 4: Computational

More information

CSE 373: Data Structures and Algorithms

CSE 373: Data Structures and Algorithms CSE 373: Data Structures and Algorithms Lecture 19: Comparison Sorting Algorithms Instructor: Lilian de Greef Quarter: Summer 2017 Today Intro to sorting Comparison sorting Insertion Sort Selection Sort

More information

ADMINISTRATIVE MANAGEMENT COLLEGE

ADMINISTRATIVE MANAGEMENT COLLEGE First Semester ADMINISTRATIVE MANAGEMENT COLLEGE BACHELOR OF COMPUTER APPLICATION COURSE OUTCOME (CO) Problem solving techniques Using C CO 1: Understand the basic concepts of programming, software and

More information

CS2 Algorithms and Data Structures Note 6

CS2 Algorithms and Data Structures Note 6 CS Algorithms and Data Structures Note 6 Priority Queues and Heaps In this lecture, we will discuss priority queues, another important ADT. As stacks and queues, priority queues store arbitrary collections

More information

Data Structure. Lecture#2: Data Structures and Algorithms. U Kang Seoul National University. U Kang (2016) 1

Data Structure. Lecture#2: Data Structures and Algorithms. U Kang Seoul National University. U Kang (2016) 1 Data Structure Lecture#2: Data Structures and Algorithms U Kang Seoul National University U Kang (2016) 1 In This Lecture Learn what to consider in selecting right data structures Understand the need for

More information

Welcome to CSE 326: Data Structures & Algorithms

Welcome to CSE 326: Data Structures & Algorithms Welcome to CSE 326: Data Structures & Algorithms Instructor: Rajesh Rao (rao@cs.washington.edu) TAs: Vassily Litvinov (vass@cs) Christophe Bisciglia (chrisrb@cs) Class web page for syllabus and course

More information

looking ahead to see the optimum

looking ahead to see the optimum ! Make choice based on immediate rewards rather than looking ahead to see the optimum! In many cases this is effective as the look ahead variation can require exponential time as the number of possible

More information

CSE 332 Winter 2015: Midterm Exam (closed book, closed notes, no calculators)

CSE 332 Winter 2015: Midterm Exam (closed book, closed notes, no calculators) _ UWNetID: Lecture Section: A CSE 332 Winter 2015: Midterm Exam (closed book, closed notes, no calculators) Instructions: Read the directions for each question carefully before answering. We will give

More information

What is an algorithm? CISC 1100/1400 Structures of Comp. Sci./Discrete Structures Chapter 8 Algorithms. Applications of algorithms

What is an algorithm? CISC 1100/1400 Structures of Comp. Sci./Discrete Structures Chapter 8 Algorithms. Applications of algorithms What is an algorithm? CISC 1100/1400 Structures of Comp. Sci./Discrete Structures Chapter 8 Algorithms Gary M. Weiss Fordham University Department of Computer and Information Sciences Copyright Gary M.

More information

: Intro Programming for Scientists and Engineers Final Exam

: Intro Programming for Scientists and Engineers Final Exam Final Exam Page 1 of 6 600.112: Intro Programming for Scientists and Engineers Final Exam Peter H. Fröhlich phf@cs.jhu.edu December 20, 2012 Time: 40 Minutes Start here: Please fill in the following important

More information

COMP 250 Fall priority queues, heaps 1 Nov. 9, 2018

COMP 250 Fall priority queues, heaps 1 Nov. 9, 2018 COMP 250 Fall 2018 26 - priority queues, heaps 1 Nov. 9, 2018 Priority Queue Recall the definition of a queue. It is a collection where we remove the element that has been in the collection for the longest

More information

Lecture 1: Overview

Lecture 1: Overview 15-150 Lecture 1: Overview Lecture by Stefan Muller May 21, 2018 Welcome to 15-150! Today s lecture was an overview that showed the highlights of everything you re learning this semester, which also meant

More information

Computer Science 9608 (Notes) Chapter: 4.1 Computational thinking and problem-solving

Computer Science 9608 (Notes) Chapter: 4.1 Computational thinking and problem-solving In Computer Science, an abstract data type (ADT) is a mathematical model for a certain data type or structures. This doesn t mean that the ADTs cannot be programmed. But that we must first understand them

More information

Hash Open Indexing. Data Structures and Algorithms CSE 373 SP 18 - KASEY CHAMPION 1

Hash Open Indexing. Data Structures and Algorithms CSE 373 SP 18 - KASEY CHAMPION 1 Hash Open Indexing Data Structures and Algorithms CSE 373 SP 18 - KASEY CHAMPION 1 Warm Up Consider a StringDictionary using separate chaining with an internal capacity of 10. Assume our buckets are implemented

More information

Greedy Algorithms 1 {K(S) K(S) C} For large values of d, brute force search is not feasible because there are 2 d {1,..., d}.

Greedy Algorithms 1 {K(S) K(S) C} For large values of d, brute force search is not feasible because there are 2 d {1,..., d}. Greedy Algorithms 1 Simple Knapsack Problem Greedy Algorithms form an important class of algorithmic techniques. We illustrate the idea by applying it to a simplified version of the Knapsack Problem. Informally,

More information

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad -500 043 COMPUTER SCIENCE AND ENGINEERING COURSE DESCRIPTION FORM Course Title Course Code Regulation Course Structure Course Coordinator

More information

UNIVERSITY OF SOUTH ALABAMA COMPUTER SCIENCE

UNIVERSITY OF SOUTH ALABAMA COMPUTER SCIENCE UNIVERSITY OF SOUTH ALABAMA COMPUTER SCIENCE 1 Computer Science CSC 108 Intro to Computer Science 3 cr An introduction to the major areas of computer science, such as computing systems, the binary number

More information

Systems I: Programming Abstractions

Systems I: Programming Abstractions Systems I: Programming Abstractions Course Philosophy: The goal of this course is to help students become facile with foundational concepts in programming, including experience with algorithmic problem

More information

Announcements. Last modified: Thu Nov 29 16:15: CS61B: Lecture #40 1

Announcements. Last modified: Thu Nov 29 16:15: CS61B: Lecture #40 1 Announcements Lab sections on December 5, 6, and 7 will be organized as follows: Students will work on an exam-like set of exercises covering linked lists, stacks, queues, binary trees, binary search trees.

More information

Outline for Today. How can we speed up operations that work on integer data? A simple data structure for ordered dictionaries.

Outline for Today. How can we speed up operations that work on integer data? A simple data structure for ordered dictionaries. van Emde Boas Trees Outline for Today Data Structures on Integers How can we speed up operations that work on integer data? Tiered Bitvectors A simple data structure for ordered dictionaries. van Emde

More information

(Refer Slide Time: 1:27)

(Refer Slide Time: 1:27) Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 1 Introduction to Data Structures and Algorithms Welcome to data

More information

UNIVERSITY OF SOUTH ALABAMA COMPUTER SCIENCE

UNIVERSITY OF SOUTH ALABAMA COMPUTER SCIENCE UNIVERSITY OF SOUTH ALABAMA COMPUTER SCIENCE 1 Computer Science CSC 108 Intro to Computer Science 3 cr An introduction to the major areas of computer science, such as computing systems, the binary number

More information

Chapter 2: Basic Data Structures

Chapter 2: Basic Data Structures Chapter 2: Basic Data Structures Basic Data Structures Stacks Queues Vectors, Linked Lists Trees (Including Balanced Trees) Priority Queues and Heaps Dictionaries and Hash Tables Spring 2014 CS 315 2 Two

More information

Data Structures and Algorithms 1

Data Structures and Algorithms 1 CS Content Academy: Data Structures Outline 1. How Does Data Structures Fit into CS What Is CS? 2. What Are Data Structures and Algorithms? 3. The Structure of Data Structures and Algorithms 3.1 Part A:

More information

CMU-Q Lecture 2: Search problems Uninformed search. Teacher: Gianni A. Di Caro

CMU-Q Lecture 2: Search problems Uninformed search. Teacher: Gianni A. Di Caro CMU-Q 15-381 Lecture 2: Search problems Uninformed search Teacher: Gianni A. Di Caro RECAP: ACT RATIONALLY Think like people Think rationally Agent Sensors? Actuators Percepts Actions Environment Act like

More information

CS 161 Fall 2015 Final Exam

CS 161 Fall 2015 Final Exam CS 161 Fall 2015 Final Exam Name: Student ID: 1: 2: 3: 4: 5: 6: 7: 8: Total: 1. (15 points) Let H = [24, 21, 18, 15, 12, 9, 6, 3] be an array of eight numbers, interpreted as a binary heap with the maximum

More information

CS2013 Course Syllabus Spring 2018 Lecture: Mon/Wed 2:00 P.M. 2:50 P.M. SH C259 Lab: Mon/Wed 2:50 P.M. 4:00 P.M. SH C259

CS2013 Course Syllabus Spring 2018 Lecture: Mon/Wed 2:00 P.M. 2:50 P.M. SH C259 Lab: Mon/Wed 2:50 P.M. 4:00 P.M. SH C259 CS2013 Course Syllabus Spring 2018 Lecture: Mon/Wed 2:00 P.M. 2:50 P.M. SH C259 Lab: Mon/Wed 2:50 P.M. 4:00 P.M. SH C259 Instructor Course name Credits Contact hours Text book Course Information Course

More information

CS 240 Fall Mike Lam, Professor. Just-for-fun survey:

CS 240 Fall Mike Lam, Professor. Just-for-fun survey: CS 240 Fall 2014 Mike Lam, Professor Just-for-fun survey: http://strawpoll.me/2421207 Today Course overview Course policies Python Motivation Computers are digital Data is stored in binary format (1's

More information

Topics. Trees Vojislav Kecman. Which graphs are trees? Terminology. Terminology Trees as Models Some Tree Theorems Applications of Trees CMSC 302

Topics. Trees Vojislav Kecman. Which graphs are trees? Terminology. Terminology Trees as Models Some Tree Theorems Applications of Trees CMSC 302 Topics VCU, Department of Computer Science CMSC 302 Trees Vojislav Kecman Terminology Trees as Models Some Tree Theorems Applications of Trees Binary Search Tree Decision Tree Tree Traversal Spanning Trees

More information

Data Structures And Other Objects Using Java Download Free (EPUB, PDF)

Data Structures And Other Objects Using Java Download Free (EPUB, PDF) Data Structures And Other Objects Using Java Download Free (EPUB, PDF) This is the ebook of the printed book and may not include any media, website access codes, or print supplements that may come packaged

More information

CSE373: Data Structures & Algorithms Lecture 9: Priority Queues and Binary Heaps. Linda Shapiro Spring 2016

CSE373: Data Structures & Algorithms Lecture 9: Priority Queues and Binary Heaps. Linda Shapiro Spring 2016 CSE373: Data Structures & Algorithms Lecture : Priority Queues and Binary Heaps Linda Shapiro Spring 2016 A new ADT: Priority Queue A priority queue holds compare-able data Like dictionaries, we need to

More information

Department of Information Technology. II B.Tech I Sem. DATA STRUCTURES THROUGH C++ (Subject code# 53023) Dept of IT

Department of Information Technology. II B.Tech I Sem. DATA STRUCTURES THROUGH C++ (Subject code# 53023) Dept of IT Department of Information Technology II B.Tech I Sem DATA STRUCTURES THROUGH C++ (Subject code# 53023) Mrs.D.Sravanthi Asst. Professor J.B.Institute of Engg & Technology Yenkapally, Moinabad(Mandal) Himathnagar(post),Hydreabad

More information

CS 240 Fall Mike Lam, Professor. Priority Queues and Heaps

CS 240 Fall Mike Lam, Professor. Priority Queues and Heaps CS 240 Fall 2015 Mike Lam, Professor Priority Queues and Heaps Priority Queues FIFO abstract data structure w/ priorities Always remove item with highest priority Store key (priority) with value Store

More information