Sorry, this module is not currently running in 2019-20.
OverviewThe module will cover: Object-oriented programming: Fundamentals of classes and objects. Class libraries. Testing. Inheritance and polymorphism.Graphical-user interfaces (GUIs), exceptions, input-output Functional programming: Expressions, values and types. (sessions and scripts). Numbers, booleans and characters.Function definitions. Approaches to testing programs. Polymorphic types. Lists and common listprocessing functions. Tuples. Pattern matching, recursive function definitions. Library functions.Algebraic data types. Propositional Logic. Data and information representation using XML. Applications of XML.
This module appears in:
Acquisition is through two one-hour lectures per week, supported by a single one-hour supervised class per week. Self-directed learning is facilitated by directed reading and web-based material. 150 total study hours spent acquiring a practical facility and understanding of the syllabus material.
Use advanced features of an object-oriented programming language to write programs.
Write programs with the support of an integrated development environment.
Structure data and information as class definitions.
Use object-oriented analysis, design and implementation to identify and solve practical programming problems.
Test solutions to programming problems.
Discuss the quality of solutions through consideration of issues such as encapsulation, cohesion and coupling.
Understand and apply the basic concepts of Functional Programming: how evaluation operates, how to program in a side-effect-free way, understand the role of types in general, understand the use of specific types for data modelling.
Understand the basics of Propositional and Predicate Logic: their syntax (connectives, quantifiers) and their semantics (truth tables, logical equivalences).
Design appropriate interfaces between modular components.
Evaluate the quality of competing solutions to programming problems.
Evaluate possible trade-offs between alternative solutions, for instance those involving time and space differences.
Use effectively the local network facilities and a range of software development tools, such as an integrated development environment, text editor and compiler.
Appreciate at an introductory level, the representation and structuring of information with XML as a preliminary to presentation in HTML; and also the wide range of applications of XML.