CS-2852 Data Structures

advertisement
CS-2852
Data Structures
LECTURE 1A
Andrew J. Wozniewicz
Image copyright © 2010 andyjphoto.com
Software In A Nutshell
PROGRAMS = ???
Software In A Nutshell
PROGRAMS =
ALGORITHMS + DATA STRUCTURES
Niklaus Wirth, 1976
Why Have Data Structures?
Why Have Data Structures?
01001000011001010110110001101
10001101111001000000111011101
10111101110010011011000110010
00010000100100000010101110110
01010110110001100011011011110
11011010110010100100000011101
00011011110010000001000011010
10011001011010011001000110101
001110000011001000100001
Course Description I
This course covers the
organization of data and
the algorithms that act
upon them.
From the official MSOE Course description at
http://resources.msoe.edu/cdb/course.php?course=CS-2852
PROGRAMS = DATA + ALGORITHMS
Niklaus Wirth
CS-2852 Data Structures, Andrew J. Wozniewicz
Course Description II
The topics of arrays, linked
lists, stacks, queues, trees,
sets, and hash tables are
introduced.
From the official MSOE Course description at
http://resources.msoe.edu/cdb/course.php?course=CS-2852
CS-2852 Data Structures, Andrew J. Wozniewicz
Course Description III
Fundamentals of algorithm
performance are also
introduced, with an emphasis
placed on time complexity
analysis.
From the official MSOE Course description at
http://resources.msoe.edu/cdb/course.php?course=CS-2852
CS-2852 Data Structures, Andrew J. Wozniewicz
Course Description IV
Laboratory activities include
implementation of data
structures as well as the
application of data structures
from standard libraries.
From the official MSOE Course description at
http://resources.msoe.edu/cdb/course.php?course=CS-2852
Notebook Computer Required
CS-2852 Data Structures, Andrew J. Wozniewicz
Course Outcomes I
Upon successful completion of this course, the
student will:
• understand and apply
complex data structures
and algorithms
CS-2852 Data Structures, Andrew J. Wozniewicz
Course Outcomes II
Upon successful completion of this
course, the student will:
• use appropriate algorithms
(and associated data
structures) to solve
problems
CS-2852 Data Structures, Andrew J. Wozniewicz
Course Outcomes III
Upon successful completion of this
course, the student will:
• have a thorough
understanding of
commonly used library data
structures
CS-2852 Data Structures, Andrew J. Wozniewicz
Course Outcomes IV
Upon successful completion of this
course, the student will:
• be able to analyze the time
complexity of algorithms
The Big-Oh Notation
CS-2852 Data Structures, Andrew J. Wozniewicz
Course Outcomes V
Upon successful completion of this
course, the student will:
• understand the use of
recursion in problem
solving
Recursion, n. See recursion.
CS-2852 Data Structures, Andrew J. Wozniewicz
Course Outcomes VI
Upon successful completion of this
course, the student will:
appropriate
• be able to use data
structures in software
design and implementation
CS-2852 Data Structures, Andrew J. Wozniewicz
Course Outcomes VII
Upon successful completion of this
course, the student will:
• be able to apply standard
library data structures in
software design
CS-2852 Data Structures, Andrew J. Wozniewicz
Course Outcomes VIII
Upon successful completion of this
course, the student will:
• be able to select
appropriate data structures
for a given application
CS-2852 Data Structures, Andrew J. Wozniewicz
Andrew J. Wozniewicz
MS/SE
Adjunct Assistant Professor
• E-Mail: wozniewicz@msoe.edu
• Phone: (414) 277-2435
• Office:
L-352
– Hours: Tue & Thu 7:00 – 8:30 PM
• Web:
myweb.msoe.edu/wozniewicz
CS-2852 Data Structures, Andrew J. Wozniewicz
Andrew J. Wozniewicz’s Bio
• Last name is Polish and is pronounced:
Voz-Nye-Vitch
• Hands-On Developer/Software Engineer
• Founder/President/Principal Consultant
of Optimax Corporation since 1993
• Experience in Financial, Insurance,
Manufacturing, Medical, Publishing,
Transportation, … Industries.
CS-2852 Data Structures, Andrew J. Wozniewicz
CS-2852 Data Structures, Andrew J. Wozniewicz
Your Professor’s Credentials
• Master of Science in Computer Science
Software Engineering Concentration
DePaul University, Chicago, IL, 1997
• Bachelor of Mathematics in Computer
Science, University of Waterloo, Ont., 1992
• Self-employed in the Software Development
industry since 1985
CS-2852 Data Structures, Andrew J. Wozniewicz
Prerequisites (Direct)
SE-1021 Software Development II
– explain the rationale for object-oriented design and
programming
– make appropriate use of exception handling
– apply composition, inheritance, and interfaces
– distinguish between extending a class (inheritance) and
implementing an interface
– design and implement simple Java classes and packages
– document the implementation of small software systems
– translate Java code into UML class and sequence diagrams
– use classes from the Java standard library to read and
write files on disk
– use classes from the Java standard library to create
functional graphical user interfaces
– interpret Javadoc to make appropriate use of standard
library classes
CS-2852 Data Structures, Andrew J. Wozniewicz
Prerequisites (Indirect)
SE-1011 Software Development I
– design and document an algorithmic solution for a given
problem statement
– create and interpret complex expressions that use
relational and Boolean operators
– select the appropriate selection control statement for a
given task
– use while/do-while/for statements to control repetition in
algorithmic solutions
– select the appropriate repetition control statement for a
given task
– translate UML class diagrams into Java code
– design and implement simple classes
– design and implement class and object methods
– use existing Java class libraries
– design and implement simple Java programs
– declare and use collections of primitive and object data
using arrays
– declare and use collections of object data using ArrayLists
CS-2852 Data Structures, Andrew J. Wozniewicz
Textbook
Data Structures,
Abstraction and
Design Using Java,
2nd ed.
Koffman and
Wolfgang,
Wiley, 2010
ISBN: 0-470-12870-4
978-0-470-12870-1
CS-2852 Data Structures, Andrew J. Wozniewicz
Course Schedule
Tue, Thu, 5:30 PM - 6:45 PM
Location: MAIN SCI S359
Wed, 5:30 PM - 7:20 PM
Location: MAIN LIB L100
CS-2852 Data Structures, Andrew J. Wozniewicz
Communications
• Course Website (syllabus, schedule, rules)
myweb.msoe.edu/wozniewicz/cs2582
• Website Mirror:
optimax.com/msoe/wozniewicz/cs2582
• Blackboard (labs, homework, quizzes,
announcements, forum, etc.)
blackboard.msoe.edu
CS-2852 Data Structures, Andrew J. Wozniewicz
Feedback Forms
Leave on my desk at the end of the class.
Questions…
What went well?
What did not go so well?
CS-2852 Data Structures, Andrew J. Wozniewicz
Grading Weights
Quizzes
Lab Projects
Midterm
Homework
Final Exam
15%
15%
20%
25%
25%
CS-2852 Data Structures, Andrew J. Wozniewicz
Quizzes
•
•
•
•
•
Cover the material to date
Each quiz is worth 100 points
May contain “bonus” questions
All material covered to date
Material for the specific lab
CS-2852 Data Structures, Andrew J. Wozniewicz
Homework
• 4 programming projects
– Substantial
– Given out in Labs
– Due 2 weeks later
• Weight: 25%
• 100-point scale
• Bonus points possible
CS-2852 Data Structures, Andrew J. Wozniewicz
Lab Preparation
• Quiz at the beginning of each lab.
• You are expected to read the lab
assignment before the lab begins.
• All Lab assignments are worth 100
points per week.
• There is a 10% per day late penalty for
lab reports submitted after the
scheduled due date
(Friday 11:59 pm).
CS-2852 Data Structures, Andrew J. Wozniewicz
Grading Scale
•
•
•
•
•
•
•
•
A (93-100)
AB (89-92)
B (85-88)
BC (81-84)
C (77-80)
CD (74-76)
D (70-73)
F (0-70)
CS-2852 Data Structures, Andrew J. Wozniewicz
Grading Criteria

The grading formula applies only to those students who have
successfully met the objectives of this course.

There is a 10% per business day late penalty for all written
work. Any work more than 5 days late will receive a 0 grade.
You must ultimately complete all work in order to pass the
course.

You are encouraged to discuss homework and programming
assignments with your fellow students, however, each of you is
responsible for doing and turning in your own work.
Plagiarism (i.e. cheating) is not tolerated
CS-2852 Data Structures, Andrew J. Wozniewicz
Attendance
• Attendance in class is expected.
Dropping the course?
Make sure you notify the Registrar.
• Attendance in lab is mandatory.
CS-2852 Data Structures, Andrew J. Wozniewicz
Labs, Quizzes, Exams: Summary
Labs are generally due Friday night.
 Quizzes will generally be given at the
beginning of the labs.
 Quiz material will cover homework,
lecture, and lab topics.
 Exams will cover quiz, homework,
lecture, and lab topics.
 Specific info will be posted on the
Blackboard and/or website. Please,
check regularly.

CS-2852 Data Structures, Andrew J. Wozniewicz
Course Schedule
Wk
Tue
Wed
Thu
1
9/6
LECT01
9/7
LAB01
9/8
LECT02
2
9/13
LECT03
9/14
LAB02
9/15
LECT04
3
9/20
LECT05
9/21
LAB03
9/22
LECT06
4
9/27
LECT07
9/28
LAB04
9/29
LECT08
5
10/4
LECT09
10/5
LAB05
10/6
LECT10
6 10/11
LECT11
10/12
LAB06
10/13
LECT12
7 10/18
LECT13
10/19
LAB07
10/20
LECT14
8 10/25
LECT15
10/26
LAB08
10/27
LECT16
9 11/01
LECT17
11/02
LAB09
11/03
LECT18
10 11/08
LECT19
11/09
LAB10
11/10
LECT20
11
FINAL EXAM 11/15 (TBD)
CS-2852 Data Structures, Andrew J. Wozniewicz
Questions?
Image copyright © 2010 andyjphoto.com
Get to Know Your
Neighbor…
• Name
• Where from…
• Program and Level of Study
• One-sentence Description
Image copyright © 2010 andyjphoto.com
Download