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