SlideShare a Scribd company logo
Computer Science 226
         Algorithms and Data Structures
                                                  Fall 2007


                                                              Instructors:
                                                                 Bob Sedgewick
                                                                 Kevin Wayne
Copyright © 2007 by Robert Sedgewick and Kevin Wayne.
Course Overview

       outline
       why study algorithms?
       usual suspects
       coursework
       resources (web)
       resources (books)




                               2
COS 226 course overview

    What is COS 226?
    •Intermediate-level survey course.
    •Programming and problem solving with applications.
    •Algorithm: method for solving a problem.
    •Data structure: method to store information.


               Topic                  Data Structures and Algorithms

             data types          stack, queue, list, union-find, priority queue

               sorting           quicksort, mergesort, heapsort, radix sorts

              searching            hash table, BST, red-black tree, B-tree

               graphs                 BFS, DFS, Prim, Kruskal, Dijkstra

               strings             KMP, Rabin-Karp, TST, Huffman, LZW

              geometry             Graham scan, k-d tree, Voronoi diagram




                                                                                  3
Why study algorithms?

    Their impact is broad and far-reaching

    Internet. Web search, packet routing, distributed file sharing.

    Biology. Human genome project, protein folding.

    Computers. Circuit layout, file system, compilers.

    Computer graphics. Movies, video games, virtual reality.

    Security. Cell phones, e-commerce, voting machines.

    Multimedia. CD player, DVD, MP3, JPG, DivX, HDTV.

    Transportation. Airline crew scheduling, map routing.

    Physics. N-body simulation, particle collision simulation.

    …


                                                                      4
Why study algorithms?

    Old roots, new opportunities
                                                   300 BC



    Study of algorithms dates at least to Euclid



    Some important algorithms were discovered
    by undergraduates!




                                                    1920s

                                                   1940s
                                                   1950s
                                                   1960s
                                                   1970s
                                                   1980s
                                                   1990s
                                                   2000s


                                                            5
Why study algorithms?

    To be able solve problems that could not otherwise be addressed

    Example: Network connectivity

    [stay tuned]




                                                                      6
Why study algorithms?

    For intellectual stimulation




                                   7
Why study algorithms?

     They may unlock the secrets of life and of the universe.



     Computational models are replacing mathematical models
     in scientific enquiry

                                              for (double t = 0.0; true; t = t + dt)
       E = mc 2                                  for (int i = 0; i < N; i++)
                                   Gm1 m 2
                             F =                 {
       F = ma                       r2              bodies[i].resetForce();
                                                    for (int j = 0; j < N; j++)
                                                       if (i != j)
          h2   2                                          bodies[i].addForce(bodies[j]);
                   + V (r)    (r) = E   (r)      }
          2m

               20th century science                        21st century science
                 (formula based)                            (algorithm based)




                                                                                           8
Why study algorithms?

     For fun and profit




                          9
Why study algorithms?




     • Their impact is broad and far-reaching
     • Old roots, new opportunities
     • To be able to solve problems that could not otherwise be addressed
     • For intellectual stimulation
     • They may unlock the secrets of life and of the universe
     • For fun and profit




                                                                            10
The Usual Suspects

    Lectures: Bob Sedgewick
      •TTh 11-12:20, Bowen 222
      •Office hours T 3-5 at Cafe Viv in Frist
    Course management (everything else): Kevin Wayne

    Precepts: Kevin Wayne
    • Thursdays.
        1: 12:30 Friend 110
        2: 3:30 Friend 109
    • Discuss programming assignments, exercises, lecture material.
    • First precept meets Thursday 9/20
    • Kevin’s office hours TBA

    Need a precept time? Need to change precepts?
    • email Donna O’Leary (CS ugrad coordinator)
      doleary@cs.princeton.edu

    Check course web page for up-to-date info
                                                                      11
Coursework and Grading

    7-8 programming assignments. 45%
    • Due 11:55pm, starting Monday 9/24.
    • Available via course website.

    Weekly written exercises. 15%
    •Due at beginning of Wednesday lecture, starting 9/24.
    •Available via course website.

    Exams.
                                                                   Final
    • Closed-book with cheatsheet.
    • Midterm. 15%                                  Programs
    • Final.    25%
                                                                         HW
    Staff discretion. Adjust borderline cases.
    • Participation in lecture and precepts                    Midterm
    • Everyone needs to meet us both at office hours!

    Challenge for the bored. Determine importance of 45-15-15-25 weights
                                                                              12
Resources (web)

    Course content.
      http://www.princeton.edu/~cos226

     • syllabus
     • exercises
     • lecture slides
     • programming assignments (description, code, test data, checklists)
    Course administration.
     https://moodle.cs.princeton.edu/course/view.php?id=24

     • programming assignment submission.
     • grades.
    Booksites.
    http://www.cs.princeton.edu/IntroCS
    http://www.cs.princeton.edu/IntroAlgsDS

     • brief summary of content.
     • code.
     • links to web content.
                                                                            13
Resources (books)

    Algorithms in Java, 3rd edition
     • Parts 1-4. [sorting, searching]
     • Part 5. [graph algorithms]



    Introduction to Programming in Java
     • basic programming model
     • elementary AofA and data structures



    Algorithms in Pascal(!)/C/C++, 2nd edition
     • strings
     • elementary geometric algorithms



    Algorithms, 4th edition
      (in preparation)

                                                 14
Union-Find




             15

More Related Content

PDF
Algorithms, Union Find
PDF
21 elementarysorts 2
PPT
Ctdl 01 t_quan
PPT
Sets and disjoint sets union123
PPTX
Set Operations - Union Find and Bloom Filters
DOC
Time and space complexity
PPTX
Design and Analysis of Algorithms
PDF
ADA complete notes
Algorithms, Union Find
21 elementarysorts 2
Ctdl 01 t_quan
Sets and disjoint sets union123
Set Operations - Union Find and Bloom Filters
Time and space complexity
Design and Analysis of Algorithms
ADA complete notes

Similar to Ds & ada (20)

PDF
Lecture 1 (bce-7)
PPT
lecture1.ppt
DOC
COM623M1.doc.doc
DOC
COM623M1.doc.doc
PPT
DS Lecture-1 about discrete structure .ppt
PDF
[Harvard CS264] 03 - Introduction to GPU Computing, CUDA Basics
PPTX
Lec 01 introduction
PPTX
MDS_1_PacBear_2DWorld.pptx
PDF
Icml2017 overview
PDF
Teaching Constraint Programming, Patrick Prosser
PPTX
What Metrics Matter?
PPTX
Probing the Efficacy of the Algebra Project: A Summary of Findings
PDF
李俊良/Feature Engineering in Machine Learning
PDF
Deep Learning, an interactive introduction for NLP-ers
PDF
A look inside pandas design and development
PDF
Software tools for calculating materials properties in high-throughput (pymat...
PDF
Python for Chemistry
PDF
Python for Chemistry
PPT
L0.ppt
PDF
introduction.pdf
Lecture 1 (bce-7)
lecture1.ppt
COM623M1.doc.doc
COM623M1.doc.doc
DS Lecture-1 about discrete structure .ppt
[Harvard CS264] 03 - Introduction to GPU Computing, CUDA Basics
Lec 01 introduction
MDS_1_PacBear_2DWorld.pptx
Icml2017 overview
Teaching Constraint Programming, Patrick Prosser
What Metrics Matter?
Probing the Efficacy of the Algebra Project: A Summary of Findings
李俊良/Feature Engineering in Machine Learning
Deep Learning, an interactive introduction for NLP-ers
A look inside pandas design and development
Software tools for calculating materials properties in high-throughput (pymat...
Python for Chemistry
Python for Chemistry
L0.ppt
introduction.pdf
Ad

Recently uploaded (20)

PDF
Paper A Mock Exam 9_ Attempt review.pdf.
PPTX
UNIT III MENTAL HEALTH NURSING ASSESSMENT
PPTX
History, Philosophy and sociology of education (1).pptx
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PDF
Updated Idioms and Phrasal Verbs in English subject
PPTX
Introduction-to-Literarature-and-Literary-Studies-week-Prelim-coverage.pptx
PPTX
Radiologic_Anatomy_of_the_Brachial_plexus [final].pptx
PPTX
202450812 BayCHI UCSC-SV 20250812 v17.pptx
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
What if we spent less time fighting change, and more time building what’s rig...
PPTX
Cell Structure & Organelles in detailed.
PPTX
Cell Types and Its function , kingdom of life
PDF
Complications of Minimal Access Surgery at WLH
PPTX
Lesson notes of climatology university.
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PDF
A systematic review of self-coping strategies used by university students to ...
PDF
Classroom Observation Tools for Teachers
PPTX
Tissue processing ( HISTOPATHOLOGICAL TECHNIQUE
PDF
RTP_AR_KS1_Tutor's Guide_English [FOR REPRODUCTION].pdf
Paper A Mock Exam 9_ Attempt review.pdf.
UNIT III MENTAL HEALTH NURSING ASSESSMENT
History, Philosophy and sociology of education (1).pptx
Supply Chain Operations Speaking Notes -ICLT Program
Updated Idioms and Phrasal Verbs in English subject
Introduction-to-Literarature-and-Literary-Studies-week-Prelim-coverage.pptx
Radiologic_Anatomy_of_the_Brachial_plexus [final].pptx
202450812 BayCHI UCSC-SV 20250812 v17.pptx
2.FourierTransform-ShortQuestionswithAnswers.pdf
What if we spent less time fighting change, and more time building what’s rig...
Cell Structure & Organelles in detailed.
Cell Types and Its function , kingdom of life
Complications of Minimal Access Surgery at WLH
Lesson notes of climatology university.
Final Presentation General Medicine 03-08-2024.pptx
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
A systematic review of self-coping strategies used by university students to ...
Classroom Observation Tools for Teachers
Tissue processing ( HISTOPATHOLOGICAL TECHNIQUE
RTP_AR_KS1_Tutor's Guide_English [FOR REPRODUCTION].pdf
Ad

Ds & ada

  • 1. Computer Science 226 Algorithms and Data Structures Fall 2007 Instructors: Bob Sedgewick Kevin Wayne Copyright © 2007 by Robert Sedgewick and Kevin Wayne.
  • 2. Course Overview outline why study algorithms? usual suspects coursework resources (web) resources (books) 2
  • 3. COS 226 course overview What is COS 226? •Intermediate-level survey course. •Programming and problem solving with applications. •Algorithm: method for solving a problem. •Data structure: method to store information. Topic Data Structures and Algorithms data types stack, queue, list, union-find, priority queue sorting quicksort, mergesort, heapsort, radix sorts searching hash table, BST, red-black tree, B-tree graphs BFS, DFS, Prim, Kruskal, Dijkstra strings KMP, Rabin-Karp, TST, Huffman, LZW geometry Graham scan, k-d tree, Voronoi diagram 3
  • 4. Why study algorithms? Their impact is broad and far-reaching Internet. Web search, packet routing, distributed file sharing. Biology. Human genome project, protein folding. Computers. Circuit layout, file system, compilers. Computer graphics. Movies, video games, virtual reality. Security. Cell phones, e-commerce, voting machines. Multimedia. CD player, DVD, MP3, JPG, DivX, HDTV. Transportation. Airline crew scheduling, map routing. Physics. N-body simulation, particle collision simulation. … 4
  • 5. Why study algorithms? Old roots, new opportunities 300 BC Study of algorithms dates at least to Euclid Some important algorithms were discovered by undergraduates! 1920s 1940s 1950s 1960s 1970s 1980s 1990s 2000s 5
  • 6. Why study algorithms? To be able solve problems that could not otherwise be addressed Example: Network connectivity [stay tuned] 6
  • 7. Why study algorithms? For intellectual stimulation 7
  • 8. Why study algorithms? They may unlock the secrets of life and of the universe. Computational models are replacing mathematical models in scientific enquiry for (double t = 0.0; true; t = t + dt) E = mc 2 for (int i = 0; i < N; i++) Gm1 m 2 F = { F = ma r2 bodies[i].resetForce(); for (int j = 0; j < N; j++) if (i != j) h2 2 bodies[i].addForce(bodies[j]); + V (r) (r) = E (r) } 2m 20th century science 21st century science (formula based) (algorithm based) 8
  • 9. Why study algorithms? For fun and profit 9
  • 10. Why study algorithms? • Their impact is broad and far-reaching • Old roots, new opportunities • To be able to solve problems that could not otherwise be addressed • For intellectual stimulation • They may unlock the secrets of life and of the universe • For fun and profit 10
  • 11. The Usual Suspects Lectures: Bob Sedgewick •TTh 11-12:20, Bowen 222 •Office hours T 3-5 at Cafe Viv in Frist Course management (everything else): Kevin Wayne Precepts: Kevin Wayne • Thursdays. 1: 12:30 Friend 110 2: 3:30 Friend 109 • Discuss programming assignments, exercises, lecture material. • First precept meets Thursday 9/20 • Kevin’s office hours TBA Need a precept time? Need to change precepts? • email Donna O’Leary (CS ugrad coordinator) doleary@cs.princeton.edu Check course web page for up-to-date info 11
  • 12. Coursework and Grading 7-8 programming assignments. 45% • Due 11:55pm, starting Monday 9/24. • Available via course website. Weekly written exercises. 15% •Due at beginning of Wednesday lecture, starting 9/24. •Available via course website. Exams. Final • Closed-book with cheatsheet. • Midterm. 15% Programs • Final. 25% HW Staff discretion. Adjust borderline cases. • Participation in lecture and precepts Midterm • Everyone needs to meet us both at office hours! Challenge for the bored. Determine importance of 45-15-15-25 weights 12
  • 13. Resources (web) Course content. http://www.princeton.edu/~cos226 • syllabus • exercises • lecture slides • programming assignments (description, code, test data, checklists) Course administration. https://moodle.cs.princeton.edu/course/view.php?id=24 • programming assignment submission. • grades. Booksites. http://www.cs.princeton.edu/IntroCS http://www.cs.princeton.edu/IntroAlgsDS • brief summary of content. • code. • links to web content. 13
  • 14. Resources (books) Algorithms in Java, 3rd edition • Parts 1-4. [sorting, searching] • Part 5. [graph algorithms] Introduction to Programming in Java • basic programming model • elementary AofA and data structures Algorithms in Pascal(!)/C/C++, 2nd edition • strings • elementary geometric algorithms Algorithms, 4th edition (in preparation) 14