CSCE 3110 Data Structures and Algorithm Analysis.

Slides:



Advertisements
Similar presentations
Student Projects in the Course Data Structures
Advertisements

Data Structures and Algorithms Dr. Robin Gras Ext Lambton Tower 8111.
5/19/2015CS 2011 CS 201 – Data Structures and Discrete Mathematics I Syllabus Spring 2014.
COMP171 Data Structures and Algorithms Spring 2009.
CSCE 210 Data Structures and Algorithms
COMP171 Data Structures and Algorithms Spring 2009.
1 CENG 707 Data Structures and Algorithms Nihan Kesim Çiçekli Department of Computer Engineering Middle East Technical University Fall 2010.
CSCE156: Introduction to Computer Science II Instructor Stephen Scott Website
CSIS-385: Analysis of Algorithms Dr. Eric Breimer.
Administrivia- Introduction CSE 373 Data Structures.
COMP171 Data Structures and Algorithm Huamin Qu Lecture 1 (Sept. 1, 2005)
COMP171 Data Structures and Algorithm Qiang Yang Lecture 1 ( Fall 2006)
EE 220 (Data Structures and Analysis of Algorithms) Instructor: Saswati Sarkar T.A. Prasanna Chaporkar, Programming.
CENG 213 Data Structures Department of Computer Engineering Middle East Technical University Fall 2014 CENG 213 Data Structures 1.
CSE 220 (Data Structures and Analysis of Algorithms) Instructor: Saswati Sarkar T.A. Dimosthenes Anthomelidis
Slide 1 Instructor: Dr. Hong Jiang Teaching Assistant: Mr. Sheng Zhang Department of Computer Science & Engineering University of Nebraska-Lincoln Classroom:
METU Computer Engineering Department
Computer Science 102 Data Structures and Algorithms V Fall 2009 Lecture 1: administrative details Professor: Evan Korth New York University 1.
WEEK 1 CS 361: ADVANCED DATA STRUCTURES AND ALGORITHMS Dong Si Dept. of Computer Science 1.
© 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.
Course Introduction Bryce Boe 2012/08/06 CS32, Summer 2012 B.
Data Structures Lecture 1: Introduction Azhar Maqsood NUST Institute of Information Technology (NIIT)
CS 103 Discrete Structures Lecture 01 Introduction to the Course
CSc 2310 Principles of Programming (Java) Dr. Xiaolin Hu.
COMPE 226 Data Structures 2015 Fall Murat KARAKAYA Department of Computer Engineering.
CST 229 Introduction to Grammars Dr. Sherry Yang Room 213 (503)
CSC – 332 Data Structures Dr. Curry Guinn. Quick Info Dr. Curry Guinn –CIS 2045 – –
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009.
CS212: DATA STRUCTURES Lecture 1: Introduction. What is this course is about ?  Data structures : conceptual and concrete ways to organize data for efficient.
CS 140 Computer Programming (I) Second semester (3 credits) Imam Mohammad bin Saud Islamic University College of Computer Science and Information.
Welcome to CS 115! Introduction to Programming. Class URL Write this down!
Data Structures (Second Part) Lecture 1 Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang University.
Introduction to Data Structures
Computer Science 102 Data Structures and Algorithms CSCI-UA.0102 Fall 2012 Lecture 1: administrative details Professor: Evan Korth New York University.
COMP2012 Object-Oriented Programming and Data Structures Fall 2015.
MAT 360 – Lecture 0 Introduction. About me  Moira Chas   Work phone :  Office Location:
CMSC 2021 CMSC 202 Computer Science II for Majors Fall 2002 Mr. Frey (0101 – 0104) Mr. Raouf (0201 – 0204)
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 223 – Advanced Data Structures Course Introduction.
Course Introduction Andy Wang COP 4530 / CGS 5425 Fall 2003, Section 4.
CS-2851 Dr. Mark L. Hornick 1 CS-2852 Data Structures Dr. Mark L. Hornick Office: L341 Phone: web: people.msoe.edu/hornick/
Data Structures for Programmers Vamshi Ambati
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.
Data Structures and Algorithm Analysis Introduction Lecturer: Ligang Dong, egan Tel: , Office: SIEE Building.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2002 Sections Ms. Susan Mitchell.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2001 Sections Ms. Susan Mitchell.
1 Data Structures COP 4530 Spring 2010 MW 4:35 PM – 5:50 PM CHE 101 Instructor:Dr. Rollins Turner Dept. of Computer Science and Engineering ENB
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2003 Mr. Frey (0101 – 0104) Mr. Raouf (0201 – 0204)
Course Info Instructor U.T. Nguyen Office: CSEB Office hours: Tuesday, 14:30-15:30 Thursday, 12:00-12:45 By.
Data Structures and Algorithms in Java AlaaEddin 2012.
Principles of Imperative Computation Lecture 1 January 15 th, 2012.
Data Structures By Dr. Mehedi Masud ِAssociate Professor, Computer Science Dept. College of Computers and Information Systems Taif University 1.
1 CENG 707 Data Structures and Algorithms Nihan Kesim Çiçekli Department of Computer Engineering Middle East Technical University Fall 2013.
CENG 213 Data Structures1 Nihan Kesim Çiçekli Department of Computer Engineering Middle East Technical University.
COMP9024: Data Structures and Algorithms Course Outline Hui Wu Session 1, 2016
CSCE 210 Data Structures and Algorithms
CENG 707 Data Structures and Algorithms
Course Overview - Database Systems
COMP9024: Data Structures and Algorithms
CS 315 Data Structures B. Ravikumar Office: 116 I Darwin Hall Phone:
Computer Science 102 Data Structures CSCI-UA
September 27 – Course introductions; Adts; Stacks and Queues
CS 201 – Data Structures and Discrete Mathematics I
Welcome to CS 1010! Algorithmic Problem Solving.
Welcome to CS 1010! Algorithmic Problem Solving.
Introduction CSE 373 Data Structures.
Administrivia- Introduction
Administrivia- Introduction
CSCE156: Introduction to Computer Science II
Presentation transcript:

CSCE 3110 Data Structures and Algorithm Analysis

Dr. Yan Huang Office: NTRP F251 Phone: TA: TBA Instructor Information

Course Webpage and Schedule Course webpage can be found at: The lecture schedule is: Tuesdays & Thursdays 2:30PM- NTRP B142 Office hour: Class 1:15PM-2:15PM and 4:00-5:00pm or by appointment

Objectives Understand dictionary/search data structures (lists, trees, hash tables). Understand graph representations and algorithms. Understand time and space analysis for both iterative and recursive algorithms and be able to prove the correctness a non-trivial algorithm. Be able to translate high-level, abstract data structure descriptions into concrete code. Understand how real-world problems map to abstract graph problems. Be able to communicate clearly and precisely about the correctness and analysis of basic algorithms (both oral and written communication).

Data structures will include lists, vectors, queues, stacks, trees, hash-tables, and graphs. Algorithms include searching, sorting using the above data structures, iterative, and recursive algorithms On assignments, students are asked to implement data structures and algorithms using a high-level programming language. On exams, students are asked to solve problems using analytical methods and programming skills acquired from lectures and assignments to demonstrate knowledge and comprehension of course material.

 Prerequisites CSCE 2050 and MATH 2770  Text Book “ Data Structures & Algorithm Analysis in C++” (3rd Edition). Mark Allen Weiss  Other Reference “C++ How to Program”, 5th edition, H. M. Deitel, P. J. Deitel

Assumed Background Assumed Background: It is assumed that the student has taken CSCE 2050 and MATH 2770, and thus is knowledgeable about the following: From CSCE 2050: Experience with non-trivial software design; object-oriented design and abstract data types; C++ language features including pointers, classes, and templates; linear and binary searching; recursion; basic data structures (linked lists, stacks, and queues); basic sorting algorithms (insertion, selection, and merge sort); simple time analysis of algorithms. From Math 2770: Proof techniques (induction, contradiction); mathematical structures (sets, relations, trees, graphs); important mathematical manipulations (sums, combinatorics).

What else do you need? Unix account from the department machines Turn in homework using project command Subscribe to the class list (link available from the class webpage) to be updated promptly about class information

Grading Information Assignments 40% Projects 20% Two exams: 35% Class participation: 5% Grading scale (based on 100 points) A points B points C points D points F below points

Programming Assignments Each assignment may have a mixture of written and programming components. Each assignment will specify the material to be turned in. All programming will be in C/C++, and must compile on a University Unix/Linux machine. No credit will be given for programs that do not compile.

Project You have the option to work alone or form a group with another student for the term project If you choose to work in a team, both students will receive the same marks for the project The description of the term project will be posted soon (in two weeks) and you are encouraged to work on it as soon as possible You will have to make a 10 minutes presentation at the end of the semester

Important Notes  All assignments are due before class of the due date. A late penalty of 10% will be applied to all late assignments for up to 3 calendar days. Assignments that are not turned in 3 days after the due date will not be accepted.  All holidays and weekends will be counted as calendar days  Missed exams will be granted zero points. Illness and severe circumstances may be accommodated only with solid evidence. me before exam and provide solid evidence whenever possible.

Important Notes  Academic misconduct includes the submission of program code or assignment answers that appear so similar to another person’s work as to be semantically indistinguishable. Misconduct cases will be handles swiftly, discreetly,and summarily in accordance with University principles.

Questions?

What this course is about ? Data structures: conceptual and concrete ways to organize data for efficient storage and efficient manipulation Employment of this data structures in the design of efficient algorithms Analysis of the complexity of your algorithms

Why do we need them Requirements for a good software: Clean Design Easy maintenance Reliable (no core dumps) Easy to use Fast algorithms  Efficient data structures  Efficient algorithms

Why do we need them ? Computers take on more and more complex tasks Imagine: index of 8 billion pages ! (Google) Software implementation and maintenance is difficult. Clean conceptual framework allows for more efficient and more correct code

How Fast Are Our Computers? In current computer architectures, we can perform a linear scan of 1 megabyte of data in 1 second 1 gigabyte of data in 2 minutes 1 terabyte of data in 2 days

How long does it take took to scan 8 billion pages (google)? Now you are searching the word “ insomnia”! Google index 8 billion pages. Assume each page has 100 words (which is a humble number) Each word has 10 letters, each letter is one byte It takes around 21 hours to perform a liner scan of 8 billion pages! Word Wide Wait!

Topics Algorithm Analysis Arrays, Stacks and Queues Vectors, lists and sequences Trees Heaps / Priority Queues Binary Search Trees – Search Trees Hashing / Dictionaries Sorting Graphs and graph algorithms

Example What to do? Sol. 1 Sequential matching Sol. 2 Binary searching: - order the words - search only half at a time Ex. Search 25 in ? ? ? 25 How many steps?

One Step Further Given n numbers, how many steps do we need to search a number from the n numbers, using Linear search Binary search (when and when not to use binary search)?

Some example data structures Set Stack Tree Data structure = representation and operations associated with a data type

What will you learn? What are some of the common data structures What are some ways to implement them How to analyze the complexity of your algorithms using the data structures How to use them to solve practical problems