CS211-Intro0405

advertisement
CS211 Algorithms & Data Structures, with GUI
Programming 2004-2005
http://www.minds.may.ie/~dez/cs211/
Part One (weeks 1 –6): Advanced Data Structures.
Dr. J. Paul Gibson (pgibson@cs.nuim.ie)
Part Two (weeks 7 –12) : GUI Design and Programming
Des Traynor (dtraynor@cs.nuim.ie)
Lectures: 11-12 Thursday JH6, 2-4 Thursday SLT
Lab.s: 2- 4 Friday L4 (Des Traynor will be lab. co-ordinator)
J Paul Gibson , NUI Maynooth
2004/2005: CS211
Intro. 1
Course Objectives
•To cover a selection of advanced data structures
•To cover Graphical User Interface Development using the Swing Toolkit
•To cover Event Based Programming in Java
Course Structure and assessment
•24 lecture hours, 2 per week. One lecture will be on the theory of each topic,
the second lecture will be "hands on", where code will be written, for use in
the following lab.
•12 labs , 2 hours each. There will be two exams, in week 6 and eleven
•Each Lab exam is worth 12.5% of your final grade. 5% will be awarded for
attendance and completing lab work. This gives a total continuous assessment
mark of 30%.
Course Resources
All lecture slides will be available in Microsoft Powerpoint (.ppt) or in Adobe
PDF format (.pdf).
NOTE: Week 4 beginning Monday 21st February – special guest lecturer
J Paul Gibson , NUI Maynooth
2004/2005: CS211
Intro. 2
Recommended Books and Websites (see http://www.minds.may.ie/~dez/cs211/)
There are two books that we recommend you borrow from the library, or
purchase (if you wish).
They are...
•Object Oriented Programming Using Java: A Class Centered Approach by
Gary J. Bronson. ISBN: 0-534-38455-2 CourseDirect
•Data Structures and Abstractions with Java by Frank M. Carrano and
Walter Savitch. ISBN: 0-13-017489-0 Amazon
The following links will prove very helpful to you whilst coding in Java:
•The Swing Tutorial - As provided by java.sun.com
•The Java Homepage - This is site you should use for information on all
classes in the Java language
If you find links/sites etc that you find particularily helpful for the course ,
please mail Des and he will add them to the module web site.
J Paul Gibson , NUI Maynooth
2004/2005: CS211
Intro. 3
Advanced Data Structures and Algorithms – Content Overview
1 Arrays of non-primitives
Hashing and hashing tables
2 Graphs implemented as 2-D arrays
Metrics
Languages and grammars
Paths
Classic graph algorithms (P vs NP)
3 Restrictions on graphs – and alternative implementations
Trees: Binary, Balanced, etc …
Lists: Stacks Queues, etc…
Grids and multiple dimensions
4 Nondeterministic Data Structures and Algorithms
Skip Lists
5 Searching and sorting revisited – AI and backtracking
6 Advanced topics – equivalence, refinement, genericity, redundancy, correctness etc …
J Paul Gibson , NUI Maynooth
2004/2005: CS211
Intro. 4
Advanced Data Structures and Algorithms – Style Overview
•Focus on problem solving and problem-based learning
•Problems will mostly be games and/or puzzles
•Lectures will be interactive
•Much of the work will be informal (on the board) … so attendance is recommended
•You are expected to work in the lab.s in your own time … just to keep up
•This material is hard – linking theory with practice is difficult
J Paul Gibson , NUI Maynooth
2004/2005: CS211
Intro. 5
Let’s Go To The Board (If we have time)
Question:
Why do we talk about data structures and algorithms?
[Example: searching and sorting]
Question:
Why do we need to think (about correctness) all the time?
[Example: traffic lights]
Question:
Why do we focus on problem solving?
[Exampl: the matches game]
J Paul Gibson , NUI Maynooth
2004/2005: CS211
Intro. 6
Download