Programming II

Module Information
  • Year: 2015
  • Code: CSC1022
  • Supervisor: Yash Pleck
  • Available for study abroad: No
  • Exchange students: No
  • Module is taught during: Summer

Programming II

Aims

To give students a deeper understanding of OO design issues and data structure implementation and use.
To illustrate these ideas using examples taken from standard Java libraries.
To provide a deeper insight into fundamental programming concepts.

This module will cover a variety of abstractions and representations (e.g. lists, stacks, queues, trees) making use of the Java Collections framework (a sophisticated Java library). It will introduce event-driven programming, event handling in Java, GUI programming with AWT/Swing, case studies taken from Java libraries (e.g. java.util, javax.swing).

Outline Of Syllabus

Programming Fundamentals – problem solving
•       Debugging strategies
•       The concept and properties of algorithms
Programming Fundamentals – data structures
•       Runtime storage management
•       Linked structures
•       Implementation strategies for stacks, queues, and hash tables
•       Implementation strategies for trees
•       Strategies for choosing the right data structure
Programming fundamentals – recursion
•       The concept of recursion
•       Recursive mathematical functions
•       Simple recursive functions
•       Divide-and-conquer strategies
Programming fundamentals – event driven programming
•       Exception handling
Programming fundamentals – object oriented programming
•       Object-oriented design
•       Encapsulation and information-hiding
•       Separation of behaviour and implementation
•       Classes and subclasses
•       Inheritance (overriding, dynamic dispatch)
•       Polymorphism (subtype polymorphism vs. inheritance)
Programming Languages – declarations and types
•       The conception of types as a set of values with together with a set of operations
•       Declaration models (binding, visibility, scope, and lifetime)
•       Garbage collection
Programming Languages – abstraction mechanisms
•       Procedures, functions, and iterators as abstraction mechanisms
•       Type parameters and parameterized types
Programming Languages – object oriented programming
•       Object-oriented design
•       Encapsulation and information-hiding
•       Separation of behaviour and implementation
•       Classes and subclasses
•       Inheritance (overriding, dynamic dispatch)
•       Polymorphism (subtype polymorphism vs. inheritance)
•       Class hierarchies
•       Collection classes and iteration protocols

0

Your Cart