INTRODUCTION TO DATA STRUCTURES AND ALGORITHMS Thomas Kuehne School of Engineering and Computer...
-
Upload
rosanna-campbell -
Category
Documents
-
view
215 -
download
0
Transcript of INTRODUCTION TO DATA STRUCTURES AND ALGORITHMS Thomas Kuehne School of Engineering and Computer...
INTRODUCTION TO
DATA STRUCTURES AND ALGORITHMS
Thomas KuehneSchool of Engineering and Computer Science, Victoria
University of Wellington
CO
MP 1
03
2015-T2 Welcome
Thomas Kuehne, Marcus Frean,
2
PEOPLE Co-ordinator: Marcus Frean [Co353, 463-
5672]Office hours: TBA
Lecturers: Thomas Kuehne, Marcus Frean
Senior Tutor: Zarinah Amin [Co343, 463-5936]
Email: [email protected]
Course URL:http://ecs.victoria.ac.nz/Courses/COMP103_2015T2
Class Rep: YOUR NAME HERE?!
2
3
ADMINISTRATION Prerequisite:
You need to have passed COMP112, or COMP102 with a B- or better.
If you did not meet this, you can take 102/112 again.
(COMP102 is offered both trimesters, but not over the summer.)
3
4
HELPING YOU SUCCEED4
5
LECTURES Mon-Thur-Fr in MC LT101
Slides printouts provided in class also on course webpage I’m looking into video – should be fine
Goals: Provide a framework for your learning Provide explanations/demonstrations
SLIDES NOTES TEXTBOOK
5
6
TUTORIALS Run by a successful former student
of 103 Starting next week various locations
What happens: Quick quiz work with peers to understand the tricky
bits The tutor will set topical problems – you
will work out answers, get feedback, discuss with the tutor and each other...
Our aim: help you to understand both lectures and assignments better
6
7
ASSIGNMENTS Critical for your learning! 10 Assignments total of 20%
out: Fridays (in lecture) due: Fridays (before lecture)
(submitted electronically)
Solutions will be available after hand-in time.
Late assignments cannot be marked.
7
8
ASSIGNMENTSSome THEMES for the assignments:
Graphical editors: painting, diagrams, family trees..
Processing files of TEXT DATA: analysing data files, stories, web pages etc.
Simulations: programs that implement bits of REAL world
Do it yourself – no pairing up You can work in the ECS labs at all sorts of
hours of day and night Register on a lab computer to obtain a user
login (if you haven’t already got one from 102/112)
8
9
HELP DESK
Intended for small groups... One-on-one help with assignment
work No direct solutions will be provided
Close to the labs but not in themprint your code & highlight aspects to discuss
Where and When: to be announced
9
10
TEXT BOOK JAVA FOUNDATIONS:
Introduction to Program Design & Data Structuresby Lewis, DePasquale and Chase
- 2nd or 3rd edition is best SAME textbook as comp 102/112 COMPLEMENTS lectures and assignments
(but we do not always follow the text closely)
10
11
WEB RESOURCES FORUM:
Post questions Collaborate and help each other Course staff monitor and answer when
appropriate NO posting chunks of ANSWERS to
assignments!
all lecture notes and assignments videos (soon) links to Java reference material tips on getting Java and BlueJ working at
home
11
12
ASSESSMENT
10 Assignments [20%] Mid-term test [20%] 45 mins, close to
break Tutorials – get there! [ 2%] Final Exam [58%] 2 hours, in exam
period
Mandatory Requirements: Submit reasonable attempt for
at least 7 out of 10 Assignments (may be used for borderline cases and aegrotats)
At least ‘C-’ grade overall to PASS… …and at least a D in the exam
12
13
PLAGIARISM UNACCEPTABLE We want you to LEARN, TALK to each
other, learn TOGETHER, and HELP each other, but
PLAGIARISM is UNACCEPTABLE!
Got help from anybody other than lecturer or tutor?STATE IT ON THE ASSIGNMENT!
Copied bits of code from anywhere other than lecture slides or textbook? STATE IT ON THE ASSIGNMENT!
13
14
SAFETY in the LABS Please be safe in the computer labs
More people are injured at computer labsthan in any other science lab
Read the POSTERS in the lab Listen to Roger Cliffe See student health quickly if you get
problems
14
15
QUICK RECAP What was in comp 102/112?
Classes, Objects, Fields, Methods Conditionals, Loops (if, if...else, for,
while, do..while) Using variables, reading input, writing,
drawing Algorithm design Using GUI’s (Graphical User Interface) Arrays, and using ArrayList
Revise these concepts if necessary!
15
16
Some Basic Terms
Algorithm: step-by-step process to solve a problem (pseudocode: part code, part English)
Program: actual implementation of an algorithm in a programming language
Data Structure: the way data is structured or organized (example: Array)
Collection: an object that serves as a repository for other objects (like a “container”)
16
COLLECTIONS Big chunks of real life involve what
we could call Collections, and this is reflected in programs written to help real life: Collections of books, music, photos,
clothes, ... Organized in a way to ease access and
use items
Some STANDARD types of Collections we use in our programs: List, Set, Bag, Stack, Queue, Trees, Map
17
18
Varieties of collection Different structures
No structure – just a collection of values Linear structure of values – order
matters Hierarchical structures
Different constraints for accessing elements get, put, remove anywhere get, put, remove only at the ends, or
only at top (and so on).
18
WHAT CAN YOU EXPECT... Using and understanding the current
Java Collections Library Creating your own Collections How to add, remove, search, sort, ...
efficiently
So this is what 103 is about:
The fundamental data structures of computer science
The crucial algorithms on those structures Especially the efficiency of those
algorithms
19
20
Course Overview – Part 1Programming with Linear collections
Different Kinds of collections: Lists, Sets, Bags, Maps, Stacks, Queues,
Priority Queues Using, implementing, sorting, and
searching these linear collections...
20
21
Course Overview – Part 2Programming with Hierarchical
collections
Building, traversing Tree-structured collections
Re-implementing linear collections with binary search trees with partially ordered trees with hash tables
21
22
RECURRING THEMES Good Design Choosing appropriate
implementationsHow do you get it right first
time?
Efficiency How fast is it?How much memory does it
take?Analysis and benchmarking
22