17
Computer Science 126 Computer Science: An Interdisciplinary Approach Fall 2019 Robert Sedgewick

Computer Science 126€¦ · • Ask a question easily answered elsewhere. • DO NOT POST CODE (EVER). An online discussion forum for COS 126 • Try it when you have a question

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Computer Science 126€¦ · • Ask a question easily answered elsewhere. • DO NOT POST CODE (EVER). An online discussion forum for COS 126 • Try it when you have a question

Computer Science 126Computer Science: An Interdisciplinary Approach

Fall 2019

Robert Sedgewick

Page 2: Computer Science 126€¦ · • Ask a question easily answered elsewhere. • DO NOT POST CODE (EVER). An online discussion forum for COS 126 • Try it when you have a question

COS 126 Roadmap

Page 3: Computer Science 126€¦ · • Ask a question easily answered elsewhere. • DO NOT POST CODE (EVER). An online discussion forum for COS 126 • Try it when you have a question

Course website

3

Need details? Go to www.princeton.edu/~cos126.

• Syllabus.

• Meetings.

• Lectures.

• Assignments.

• Precepts.

• Exams.

• Help!

Important note: We do not use BlackBoard (except to post grades).

bookmark this page!

Page 4: Computer Science 126€¦ · • Ask a question easily answered elsewhere. • DO NOT POST CODE (EVER). An online discussion forum for COS 126 • Try it when you have a question

Syllabus

4

A contract between you and us.

• Front page of website.

• Read it carefully.

• General information.

• Grading.

• Collaboration policy.

Page 5: Computer Science 126€¦ · • Ask a question easily answered elsewhere. • DO NOT POST CODE (EVER). An online discussion forum for COS 126 • Try it when you have a question

Textbook

5

Our new textbook is the basis of this course.

• Full coverage of course material.

• Developed for COS 126.

• Use while learning and studying.

R O B E R T S E D G E W I C K K E V I N W A Y N E

[Sedgewick and Flajolet] are not only worldwide leaders of the field, they also are masters of exposition. I am sure that every serious computer scientist

will find this book rewarding in many ways. —From the Foreword by Donald E. Knuth

Despite growing interest, basic information on methods and models for mathematically analyzing algorithms has rarely been directly accessible to practitioners, researchers, or students. An Introduction to the Analysis of Algorithms, Second Edition, organizes and presents that knowledge, fully introducing primary techniques and results in the field.

Robert Sedgewick and the late Philippe Flajolet have drawn from both classical mathematics and computer science, integrating discrete mathematics, elementary real analysis, combinatorics, algorithms, and data structures. They emphasize the mathematics needed to support scientific studies that can serve as the basis for predicting algorithm performance and for comparing different algorithms on the basis of performance.

Techniques covered in the first half of the book include recurrences, generating functions, asymptotics, and analytic combinatorics. Structures studied in the second half of the book include permutations, trees, strings, tries, and mappings. Numerous examples are included throughout to illustrate applications to the analysis of algorithms that are playing a critical role in the evolution of our modern computational infrastructure.

Improvements and additions in this new edition include

n Upgraded figures and code n An all-new chapter introducing analytic combinatorics n Simplified derivations via analytic combinatorics throughout

The book’s thorough, self-contained coverage will help readers appreciate the field’s challenges, prepare them for advanced results—covered in their monograph Analytic Combinatorics and in Donald Knuth’s Art of Computer Programming books—and provide the background they need to keep abreast of new research.

ROBERT SEDGEWICK is the William O. Baker Professor of Computer Science at Princeton University, where was founding chair of the computer science department and has been a member of the faculty since 1985. He is a Director of Adobe Systems and has served on the research staffs at Xerox PARC, IDA, and INRIA. He is the coauthor of the landmark introductory book, Algorithms, Fourth Edition. Professor Sedgewick earned his Ph.D from Stanford University under Donald E. Knuth.

The late PHILIPPE FLAJOLET was a Senior Research Director at INRIA, Rocquencourt, where he created and led the ALGO research group. He is celebrated for having opened new lines of research in the analysis of algorithms; having systematized and developed powerful new methods in the field of analytic combinatorics; having solved numerous difficult, open problems; and having lectured on the analysis of algorithms all over the world. Dr. Flajolet was a member of the French Academy of Sciences.

informit.com/aw | aofa.cs.princeton.edu

Cover design by Chuti Prasertsith Cover illustration by

Text printed on recycled paper

$79.99 U.S. | $83.99 CANADA

Com

puter ScienceA

N IN

TE

RD

ISC

IPL

INA

RY

AP

PR

OA

CH

SEDGEWICK

WAYNE

Programming | Algorithms

ComputerScience

An Interdisciplinary Approach

old version has only the first half

Page 6: Computer Science 126€¦ · • Ask a question easily answered elsewhere. • DO NOT POST CODE (EVER). An online discussion forum for COS 126 • Try it when you have a question

6

Online lecture materials are on the website

• Copies of slides (.pdf and 4-up).

• Studio-produced videos.

• No more live lectures.

Video lectures

Why? Because you can

• Fit lectures into your schedule more easily.

• Slow down or rewind if you get lost.

• Speed up or skip if you get bored.

• Focus on understanding, not note-taking.

Bottom line. Online format has proven to be more effective and efficient than live lectures.

“ Lecturing is that mysterious process by means of which the contents of the note-book of the professor are transferred … to the note-book of the student without passing through the mind of either. ”

− Edwin Emery Slosson

Last Thursday was the exception

Page 7: Computer Science 126€¦ · • Ask a question easily answered elsewhere. • DO NOT POST CODE (EVER). An online discussion forum for COS 126 • Try it when you have a question

21st Century

20th Century

Page 8: Computer Science 126€¦ · • Ask a question easily answered elsewhere. • DO NOT POST CODE (EVER). An online discussion forum for COS 126 • Try it when you have a question

Precepts

8

Small inclass discussion groups

• Led by faculty and graduate students.

• Exercises and examples to reinforce content learned from lecture and textbook.

• Watch lecture, do reading before precept

• If everyone participates, everyone benefits.

• 50 and 90 minute options.

• All precepts cover the same content.

• Can't make a precept? Attend another.

Your preceptor is your advocate.

Page 9: Computer Science 126€¦ · • Ask a question easily answered elsewhere. • DO NOT POST CODE (EVER). An online discussion forum for COS 126 • Try it when you have a question

Booksite

9

The book is supported by a unique resource.

• Summary of content.

• Code, exercises, examples.

• Test data, animations

• Extra material.

• NOT the textbook.

• NOT the course website.

• For use while online.

http://introcs.cs.princeton.edu bookmark this page, too!

Page 10: Computer Science 126€¦ · • Ask a question easily answered elsewhere. • DO NOT POST CODE (EVER). An online discussion forum for COS 126 • Try it when you have a question

JAN DEC

NO

V

O

CT

SEP

Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Class meetings

10

We often meet here Tues or Thurs at this time but not always.

• No more live lectures.

• Exams including preparation and review.

• Programming assignment guides.

• A few miscellaneous enrichment topics.

• Check Meetings tab for schedule

• No meeting this Thursday

Page 11: Computer Science 126€¦ · • Ask a question easily answered elsewhere. • DO NOT POST CODE (EVER). An online discussion forum for COS 126 • Try it when you have a question

We have many opportunities to determine your level of achievement.

• 9 programming assignments.

• 2 written exams (in class, 10/17 and 12/12).

• 2 programming exams (in class, 10/10 and 12/5).

• Final programming project (due Dean’s date − 1).

• Extra credit / staff discretion. Adjust borderline cases.

Grades

11

frequent absence hurts participation helps

We do not grade on a "curve".

you are already here

We do grade on a "curve".

grade distribution invariably looks

like this

A B C D F

Page 12: Computer Science 126€¦ · • Ask a question easily answered elsewhere. • DO NOT POST CODE (EVER). An online discussion forum for COS 126 • Try it when you have a question

Programming assignments

12

You will learn to program “with a purpose”

• Weekly programming assignments.

• Interesting and informative.

• Practical application of lecture topics.

• Introduction to meaningful applications.

Page 13: Computer Science 126€¦ · • Ask a question easily answered elsewhere. • DO NOT POST CODE (EVER). An online discussion forum for COS 126 • Try it when you have a question

Exams

13

We have exams in the fall

• Two written exams.

• Two programming exams.

• Prep sessions in class meetings

• No final exam

Programming exams.

• October 10 and December 5.

• Mini in-class assignments, written by RS.

• “Have you been participating in precept?”

• “Can you write a short program?”

• Prepare by practicing with exercises in textbook and on booksite.

Written exams.

• October 17 and December 12.

• Short-answer exams. written by RS.

• “Did you watch lectures and read the book?”

• One question per lecture (roughly).

• Prepare by working old exams and rewatching lectures as necessary.

Page 14: Computer Science 126€¦ · • Ask a question easily answered elsewhere. • DO NOT POST CODE (EVER). An online discussion forum for COS 126 • Try it when you have a question

Platform changes

14

We have changed from DrJava to IntelliJ

• Some slides in Lecture 1 are “deprecated”.

• No changes in textbook.

Integrated development environment

Please note. People who took COS 126 in the past may not know these platforms.

we’re learning them, too!

We have changed from Dropbox to TigerFile

• Big changes under the hood.

• You just click the Submit button.

Submission platform

Page 15: Computer Science 126€¦ · • Ask a question easily answered elsewhere. • DO NOT POST CODE (EVER). An online discussion forum for COS 126 • Try it when you have a question

Ed: yet another platform change (from Piazza)

15

Dos. • Take the time to provide thoughtful answers. • Point to book or website when you can. • Bear with us as we learn effective use cases.

Don’ts. • Provide a guess as an answer. • Ask a question easily answered elsewhere. • DO NOT POST CODE (EVER).

An online discussion forum for COS 126

• Try it when you have a question.

• Visit occasionally even if you have no questions.

Why a discussion forum?

• If someone else has had the same question, you get your answer immediately.

• If your question is new, others are likely to later benefit from the answer.

• We can immediately fix bugs in course materials.

• You most often will find an answer here.

Page 16: Computer Science 126€¦ · • Ask a question easily answered elsewhere. • DO NOT POST CODE (EVER). An online discussion forum for COS 126 • Try it when you have a question

Where can I get help?

16

You have many resources.

• Preceptors.

• Ed.

• Office hours.

• Lab TAs.

• See Help! tab for details.

Help from others? Follow our carefully articulated collaboration policy.

• Working with others within the rules is encouraged but we strictly enforce the rules. • See the Syllabus on the website front page for details. • Only use authorized sources (example: don’t plagiarize or use GitHub) • Ignorance is no defense (read it carefully today). • Feeling stressed? Come talk to us!

Page 17: Computer Science 126€¦ · • Ask a question easily answered elsewhere. • DO NOT POST CODE (EVER). An online discussion forum for COS 126 • Try it when you have a question

Questions and Answers

17