Fundamentals of Programming and Logic - CO523

Sorry, this module is not currently running in 2019-20.

Pre-requisites

None

Restrictions

None

2019-20

Overview

The 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.

Details

This module appears in:


Contact hours

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.

Indicative reading

See the library reading list for this module (Canterbury)

Learning outcomes

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.

University of Kent makes every effort to ensure that module information is accurate for the relevant academic session and to provide educational services as described. However, courses, services and other matters may be subject to change. Please read our full disclaimer.