The University of Southampton

COMP2209 Programming III

Module Overview

This module aims to introduce students to recursion and to the principles of recursive, applicative and functional programming. In it, they will use various functional abstractions to control the complexity of programming, and will use abstraction mechanisms in programming. They will also study the principles of program evaluation and explore the evaluation mechanism via a meta-circular evaluator.

Aims & Objectives

Aims

Knowledge and Understanding

Having successfully completed the module, you will be able to demonstrate knowledge and understanding of:

A1.  The key mechanisms underpinning the functional programming model

A2.  The principles of evaluation of programming language

Intellectual Skills

Having successfully completed the module, you will be able to:

B1.  Discuss and perform the decomposition of problems using procedural, data and metalinguistic abstractions.

B2.  Understand the concept of functional programming and be able to write programs in this style in the context of Scheme.

B3.  Reason about evaluation mechanisms.

Subject Specific Skills

Having successfully completed the module, you will be able to:

C1.  Program in a functional style

C2.  Evaluate programs step by step.

Syllabus

Recursive Techniques recursion on numbers, lists, trees, graphs.

  • Procedural Abstraction
    • procedures as arguments
    • procedures as return values
  • Objects
    • structures
    • closures
    • streams and delayed evaluation
  • Metalinguistic Abstraction
  • Environment model
    • evaluation
    • metacircular evaluators
  • Functional programming techniques in object oriented languages

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
Lecture36
Tutorial12

Assessment

Assessment methods

MethodHoursPercentage contribution
Programming Exercises-65%
Exam0 hours35%

Referral Method: By examination

Share this module FacebookTwitterWeibo

ELEC2209 Electrical Engineering Design

Module Overview

This module aims to develop a student’s skills in a number of areas including design project management and communication skills.  Basic construction skills are taught in the laboratory through an exercise to build and test a live wire detector.  A significant component of the module relates to the design, build and test of an autonomous vehicle as part of a group design project.  This is supported with an exercise to program a commercial industrial robot to perform a series of pick and place tasks. 

Aims & Objectives

Aims

Knowledge and Understanding

Having successfully completed the module, you will be able to demonstrate knowledge and understanding of:

A1.  Define the specification of an artifact that needs to be designed, tested and commissioned

A2.  To understand the design process

A3.  To understand the processes involved in project management

Intellectual Skills

Having successfully completed the module, you will be able to:

B1.  Develop a plan for the implementation of the design and the undertake those activities

B2.  Analyses the design as it evolves, and deduce problems with the subsequent rectification

B3.  Undertake an evaluation of the complete design and prepare a critical précis

Subject Specific Skills 

Having successfully completed the module, you will be able to:

C1.  Undertake small scale mechanical and electronic construction

C2.  Undertake realtime programming

C3.  Undertake detailed faultfinding of the developed circuits if required

 

Employability/Transferable/Key Skills

Having successfully completed the module, you will be able to:

D1.Ability to operate as a team

D2.Prepare working documents, designs and gantt charts

D3.Prepare a full report of the design and its operation

D4.Use of a logbook in the engineering design environment

Syllabus

•  The development of individual practical skills through completion of a simple build and test exercise, incorporating soldering, circuit construction and the manufacture of a container.

•  Groups of students are required to undertake a design, build and test project against a predefined specification. The project assessment includes a competitive trial, individual log books, group reports and quality assessment of the designed system.

•  Small group exercise on programming of an industrial robot to perform a series of predefined tasks.

•  The groups will have seminars on project management and principles of design to support the activities.

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
Specialist Lab72

Assessment

Assessment methods

MethodHoursPercentage contribution
Group Project-85%
Robot Programming-10%
Laboratories-5%

Referral Method: By examination

Share this module FacebookTwitterWeibo

ELEC2208 Power Electronics and Drives

Module Overview

The module aims to provide a detailed understanding of all aspects of the selection, sizing and operation of modern electrical drive systems; this will be achieved by consideration of the individual sub-system including power semiconductors, electronic power converters and associated electric motors, mechanical power transmission, speed and velocity transducers, and controllers.

Aims & Objectives

Aims

Knowledge and Understanding

Having successfully completed the module, you will be able to:

A1.       Understand the operation of modern drive systems applied to industrial applications including robotics and advanced machine tools.

A2.       Apply your knowledge of the electrical characteristics of power semiconductor devices, to select power semiconductor devices for a range of applications.

A3.       Understand the basic topology of converters, inverters and power supplies

A4.       Understand the dynamics of mechanical systems found in industrial applications.

A5.       Characterise the operation of motors, drives, sensors and the mechanical power train within the drive system.

Intellectual Skills

Having successfully completed the module, you will be able to:

B1.       Perform design calculations for drive and power converter applications, and understand the approximations used.  

B2.       Understand the advantages and disadvantages that different motors drives will bring to an application.

Subject Specific Skills 

Having successfully completed the module, you will be able to:

C1.      Investigate the characteristics and performance of a power converter or electric drive.

C2.      Analyse a specific application and produce the drive requirements that will result in the selection of sizing of a suitable drive system.

C3.      Demonstrate the basic skills required to operate a power converter and electric drive.  

Employability/Transferable/Key Skills

Having successfully completed the module, you will be able to:

D1.   Transfer understanding and theories from one discipline to another, in particular from the mechanical design to the electrical power and control domains.

D2.    Understand the wide range of issues that impact on the use of drive system in the industrial context, including safety, efficiency and costs (procurement, running and disposal)

Syllabus

The Drive Environment: Robotic and machine tool applications; introduction to position and speed control systems; dynamics and load characteristics; power transmission; Environmental factors; determination of speed and torque requirements; motion profiles; Installation considerations.

Devices: Review of diodes, thyristors, bipolar junction transistors, MOSFETs; IGBTs; basic characteristics of all devices; drive requirements; thermal management; protectio

Converters: Two and six pulse circuits; derivation of operating equations; overlap and its effect on output waveforms

Inverters: Three-phase inverters; dc link inverter; forced-commutation thyristor circuits

Specification of Drive Systems: Mechanical transmission elements; gears; leadscrews, belts etc.; sizing algorithms.

Position and Velocity Transducers: Specifications; analogue versus digital; review of available linear and rotary systems.

Servo Drive Systems: Consideration of specific drives and their operating characteristics including brushed d.c. series motor drives, brushless d.c. motor drives, and vector-controlled a.c. motor drives.

Controllers: Integration into the drive package; networking.

Power Supplies: Linear and switched mode power supplies; practical characteristics and analysis of step-up and step-down switched mode power supplies

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
LectureLectures48
Specialist Lab3

Assessment

Assessment methods

MethodHoursPercentage contribution
Design of a typical drive system-15%
Power electronic experiment-5%
Exam2 hours80%

Referral Method: By examination

Share this module FacebookTwitterWeibo

ELEC2206 Materials

Module Overview

To develop knowledge for materials at the extreme ends of the conductivity range, i.e. insulators and superconductors.

To develop knowledge of material response to electrical fields, i.e. polarisation and conduction in dielectrics.   

To introduce to the students magnetic materials, their processing techniques and applications.

Aims & Objectives

Aims

Knowledge and Understanding

Having successfully completed the module, you will be able to:

A1. Understand engineering aspects of these materials and the metallurgy involved in the production of special electrical materials.

A2. Explain material response to electric and magnetic fields.

A3. Appreciate applications and advantages of high temperature superconducting materials.

Intellectual Skills

Having successfully completed the module, you will be able to:

B1. Understand materials structure and properties   

B2. Select suitable materials for engineering applications

B3. Apply theories related to superconducting materials           

Subject Specific Skills 

Having successfully completed the module, you will be able to:

C1. Measure electrical properties of materials.

C2. Relate structure and composition to material magnetic properties.                    

Syllabus

•  Dielectric material (16)

o    Polarization mechanisms at the microscopic and macroscopic levels; frequency dependence of polarization; dipole moments; complex permittivity; Arrhenius equation; electronic polarization; Clausius-Mosotti relationship; Maxwell-Wagner interfacial polarisation; dipolar polairsation; Debye equations; Cole-Cole plot.

o    Electrical conduction mechanisms; charge injection mechanisms; space charge limited current; hopping conduction process

o     Electret materials, triboelectric series.

o    Piezo-electricity; ferro-electricity; pyro-electricity

•  High temperature superconductivity (4)

o    Historical development of superconducting materials

o    Engineering materials at low temperature; economic benefits; properties of HTc superconductors, Type I and Type II superconductors; Meissner effect, Critical current density; Cooper pairs, BSC theory.

•  Superconducting Applications (4)

o    Josephson junction and flux quantization

o    Principle of SQUID operation

o    Power apparatus; cables and current limiter; energy storage systems.

•  Metallurgy and magnetic materials (12)

o    Importance of phase constitution and crystal orientation in conducting and magnetic materials. Conducting alloy systems and structure;

o    Soft magnetic materials; iron-silicon alloys; recrystallisation, grain orientated material and properties; iron-nickel alloys, importance of ordering and magnetic annealing; soft ferrites and garnets; powder metallurgy and principles of sintering; magnetic properties, uses and economic factors of magnetic sheet steel.

o    Hard magnetic materials; alnico alloys, fine particle magnets; rare earth alloys; barium ferrites, production and uses; comparison of ferrites and alnico alloys.

o    Storage and recording

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
Lecture36
Tutorial12

Assessment

Assessment methods

MethodHoursPercentage contribution
Exam2 hours100%

Referral Method: By examination

Share this module FacebookTwitterWeibo

ELEC2205 Electronic Design

Module Overview

This module aims to introduce students to a range of electronic devices and from this to provide an opportunity for then to explore the design process, to make mistakes and learn from them in a benign environment.

Conventional laboratory experiments are useful mainly to assist understanding or analysis: because they are of necessity stereotyped; they are of limited usefulness when a circuit or system must be designed to meet a given specification.  The majority of engineering tasks fall into this latter category, and therefore require design or synthesis skills that are distinct from the understanding of underlying engineering principles.  This is additional to the analysis skills emphasized in the course so far.  This module includes design assignments that have been devised to provide a bridge between 'conventional' experiments and the project work in the third and fourth years, (which in turn provide a bridge to 'real' projects in industry).  The exercises have real deadlines and concrete deliverables and students are encouraged to be creative, develop imaginative solutions and to make mistakes.

All three assignments have a common format:

•  Customer orientated rather than proscriptive specifications are given

•  Design work carried out, bringing academic knowledge to bear on practical problems

•  Laboratory sessions are used for construction and verification of designs

•  Allow students to demonstrate their communication skills in writing individual and group reports.

The differences between the assignments are in:

•  Complexity

•  Size of team

•  Assessment credit

Aims & Objectives

Aims

Knowledge and Understanding

Having successfully completed the module, you will be able to:

A1. Demonstrate a knowledge and understanding of the principles of operation of a range of electronic devices.

A2. Demonstrate a knowledge and understanding of the problems associated with designing practical circuits and systems.

Intellectual Skills

Having successfully completed the module, you will be able to:

B1. Synthesise simple circuits and systems.

B2. Design simple digital IC’s

B.3 Appreciate the problems in dealing with uncertain and possibly ambiguous specifications.

Subject Specific Skills 

Having successfully completed the module, you will be able to:

C1. Demonstrate familiarity with the advanced use of function generators, oscilloscopes and complex devices such as logic analysers and spectrum analysers.

C2. Construct and test a range of circuits.

C3. Integrate and debug hardware and software systems. In particular appreciate the special problems that occur when both domains are combined,

C4. Understand and interpret technical literature and data sheets.

Employability/Transferable/Key Skills

Having successfully completed the module, you will be able to:

D1. Write formal reports in a clear, technical style.

D2. Address problems associated with personal and group time management in a problem solving environment.

D3. Demonstrate an awareness of team structure and dynamics, together with an appreciation of individual responsibilities working both as a pair and in a larger grouping.

Syllabus

•  Effective use of laboratory equipment: oscilloscopes, spectrum analysers, network analysers, sensitive meters and component testers, sources

•  Synthesis vs analysis

•  Effective use of design resources, Matlab, Spice, ModelSim etc.

•  Designs optimised to meet multiple criteria: phone antennae

•  Design of consumer devices: iStuff examples

•  EMC

•  Manufacturing techniques, RoHS, WEE

•  Commercial models, outsourcing, fabless design etc.

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
Specialist LabD2 Integrated circuit design exercise, D3 Analogue circuit design exercise and D4 System design exercise63
LectureSupporting lectures10

Assessment

Assessment methods

MethodHoursPercentage contribution
D2 Integrated circuit design exercise-30%
D3 Analogue circuit design exercise-20%
D4 System design exercise-50%

Referral Method: There is no referral opportunity for this syllabus in same academic year

Share this module FacebookTwitterWeibo

ELEC2204 Computer Engineering

Module Overview

This module looks at the how computer systems are designed and constructed, focussing on microcontrollers but also looking at how they fit into the context of other types of computer (e.g. DSP and desktop processor). It considers how data is processed and manipulated, communication via buses. It also looks at operating systems (including real-time systems), performance and benchmarking, and factors that affect the power consumption of systems. We also look at multicore and GPU processing, and development toolchains (how to get from C to optimised machine code).

Aims & Objectives

Aims

Knowledge and Understanding

Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:

  • Define and describe the component parts of computer systems
  • Describe the importance of the different design decisions made in processor and system design
  • Discuss the fundamental differences between types of embedded and desktop computer systems

Subject Specific Intellectual

Having successfully completed this module, you will be able to:

  • Relate an instruction set to a data-path design
  • Choose appropriate topologies and interfaces based on application requirements and system properties
  • Process high-level code into machine code, describe the optimisation process

Subject Specific Practical

Having successfully completed this module, you will be able to:

  • Build a simple embedded system and write software for it to demonstrate different input/output techniques
  • Measure the performance of simple systems in domain specific environments
  • Implement an operating system on an embedded device

Syllabus

  • Processor architectures
  • Embedded vs desktop systems; microcontroller vs microprocessor (vs  DSP)
  • Memory systems, cache, file systems
  • Interfacing and I/O
  • Computer arithmetic and ALUs
  • Operating systems (inc. real-time) vs freestanding C
  • Performance and benchmarking, power consumption, power modes
  • Multicore and GPUs
  • Development toolchains, compilation and optimisation

Learning & Teaching

Learning & teaching methods

There will be 36 hours of lectures, 2 x 3-hour labs, and a number of tutorial sessions (schedule to be advised).

ActivityDescriptionHours
Lecture36
Tutorial12
Specialist Lab6

Assessment

Assessment methods

MethodHoursPercentage contribution
2 x 3-hour labs-10%
Design task, approx 500 words-10%
In-class tests-5%
Exam2 hours75%

Referral Method: By examination

Share this module FacebookTwitterWeibo

COMP2213 Interaction Design

Module Overview

In recent years there has been an increasing recognition of the important role played by the human-computer interaction in the success of computer systems.

This course aims to gives students an understanding of how the study of human-computer interaction affects the design of interactive systems, hardware and software and improve students' awareness of the issues that determine the usability of an interactive computer system.

Aims & Objectives

Aims

Knowledge and Understanding

Having successfully completed the module, you will be able to demonstrate knowledge and understanding of:

A1.  How different disciplines (human factors, cognitive psychology, engineering, graphics design, etc.) influence the design of interactive systems

A2.  How users interact (dialogue) with system.

A3.  The classification of input/output devices and techniques

A4.  How to design, prototype and evaluate a user interface

Intellectual Skills

Having successfully completed the module, you will be able to:

B1.  Describe the main concepts (conceptual model, metaphors and paradigms) that influence human-computer interaction

B2.  Explain the main theories of cognition and how these are used when designing interactive systems

B3.  Classify the different input/output devises as to their effect on human-computer interaction.

B4.  Describe the process of designing for interaction and why a user centred approach is preferred.

Practical Skills

Having successfully completed the module, you will be able to:

C1.  Design a solution interacting with a computer system.

C2.  Choose appropriate methods of evaluating an interactive system.

C3.  Evaluate a design for interacting with a computer system.

Syllabus

  • User Psychology
  • Hardware (input/output) devices
  • Models and Metaphors
  • Interaction styles, Graphical User Interface (GUI) and windowing systems
  • Design methodology
  • Accessibility
  • Guidelines, standards and metrics
  • Evaluation
  • Advanced Interfaces

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
LectureLectures are used to present theoretical and practical aspects of developing interactive systems. During the lectures there may be quizzes and discussion with plenary feedback. Participation, while not compulsory, is encouraged. 22
TutorialTutorials will be used to work through examples illustrating the practical application of the techniques discussed in the lectures.10

Assessment

Assessment methods

MethodHoursPercentage contribution
Coursework-50%
Exam2 hours50%

Referral Method: By set coursework assignment(s)

Share this module FacebookTwitterWeibo

COMP2212 Programming Language Concepts

Module Overview

The aim of this module is to introduce students to the fundamental concepts underlying all programming languages, to introduce a broad range of programming language styles and features, and to provide the theoretical foundation that they will need in order to be able to make informed judgements about programming languages.

Aims & Objectives

Aims

  • Understand the main conceptual features of modern programming languages 
  • Understand common features of type systems and type discipline in various programming languages
  • Distinguish between families of languages (imperative, OO, functional, declarative) and within families (dynamically typed vs statically typed, call by name vs call by value, etc)
  • Use diverse programming language primitives for concurrency
  • Understand diverse approaches to formal semantics of programming languages

Syllabus

  • Compiled vs. interpreted languages  
  • Imperative, functional and declarative languages
  • Scope and binding
  • Type systems 
  • Type inference
  • Reasoning about programs
  • Contextual equivalence
  • Programming language semantics: operational, denotational and axiomatic semantics
  • Threading and thread safety 
  • Reasoning about concurrent programs
  • Concurrency primitives in modern programming languages

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
Lecture36
Tutorial12

Assessment

Assessment methods

MethodHoursPercentage contribution
Coursework-25%
Exam2 hours75%

Referral Method: By examination

Share this module FacebookTwitterWeibo

COMP2211 Software Engineering Group Project

Module Overview

This module aims to give students experience of working in a team, and of the problems of communication and scale in software engineering. It will consolidate and integrate the techniques and concepts introduced in earlier modules and demonstrate the need for a professional approach to all aspects of software development. Students will adopt an agile methodology, which puts the user at the heart of building, refining and delivering their software system.

Aims & Objectives

Aims

Knowledge and Understanding

Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:

  • The professional development of a prototype software system from defined requirements
  • The selection and use of appropriate programing languages and software development tools for a software project
  • Planning and execution of a professional software test strategy
  • Realistic estimates of the cost in time and effort required for a large software project
  • Teamwork and time management

Subject Specific Intellectual

Having successfully completed this module, you will be able to:

  • Anticipate and apply strategies to cope with the difficulties of professional software development
  • Critically evaluate the use of software tools in all phases of a software development
  • Anticipate and apply strategies to cope with the interdependence and conflict inherent in a group project

Transferable and Generic

Having successfully completed this module, you will be able to:

  • Handle some of the conflict inherent in a group project
  • Make critical judgements of your own and other people's work
  • Take responsibility for scheduling and running group meetings

Subject Specific Practical

Having successfully completed this module, you will be able to:

  • Develop, deliver and test a significant prototype software system
  • "Pick up" and use new software tools and environments without formal training

Syllabus

There is a little formal teaching on the unit. Students will exercise and develop skills in the following areas:

  • software production methodology, design, implementation and testing
  • the value and limitations of software tools in all phases of software development
  • teamwork and time management
  • ability to "pick up" and use new tools and environments without formal training
  • planning and execution of a professional software test strategy
  • realistic estimates of the cost in time and effort required for a large project
  • responsibility for scheduling and running group meetings

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
Lecture36
Tutorial12

Assessment

Assessment methods

MethodHoursPercentage contribution
Group Project-100%

Referral Method: By examination

Share this module FacebookTwitterWeibo

COMP2210 Theory of Computing

Module Overview

This module aims to provide a broad and stimulating introduction to the theory of computing.

Aims & Objectives

Aims

Aim

Having successfully completed this module, you will be able to:

  • Ascertain and prove whether or not a given language is regular
  • Ascertain and prove whether or not a given language is context-free
  • Use the reduction technique to show that a problem is undecidable
  • Analyse the complexity of a given algorithm or problem
  • Use polynomial-time reduction to reason about the complexity class of a problem

Syllabus

  • Automata theory
    • Finite state automata, regular expressions and regular languages
    • The pumping lemma for regular languages
    • Closure properties of regular languages
    • The Myhill-Nerode theorem
    • Context-free grammars and pushdown automata
    • Closure properties of context-free languages
    • The pumping lemma for context-free languages
  • Computability theory
    • Turing machines, recursively enumerable and recursive languages
    • Church-Turing thesis
    • Limitations of algorithms: universality, the halting problem and undecidability
  • Computational complexity theory
    • Complexity of algorithms and of problems
    • Complexity classes P, NP, PSPACE
    • Polynomial-time reduction
    • NP-Completeness and Cook's theorem
    • PSPACE-Completeness

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
Lecture36
Tutorial12

Assessment

Assessment methods

MethodHoursPercentage contribution
In-class tests -70%
Exam1 hour30%

Referral Method: By examination

Share this module FacebookTwitterWeibo

Pages