|
Courses
Algorithms and Data Structures
Artificial Cognitive Systems
Business Operations
C++ and Object-Oriented Programming
Computer Interfaces
Computer Systems - An Introduction
Computer Vision
Operating Systems
Principles of Computer Programming
A Short Introduction to Robotics and AI
Software Engineering
Project Manual for Final Year Students
Short Guide to Research Methods for M.Sc. and Ph.D. Degrees
Short Guide to the System Development Lifecycle
If you would like a Powerpoint version of any of these courses, please contact me.
Algorithms & Data Structures
Introduction to complexity of algorithms: performance, time and space tradeoff, worst case and average case performance, big O notation, examples
Complexity and intractability: NP completeness and approximation algorithms
Simple searching algorithms: linear search, binary search
Simple sorting algorithms: bubblesort, quicksort
Abstract Data Types (ADTs)
Lists, Stacks, and Queues: ADT specification, array implementation, linked-list implementation
Trees: binary trees, binary search trees, traversals, applications of trees - Huffman coding, height-balanced trees - AVL trees, Red-Black trees
617 Slides, 770 kb:
Artificial Cognitive Systems
Introduction: Goals of the course, Motivation for the study of cognitive systems, Definition of cognition, The pre-paradigmatic and multi-disciplinary nature of the discipline.
The nature of cognition: a survey of the different paradigms of cognitive systems: Cognitivist systems (physical symbol information processing systems), Emergent systems (connectionist, dynamical, and enactive approaches), Hybrid systems
Cognitive architectures: cognitivist, emergent, and hybrid architectures.
A cognitive architecture for developmental systems: the iCub open systems cognitive humanoid robot.
Challenges: Methods for continuous learning and development, Minimal architectures, Goal identification and goal achievement, Generalization
365 Slides, 17 Mb:
Business Operations (written by Keelin Vernon)
Operations: A review of different types of operations, Manufacturing strategy, Production planning and inventory control, Just-In-Time, Quality systems
Marketing and Service: Introduction to marketing, Marketing management process, Service
Firm Infrastructure: Firm infrastructure, The management process, Organizational theory and design, Organizational structure, Human resource management
Organizational Aspects: Motivation and leadership, Communications, Culture, Innovation and Entrepreneurship, Strategic management, Change management
298 Slides, 450 kb:
C++ and Object-Oriented Programming
Abstract Data Types (ADTs)
The syntax and semantics of C and C++
Object-oriented design and programming:
Classes, encapsulation, constructors, destructors, operator overloading, friend functions, deep and shallow copying, interface, implementation, and application files, derived classes, inheritance, virtual function, late binding, abstract classes, virtual base classes, static class members, polymorphism, and reusability
392 Slides, 450 kb:
Computer Interfaces
Digital data communication standards - Serial communications: Devices, RS232 and RS422 protocols, handshaking signals, implementing an RS232 communications link on IBM PC.
Universal Serial Bus: USB standards. Types and elements of USB Transfers. Development procedure of USB application.
Parallel communications: The General Purpose Interface Bus (GPIB), GPIB signals and lines, handshaking and interface management. Implementing a GPIB link with IBM PC.
Digital Interfacing: Digital I/O ports, Interfacing external signals to digital I/O ports, optical isolation.
Analogue Interfacing: Revision of A/D and D/A conversion techniques, multiplexing, analogue I/O cards, data acquisition and control using the IBM-PC.
218 Slides, 4.9 Mb:
An Introduction to Computer Systems
Overview: Key Concepts, Components of a computer system, input, output, storgae, hardware, software, operating systems, applications.
Processor architecture and operation: CPU, Control Unit, ALU, Registers, Memory, Instruction cycle, Register Transfer Language.
Information Representation: Text, ASCII, Numbers, Binary, Hex, 2s complement.
Digital Design: Analogue and digital signals, Boolean algebra, Logic gates (AND, OR, NOT, XOR, NAND, NOR), DeMorgan's Laws, Simplification of Boolean expressions, Minterms, Karnaugh maps, Binary Arithmetic, half adder, full adder, 4 bit binary adder.
358 Slides, 652 kb:
Elementary Computer Vision
This course is based on D. Vernon, Machine Vision - Automated Visual Inspection and Robot Vision, Prentice-Hall Internationa, 1991.
The book is out of print but is available on-line on this website here and also on the CVonline website.
Introduction.
Illumination and Sensors: Image Formation: Elementary Optics. Camera Sensors. Camera Interfaces and Video Standards. Characteristics of Camera Sensors.
Image Acquisition and Representation: Sampling and Quantisation. Interpixel Distances. Adjacency Conventions. Image Acquisition Hardware. Speed Considerations.
Fundamentals of Digital Image Processing: Local Pixel Operations. Neighbourhood Operations. Geometric Operations. Mathematical Morphology.
The Segmentation Problem: Introduction: Region and Boundary-based approaches. Thresholding. Edge Detection. Region Growing. Boundary Detection.
Image Analysis: Introduction - Inspection, Location and Identification: Template Matching. Decision-Theoretic Approaches. The Hough Transform.
An Overview of Techniques for Shape Description: A Taxonomy of Types of Shape Descriptors. External Scalar Transforms. Internal Scalar Transform. External Space Domain. Internal Space Domain.
Robot Programming & Robot Vision: A brief review of Robot Programming Methodologies. Description of Object Pose with Homogenous Transformations. Robot Programming - A Wire Crimping Task Specification. A simple Robot Programming Language. Two Vision Algorithms for Identifying Ends of Wires. The Camera Model and the Inverse Perspective Transformation. 3D Vision using Structured Light.
Image Understanding: Representations and Information Processing: from Image Objects Models. Organisation of Visual Processes. Visual Representations (The Raw Primal Sketch, The Full Primal Sketch, The 2½D Sketch, 3D Models, Volumetric Representations, Skeletal Representations, Surface Representations, The Extended Gaussian Images). Visual Processes (Stereopsis, Camera Motion, Shading). Concluding Remarks.
1598 Slides, 11 Mb:
Operating Systems
Historical overview: Motivation for operating systems, historical perspective.
OS concepts, functions and structure: Basic functions and components of a general purpose operating system. OS concepts and system calls.
Processes and Threads: process model, process table, and process state diagram. Thread model.
Interprocess communication: race condition and critical regions, mutual exclusion with busy waiting, sleep and wakeup, semaphores, message-passing. Producer/consumer and read/write problems and solutions.
Process scheduling: goals of process scheduling, preemptive and non-preemptive scheduling. Scheduling in batch and interactive system. Round-robin, priority scheduling, starvation and aging.
Memory Management: functions of memory manager, basic management techniques, multiprogramming modeling and issues, swapping. Virtual memory with paging, address translation, page tables, multi-level tables, TLB, page replacement algorithms, page fault handling. Segmentation of memory.
Device management: I/O hardware, role of OS. I/O operations, polling, interrupt-driven, and DMA. I/O software goals and layers. Examples such as disks, clocks, and power management.
File management: file system characteristics; file naming, structure, types, access, attributes, and operations. Directories organization and operations. File system implementation, allocation methods.
230 Slides, 226 kb:
Principles of Computer Programming
The computer model and representations. Elementary C programming example.
Software development environment and tools: UNIX, CDE, textedit, gcc, and other UNIX commands; more elementary C programming
C programming examples (input, output, types, if-else construct)
Structured problems solving, pseudo-code, program design, and elementary programming (loops, assignments, types)
The C language: types, variables, values, assignment statements, I/O, logical operators, conditional statements, iteration, functions and parameter passing, arrays, structures, file I/O
The software development process and software life-cycle
270 Slides, 1 Mb:
A Short Introduction to Robotics and AI
Nature of robotics
Types of robots: manipulators, mobile robots, entertainment, education, AI robotics
Robotic applications: Parts handling, Assembly, Painting, Surveillance, Security, Home help.
Principal engineering issues: Mechanical Construction, Control, Manipulation, Task Specification, Sensing, Path planning, Interaction, Reasoning, Autonomy and Adaptive Behaviour
Principal AI issues
The future of robotics
79 Slides, 2 Mb:
Software Engineering
Software process and project metrics: measures vs. metrics, process improvement, LOC metrics, FP metrics, metrics for quality (correctness, maintainability, integrity, usability, defect removal efficiency).
Software project planning: resources, estimation, decomposition, COCOMO estimation model. Project scheduling and tracking: human resources and effort, task definition, task networks, schedules.
Software quality assurance (SQA): quality attributes, software reviews, statistical quality assurance, software quality standards, McCall’s quality factors, FURPS, metrics for analysis, design, implementation, testing, maintenance.
Object-oriented analysis, design, and testing: OOD concepts, analysis and design issues, classes, inheritance, and polymorphism, testing strategies, metrics.
Social, ethical and professional issues: code of ethics, copyright & security.
289 Slides, 560 kb:
89 Pages, 557 kb:
Project Manual for Final Year Students
The Importance of Final Year Projects
Choosing Your Project.
Planning, Executing, and Managing Your Project: Problem Identification. Requirements Elicitation. Problem Modelling. Systems Analysis and Specification. System Design. Module Implementation and System Integration. Testing and Evaluation. Documentation. Good Engineering Practice and Safety Regulations. Back to the Beginning – Managing Your Project.
Documenting Your Project: Project Specification. Interim Progress Report. Final Report. Presentations. A Very Short Guide to Good Writing.
Project Assessment and Marking.
25 Pages, 264 kb:
A Short Guide to Research Methods for M.Sc. and Ph.D. Degrees
Getting Started
Moving Along
Reading
Writing: Good Writing Discipline, Good Writing Style
Writing Scientific Papers
Ph.D. and M.Sc. Dissertations
Looking Forward
Acknowledgements
Further Reading
Appendix I - Some Rules of English Usage
Appendix II - Typical Structure of a Thesis
31 Pages, 324 kb:
A Short Guide to the System Development Lifecycle
Introduction
The Software Development Lifecycle
Problem Identification
Requirements Elicitation
Problem Modelling
Systems Analysis and Specification
System Design
Module Implementation and System Integration
Testing
Documentation
13 Pages, 111 kb:
|