Upload
madeline-evans
View
219
Download
0
Tags:
Embed Size (px)
Citation preview
04/19/23 Data Structures and Algorithms 1
Data Structures and Algorithms
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
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
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
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
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
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
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
04/19/23 Data Structures and Algorithms 9
Course Requirements (more detail)
Exams (2)Closed notes, closed book, in classExams are not cumulative
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
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…
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
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
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…
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)
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
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.
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
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
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
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?!)
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