Oct 26, 2010 ... systematic software development and in the design of modern software ...
working with data structures, eg for sorting and searching.
CS2310 Level: 2
Data Structures and Algorithms with Java Credits: 10
Teaching Period: 1
Module Tutor: Dr S Wong
Aims The module will provide a broad understanding of the central role that data structures and associated algorithms play both in systematic software development and in the design of modern software development environments such as that offered by Java. Students will gain practical ability in selecting and effectively deploying appropriate data structures, coupled with an understanding of the internal design and implementation of data structures, and an understanding of the algorithms used in working with data structures, eg for sorting and searching. An introductory study of time and space complexity will support students’ ability to make well informed choices of data structures and algorithms. Content Review of object-oriented design, emphasising encapsulation and abstraction Abstract data types (ADTs) and the Java Collections Framework Generic classes Definition and implementation of a range of ADTs: sets, stacks, queues, lists, maps, trees Data structures and algorithms as ADT implementation techniques: Arrays, linear linked structures, trees, hash tables Recursion: principles; recursive data structures and algorithms Algorithms for data structure access, update and traversal Sorting and searching algorithms (naive and realistic) Time and space demands of implementation techniques and algorithms Case studies illustrating applications of data structures and algorithms, including XML, XML Schema and JAXB Teaching 2 hours lectures and 1 hour lab class per week for 11 week Assessment Written exam: 75% (1.5 hours, January) Practical assignment: 20% Lab quizzes: 5% (requires attendance at scheduled class) Module outcomes What the student should gain from successful completion of the module
Teaching/Learning Methods
Knowledge and Understanding Definition of a range of ADTs and their role in software development Concrete data structures and algorithms relevant to ADT implementation Java language support for ADTs
Lectures and recommended reading
Intellectual Skills Able to select and apply: Suitable ADTs, within a principled software development process Suitable ADT implementations, based on appropriate criteria
Lectures, practical work Exam and assessed practical work
Professional/Subject-Specific Skills Use the Java Collections Framework, including generic types Write Java code for manipulating linked structures Enhanced skill in Java coding in general Write well-formed XML documents Process data on XML documents
Practical work Systematic use of Java documentation Lectures and recommended reading
Assessment Methods Exam and quizzes
Assessed practical work Exam and quizzes
Transferable Skills Learning resources http://java.sun.com/docs/books/tutorial/collections/index.html J Lewis & J Chase, Java Software Structures (2nd edition), Addison-Wesley, 2005 M A Weiss, Data structures and problem solving using Java (4th edition), Pearson, 2010. B D McLaughlin & J Edelson, Java & XML (3rd edition), O'Reilly, 2006. K H Goldberg, XML (2nd edition), Peachpit Press, 2009 Other study requirements to take this module Dr A J Beaumont
Last update 26/10/2010
Dr A J Beaumont
Last update 26/10/2010