1 / 26

CSC – 332 Data Structures

CSC – 332 Data Structures. Dr. Curry Guinn. Quick Info. Dr. Curry Guinn CIS 2045 guinnc@uncw.edu www.uncw.edu/people/guinnc 962-7937 Office Hours: MTWR: 11:00am-12:00pm and by appointment. What is CSC 332?. Data Structures THE Gateway Course

glyn
Download Presentation

CSC – 332 Data Structures

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSC – 332 Data Structures Dr. Curry Guinn

  2. Quick Info • Dr. Curry Guinn • CIS 2045 • guinnc@uncw.edu • www.uncw.edu/people/guinnc • 962-7937 • Office Hours: MTWR: 11:00am-12:00pm and by appointment

  3. What is CSC 332? • Data Structures • THE Gateway Course • Gateway to most 300 and 400 level CSC courses • Gateway to our graduate CSC courses • Not just a gateway course at UNCW – it is the pivotal course in all undergraduate computer science programs

  4. Why Is It So Important? • How you organize and access information on computers is fundamental • Across disciplines within computer science the same sorts of operations arise again and again • This course investigates the best practices of past scientists trying to solve those puzzles

  5. How To Approach This Course Your future CSC courses and your future career in IT/Computers depends on mastering this material.

  6. How Do I Earn an ‘A’? • Read the books. • Come to every lecture. • Write programs. • Turn in assignments on time. • Work independently • Every assignment must be submitted (otherwise ‘F’). • Make use of office hours • Send me email early and often.

  7. Course and Grading Criteria

  8. The Required Texts • Mark Allen Weiss, Data Structures and Algorithm Analysis in Java, Second or Third Edition. • Douglas R. Hofstadter, Gödel, Escher, Bach: An Eternal Golden Braid

  9. Specific Goals of the Course • Goal 1: Understand and Implement Data Structures That Have Found to Be Important and Particularly Useful An example: Arrays Why are arrays useful?

  10. Goal 1: Understanding Data Structures • What can you do with arrays? • How do you find something in an array? • How do we know which algorithm for finding something in an array is “better”? • What does “better” mean in this context? • Analysis of algorithms

  11. Goal 1: Understanding Data Structures • When are arrays bad? • Which leads us to linked lists, queues, and stacks

  12. Goal 1: Understanding Data Structures • Which leads us to sorting • Some sorting algorithms depend on recursion so we’ll need to study that too

  13. Goal 1: Understanding Data Structures • Linked lists are not so good for searching and sorting • Which leads us to binary trees • Are binary search trees always better than a linked list?

  14. Goal 1: Understanding Data Structures • Which leads us to studying how to balance binary trees • Are there other useful tree structures?

  15. Goal 1: Understanding Data Structures • Trees are a special type of graph. • What problems lend themselves to being represented as a graph?

  16. Goal 1: Understanding Data Structures • Linear search takes O(n) time • Binary search takes log(n) time • Hashing search takes 1 time!!! • I wonder if there are any drawbacks?

  17. Are there algorithm patterns that we see repeated? • Greedy Algorithms • Divide-and-conquer • Dynamic programming • Randomized algorithms

  18. Goal 2: Unix-based Operating Systems • Work should be done on our Linux machines (babbage.cis.uncw.edu). • Java programming will be bare bones – just a simple text editor and command line compiling (javac) • Why are we doing this to you?

  19. Goal 2: Unix • Unix dominates certain markets within computer science. Which ones? • Unix is better than Microsoft operating systems • Why didn’t unix become the dominant OS? • The linux revolution

  20. Goal 2: Unix • What do you need to learn? • A very small subset of the operating system language (link) • A text editor: I’ll show you “vi” (actually it’s “vim”) (http://people.uncw.edu/guinnc/courses/Spring14/332/vi.html)

  21. Goal 3: Becoming a Computer Scientist • Love what you are doing • Take delight in problem-solving • What do computer scientists do? • They take problems and figure out how to use the computer as a tool to help solve the problem

  22. Goal 3: Becoming a Computer Scientist So, to be a computer scientist, you need to • Be good at problem analysis • Know a diversity of techniques that are applicable to computer problem solving • Be able to find the match between a problem and possible techniques

  23. Goal 3: Becoming a Computer Scientist • Douglas R. Hofstadter, Gödel, Escher, Bach: An Eternal Golden Braid • Pulitzer prize winning book. • Intended for a general science audience. • Cult classic. Huge online presence. • Tremendous relevance to data structures (and CSC 360, 532, 415, 515)

  24. Goal 3: Becoming a Computer Scientist • GEB, in particular, focuses on • Problem-solving • Recursion • Computability • Computational logic • Can the manipulation of data by formal rules ever lead to true intelligence?

  25. Unix • Unix • Before clicking on that link, look at next page first

  26. For Next Class, Thursday • Blackboard Quiz due Thursday night • Homework 1 due Tuesday, 01/21, 11:59pm • For Tuesday • Login to your shannon account • Play with and look at the man pages for “ls”, “cd”, “mkdir”, “rmdir”, “rm”, “less”, “more” • Look at these two local links: unix.html and vi.html • Here’s a useful page: http://kb.iu.edu/data/afsk.html

More Related