School of Electronic Engineering and Computer Science

Mr Iftikhar Afridi


Room Number: Engineering, Eng 153


Communications and Networks (Undergraduate)

This compulsory module covers the basic concepts in communications and networks. It introduces the concept of a communications system and then focusses on specific elements. It covers circuit and switched versus packet switched networks, and the ISO/OSI 7 layer model. Also covered are certain critical network protocols, e.g. TCP/IP and CSMA/CD, key Internet concepts, converged networks, and mobile networks.

Computer Programming (Postgraduate)

This module provides an introduction to the principles of programming in the context of designing and constructing complete programs. Programming techniques will be introduced and practical work will form an integral part of the course and of the assessment of students. The first half of the course will concentrate on program structures. The second half will cover representation of abstract types such as lists and trees using the types such as records and arrays provided in imperative programming languages.

Database Systems (Undergraduate)

This module is an introduction to databases and their language systems in theory and practice. The main topics covered by the module are: the principles and components of database management systems; the main modelling techniques used in the construction of database systems; implementation of databases using an object-relational database management system; the main relational database language; Object-Oriented database systems; future trends, in particular information retrieval, data warehouses and data mining.There are two timetabled lectures a week, and one-hour tutorial per week (though not every week). There will be timetabled laboratory sessions (two hours a week) for approximately five weeks.

Object-Oriented Programming (Undergraduate)

Major topics include the concepts of class, object, method, subclass, inheritance and their use in programming. The relevance of the object oriented style with respect to concrete software problems will be stressed both in lectures and labs. There will be two hours of lectures per week, and each student will have a weekly timetabled lab session. In addition, you will be expected to spend further time outside scheduled lab periods in the lab (or at home machines if they are available), and to read textbooks and review notes.

Software Engineering (Undergraduate)

Software Engineering is concerned with applying engineering principles to the production of software. This module provides the management principles, theoretical foundations, tools, notation and background necessary to develop and test large-scale software systems. The practical part of the module consists of lab assignments in which students use a range of relevant tools (a Java programming IDE, unit testing tool, configuration management tool, UML design tool, and project planning tool). Aims To ensure students have the necessary understanding of the principles and tools needed to build and test large-scale software systems. In particular, it provides the necessary background for students to undertake a significant group project assignment in subsequent modules or employment.

Software Engineering Project (Undergraduate)

Students in pre-assigned groups of approximately six will be presented with a significant software problem to solve. To meet the problem requirements and build a satisfactory system within the time constraints the students will have to apply the principles learnt in the Software Engineering module and will have to work effectively as a team. Each team must choose a project manager and assign appropriate roles to each member.