22
06/15/22 Data Structures and Algorithms 1 Data Structures and Algorithms Dick Steflik Fall 2012

7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012

Embed Size (px)

Citation preview

Page 1: 7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012

04/19/23 Data Structures and Algorithms 1

Data Structures and Algorithms

Dick Steflik

Fall 2012

Page 2: 7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012

04/19/23 Data Structures and Algorithms 2

Instructor

Prof. Richard (“Dick”) Steflik [email protected] Office: T22 Engineering Building Office Hours: Tue and Thu : 11:00 – 1:00 PM http://www.cs.binghamton.edu/~steflik/cs240/cs240.htm

Page 3: 7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012

04/19/23 Data Structures and Algorithms 3

Teaching Assistant

TA: Huseyin Aygan Office Hours: TBA

Blackboard: http://blackboard.binghamton.edu“Data Structures and Algorithms-SPG2”, section B1

Page 4: 7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012

04/19/23 Data Structures and Algorithms 4

Course Information

Course Web pagehttp://www.cs.binghamton.edu/~steflik/cs240/cs240.htm

No cell phones/ smart phones in class (can keep it in vibrate/silent mode)

No Laptops can be used during class take notes in the old-fashioned way

Slides will NOT be provided before the lecture Take notes in class

Page 5: 7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012

04/19/23 Data Structures and Algorithms 5

Class email list

[email protected] should have received an email from me on this list

You are responsible for everything I write to this email address

Revisit the list archives if necessary

Page 6: 7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012

04/19/23 Data Structures and Algorithms 6

Prerequisites and Background

CS 140 CS 210 or CS 211 Past programming experience in C or C++ is not

required We will build fairly large programs, and move quickly

for some beginning programmers

Page 7: 7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012

04/19/23 Data Structures and Algorithms 7

Grading

20%: 2 Exams tentative breakup: 10% and 10%

20%: Lab Grade (lab grades and attendance) 10%: Quizzes and Attendance 50%: Programming Assignments, Projects

Page 8: 7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012

04/19/23 Data Structures and Algorithms 8

Course Requirements (more detail)

Labs About 10 “regular”, graded, labs

Usually due within a week of the labSubmit via class FTP server

(bigblackbox.cs.binghamton.edu)No makeupsNo dropsAttendance is required

Page 9: 7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012

04/19/23 Data Structures and Algorithms 9

Course Requirements (more detail)

Exams (2)Closed notes, closed book, in classExams are not cumulative

Page 10: 7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012

04/19/23 Data Structures and Algorithms 10

Course Requirements (more detail)

Projects (6)“Bigger” than labs, more interesting Two weeks (usually) Team work if explicitly mentioned in the description Submit via class FTP server

Attendance & ParticipationCome to class, lab, office hours, ask questions

there are NO dumb questions

Page 11: 7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012

04/19/23 Data Structures and Algorithms 11

Course Materials

Textbook (Required)ADTs, Data Structures, and Problem Solving with C++,

Second Edition, Larry Nyhoff, Prentice Hall (2005)ISBN: 0-13-140909-3

http://cs.calvin.edu/books/c++/ds/2e/ My Powerpoint slides

Available from Course Web pageNecessary but not sufficient…

Page 12: 7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012

04/19/23 Data Structures and Algorithms 12

Course Policies

Office Hours and helpPlease concentrate almost all of your in-person

requests of the TA’s and I to office hours“By Appointment” is always an option

Feel free to email any [email protected] for content questions

to the entire [email protected] for other issuesAssume any email to the TA will be forwarded to

me

Page 13: 7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012

04/19/23 Data Structures and Algorithms 13

Course Policies

Late PenaltiesTough but reasonableGood excuses will be honored (health, court

appearance)Individual extensions rarely granted

I sometimes give the whole class an extension (but don’t count on it!)

Many labs and assignments will come with a late penalty and a “zero time”If we get it after “zero time” you get a zero, probably because

we will post answers by then

Page 14: 7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012

04/19/23 Data Structures and Algorithms 14

Course Policies (continued)

“Collaboration”Work individuallyGet help from TA’s and me

we are very responsive

Be careful when talking to fellow studentsLearn general information, not specific solutionsNever share or borrow code (this is a violation of the Academic

Honesty Code)“Collaborators” will be punished equally and harshlyWe can tell…

Page 15: 7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012

04/19/23 Data Structures and Algorithms 15

Grade Changes

TA/CA will do the grading, but grade changes must come through me After 2 weeks, grades are set in stone Visit me during office hours (or send email)We will make grading mistakes, and we will happily

correct them (but don’t push it)

Page 16: 7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012

04/19/23 Data Structures and Algorithms 16

Some comments…

Wide variety of incoming skill levels I will try to challenge everyoneSee me early if you have problems (Also see me if you’re not learning enough)

Organization and perseverance countThis class will be a lot of work for many of youStart early, plan to work hard on each assignment

Page 17: 7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012

04/19/23 Data Structuress and Algorithms 17

Official Course Description Analysis of the design, implementation, and properties of basic

and advanced data structures, including lists, stacks, queues, hash tables, trees, heaps, and graphs. Design and time-space analysis of basic and advanced algorithms, including searching, sorting, insert/delete, hash table collision resolution techniques, recursive functions, balanced tree maintenance, and graph algorithms. Weekly required laboratory programming and three or more additional programming projects in C++. Practical programming techniques including C++ templates and the Standard Template Library (STL), operator overloading, C++ stream I/O, separate compilation using makefiles, debugging tools and techniques, dynamic memory management. Prerequisites: CS 120 or CS 210, and CS 140.

Page 18: 7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012

04/19/23 Data Structures and Algorithms 18

In a nutshell

What is programming? Programming is about storing, accessing, and

manipulating data Many options exist

How do we organize data in programs?What language mechanisms do we employ?How do we evaluate different solutions?

Choices have important performance and functionality consequences….

In this class, you’ll learn how to use the tools (language mechanisms and data structures) and how to pick the right tool (algorithm analysis) for different jobs

Page 19: 7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012

04/19/23 Data Structures and Algorithms 19

Objectives: Become proficient in…

Programming recursion, pointers, simple memory management and allocation,

separate compilation, parameter passing, and more

C++ programming language conceptsclasses, objects, pointers and references, enumerated types,

typedefs, templates, and more

Container concepts, representations, and operations lists, queues, stacks, trees, graphs, heaps, hash tables

Page 20: 7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012

04/19/23 Data Structures and Algorithms 20

Objectives: Become proficient in…

Abstract data type (ADT) conceptsdesign and implementation considerations

Sorting algorithmsbubble sort, selection sort, merge sort, quicksort,

counting sort, and more

Simple performance analysis of algorithms and container operations

Page 21: 7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012

04/19/23 Data Structures and Algorithms 21

Course Objectives

I hope to turn you into computer programmers…Direct exposure to important tools and conceptsExperience – long hours in the lab (for some of you)Failure (small “failures”… not course failure!)Large programs – more code than you’ve written before

I care more what you think looking back at this class, than during or immediately following… (curse me now, thank me later?!)

Page 22: 7/3/2015Data Structures and Algorithms1 Dick Steflik Fall 2012

04/19/23 Data Structures and Algorithms 22

Help with C++

www.horstmann.com/ccj2/ccjapp3.html www.cplusplus.com/doc/tutorial/

Sections 1 and 2

Appendices C, D and E of NyhoffBooks listed on the class Web page