1 CSC 321: Data Structures Fall 2013 See online syllabus (also available through BlueLine2): Course goals:  To understand.

Slides:



Advertisements
Similar presentations
1 CSC 421: Algorithm Design & Analysis Spring 2013 See online syllabus: (also on BlueLine2) Course.
Advertisements

1 CSC 221: Computer Programming I Fall 2006 See online syllabus (also accessible via Blackboard): Course goals:  To develop.
Introduction To System Analysis and Design
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.
Data Structures & Algorithms What The Course Is About s Data structures is concerned with the representation and manipulation of data. s All programs.
Data Structures Introduction. What is data? (Latin) Plural of datum = something given.
CS 206 Introduction to Computer Science II 04 / 29 / 2009 Instructor: Michael Eckmann.
CS503: Tenth Lecture, Fall 2008 Review Michael Barnathan.
CS 206 Introduction to Computer Science II 12 / 10 / 2008 Instructor: Michael Eckmann.
CENG 213 Data Structures Department of Computer Engineering Middle East Technical University Fall 2014 CENG 213 Data Structures 1.
July 16, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
CSCE 3110 Data Structures and Algorithm Analysis.
Data Structures Lecture-1:Introduction
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.
COMP 151: Computer Programming II Spring Course Topics Review of Java and basics of software engineering (3 classes. Chapters 1 and 2) Recursion.
WEEK 1 CS 361: ADVANCED DATA STRUCTURES AND ALGORITHMS Dong Si Dept. of Computer Science 1.
1 CSC 221: Introduction to Programming Fall 2012 course overview  What did you set out to learn?  What did you actually learn?  Where do you go from.
Platforms for Learning in Computer Science July 28, 2005.
1 CSC 221: Computer Programming I Fall 2004 course overview  what did we set out to learn?  what did you actually learn?  where do you go from here?
© 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.
1 CSC 427: Data Structures and Algorithm Analysis Fall 2011 See online syllabus (also available through BlueLine): Course goals:
Data Structures Lecture 1: Introduction Azhar Maqsood NUST Institute of Information Technology (NIIT)
1 CSC 221: Introduction to Programming Fall 2013 See online syllabus (also accessible via BlueLine2): Course goals:  To develop.
CSCA48 Course Summary.
CSC 212 – Data Structures Prof. Matthew Hertz WTC 207D /
Introduction. 2COMPSCI Computer Science Fundamentals.
Introduction To System Analysis and Design
CS 140 Computer Programming (I) Second semester (3 credits) Imam Mohammad bin Saud Islamic University College of Computer Science and Information.
1 CSC 222: Computer Programming II Spring 2004 See online syllabus at: Course goals:
Introduction to Data Structures
1 CSC 427: Data Structures and Algorithm Analysis Fall 2010 See online syllabus (also available through BlueLine): Course goals:
CMSC 2021 CMSC 202 Computer Science II for Majors Fall 2002 Mr. Frey (0101 – 0104) Mr. Raouf (0201 – 0204)
1 CSC 222: Object-Oriented Programming Spring 2013 Course goals:  To know and use basic Java programming constructs for object- oriented problem solving.
Course Introduction Andy Wang COP 4530 / CGS 5425 Fall 2003, Section 4.
1 CSC 221: Computer Programming I Fall 2005 See online syllabus (also accessible via Blackboard): 
Data Structures and Algorithms Lecture 1 Instructor: Quratulain Date: 1 st Sep, 2009.
Data Structures Lecture 1: Introduction. Course Contents Data Types   Overview, Introductory concepts   Data Types, meaning and implementation  
CSC 221: Computer Programming I Fall 2001 course overview  what did we set out to learn?  what did you actually learn?  where do you go from here? 
WELCOME to CS244 Brent M. Dingle, Ph.D Game Design and Development Program Mathematics, Statistics and Computer Science University of Wisconsin -
1 CSC 221: Computer Programming I Spring 2008 course overview  What did we set out to learn?  What did you actually learn?  Where do you go from here?
1 CSC 427: Data Structures and Algorithm Analysis Fall 2006 See online syllabus (also available through Blackboard): Course goals:
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.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2003 Mr. Frey (0101 – 0104) Mr. Raouf (0201 – 0204)
Course Preliminaries Course Objectives Course Objectives Students’ Learning Outcomes Students’ Learning Outcomes Grading Policy Grading Policy Course Resources.
Data Structures and Algorithms in Java AlaaEddin 2012.
Data Structures Dr. Abd El-Aziz Ahmed Assistant Professor Institute of Statistical Studies and Research, Cairo University Springer 2015 DS.
COMP9024: Data Structures and Algorithms Course Outline Hui Wu Session 1, 2016
Mohammed I DAABO COURSE CODE: CSC 355 COURSE TITLE: Data Structures.
CSC 421: Algorithm Design & Analysis
CSC 427: Data Structures and Algorithm Analysis
CSC 222: Object-Oriented Programming
CSC 222: Object-Oriented Programming
CSC 222: Computer Programming II
CSC 421: Algorithm Design & Analysis
COMP9024: Data Structures and Algorithms
CSC207 Fall 2016.
CSC 321: Data Structures Fall 2016
CSC 321: Data Structures Fall 2017
CSC 221: Computer Programming I Fall 2005
CSC 321: Data Structures Fall 2015
CSC 421: Algorithm Design & Analysis
CSC 222: Object-Oriented Programming
Lecture 2 of Computer Science II
CSC 421: Algorithm Design & Analysis
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.
CSC 321: Data Structures Fall 2018
Presentation transcript:

1 CSC 321: Data Structures Fall 2013 See online syllabus (also available through BlueLine2): Course goals:  To understand fundamental data structures (lists, stacks, queues, sets, maps, and linked structures) and be able to implement software solutions to problems using these data structures.  To achieve a working knowledge of various mathematical structures essential for the field of computer science, including graphs, trees, and networks.  To develop analytical techniques for evaluating the efficiency of data structures and programs, including counting, asymptotics, and recurrence relations.  To be able to design and implement a program to model a real-world system, selecting and implementing appropriate data structures.

2 221 vs. 222 vs : intro to programming via scripting  focused on the design & analysis of small scripts (in Python)  introduced fundamental programming concepts variables, assignments, expressions, I/O control structures (if, if-else, while, for), lists functions, parameters, intro to OO 222: object-oriented programming  focused on the design & analysis of more complex programs (in Java)  utilized OO approach & techniques for code reuse classes, fields, methods, objects interfaces, inheritance, polymorphism, object composition searching & sorting, Big-Oh efficiency, recursion, GUIs you should be familiar with these concepts (we will do some review next week, but you should review your own notes & text) 321: data-driven programming & analysis  focus on problems that involve storing & manipulating large amounts of data  focus on understanding/analyzing/selecting appropriate structures for problems standard collections (lists, stacks, queues, trees, sets, maps) mathematical structures (trees, graphs, networks) analysis techniques (counting, asymptotics, recurrence relations)

3 When problems start to get complex… …choosing the right algorithm and data structures are important  e.g., phone book lookup, checkerboard puzzle  must develop problem-solving approaches (e.g., brute force, backtracking)  be able to identify appropriate data structures (e.g., lists, trees, sets, maps) EXAMPLE: suppose you want to write a program for playing Boggle (Parker Bros.)  need to be able to represent the board  need to be able to store and access the dictionary  need to allow user to enter words  need to verify user words for scoring  perhaps show user words they missed

4 Possible implementations 1.for each user word entered, search the Boggle board for that word  But how do you list all remaining words at the end? 2.build a list of all dictionary words on the Boggle board by:  searching for each word in the dictionary, add to list if on the board. For each user word entered, search the list to see if stored (and mark as used). At the end, display all words in the list not marked as used. 3.build a list of all dictionary words on the Boggle board by:  exhaustively searching the board, checking letter sequences to see if in the dictionary. For each user word entered, search the list to see if stored (and mark as used). At the end, display all words in the list not marked as used.

Another example: anagram finder you are given a large dictionary of 117,663 words repeatedly given a word, must find all anagrams of that word  pale  leap pale peal plea  steal  least setal slate stale steal stela taels tales teals tesla  banana  banana 5 there are many choices to be made & many "reasonable" decisions  how do you determine if two words are anagrams?  should you store the dictionary words internally? if so, how?  should you preprocess the words? if so, how?  is a simplistic approach going to be efficient enough to handle 117K words?  how do you test your solution?

6 Possible implementations 1.generate every permutation of the letters, check to see if a word  how many permutations are there?  will this scale? 2.for each word, compare against every other word to see if an anagram  how costly to determine if two words are anagrams?  how many comparisons will be needed?  will this scale? 3.preprocess all words in the dictionary and index by their sorted form  e.g., store "least" and "steal" together, indexed by "aelst"  how much work is required to preprocess the entire dictionary?  how much easier is the task now?

HW1: tag clouds HW1 is posted  due in 2+ weeks, so lots of time  designed to reengage you with CSC222 material  you will works in two-person teams (assigned by instructor)  work together (and with me) to locate and fill holes in your knowledge/skills you will design & implement two programs that generate tag clouds e.g., tag cloud of 20 most frequent words in 2013 State of the Union Speech 7

HW1: in 2 parts 1.WordFrequencies.java  takes a text file and generates a stats file, with words & frequencies 2.TagCloud.java  takes a stats file & a number, and generates a Web page with tag cloud 8 12