My college course was only a few hours per week with several VERY basic classes (but also a few very good ones that gave me a bit of xp eg in php and oop).
Now I am jumping directly into this 3rd year of degree course, not only that but many 3rd yr students would be coming back from an industry placement year so presumably will be pretty advanced.
On the other hand I don't think this university has a particular great reputation for software engineering courses (at least compared to american universities where it sounds like you are crazy good). I think it ranks like 70 out of 100 in england. i think some of the optional modules might be extremely easy and our college class (of 4 people...) had a letter from a former student advising to pick X units because "no one got less than X mark" and that other units "no one got a decent mark" etc...
I'm mentioning this because it brings up the (probably) ever popular question "Do i just want to pick easy units, do my own shit in my own time, and come out with an easy 1st class degree?" or "Do i want difficult but potentially more interesting units"?
I need to pick TWO optional options by end of next week.
Obviously most things listed in them make 0 sense and I'll have to look everything up 1 by 1 to see what they're all talking about.....
Additionally several units have recommendations such as "you should have done our math unit in year 2 if you want to choose this unit". (My math is LITERALLY nonexistant as it stands)
Personally I think we can get a decent judge of some of these units by looking at the marking criteria i.e. do they want coursework or exam? is the coursework practical work or writing a ton of bullshit about application development methodology? you see what i mean?
At a first glance I personally feel interested in...(SEE BELOW POST WHERE I POST MORE)
The REQUIRED modules are:
ADVANCED SOFTWARE ENGINEERING
+ Show Spoiler +
The aim of the unit is to build on students existing knowledge by covering advanced aspects of Software Engineering, including management of large software projects, capability maturity models, applying cost and effort estimation models, software quality control and assurance, OO software design and design patterns and mapping design with code. Students are encouraged to reflect on their experiences of software development, both academically and, where appropriate, professionally.
Syllabus Outline
1 Managing Software Development. People Management, Team Organization and coordination mechanisms
2 Object Oriented SE, modeling with UML. Software engineering design patterns.
3 Management of Large Software Projects. Project Organization and Communication
4 Management of Large Software Projects. Project Manager¿s concepts and activities. Controlling the financial status of a project. Risk management
5 Standards for developing Software life cycle processes
6 Capability Maturity Models - structure and key process areas and practices
7 Software effort and cost estimation models. Software size metrics. Applying COCOMO and COCOMO II models, economies and diseconomies of scale.
8 Software quality control and models. Types of Software metrics.
9 OO Software Development ¿ mapping models with code.
10 Software engineering issues in Real-time and Security-critical systems.
Formative assessment will be provided in practicals and the courseworks will assess all the learning outcomes.
The strategy is based upon the notion of a student's embedding the knowledge and understanding attained during the unit delivery.
1. Coursework 40%. Individual presentation critically reviewing Advanced Software Engineering issues in an application domain. This is designed to cover all learning outcomes for a sample domain. About 15 mins duration with 10 mins Q&A
2. Examination 60%. Closed-book, of 2 hours duration. The examination is designed to cover all learning outcomes.
RELIABLE AND SECURE SYSTEMS
+ Show Spoiler +
Students on this unit will study processes and techniques to support the development of systems that have exceptionally high reliability and/or security requirements (e.g. safety critical systems). Formal specification is used to specify and verify security protocols.
Syllabus Outline
1 Introduction to security properties
2 Authentication
3 Authorisation
4 Access control models
5 Security Policies & XACML
6 Network Security
7 Threat analysis
8 Formal data modelling and operation specification
9 Using proof for validation
10 Tool support for formal specification
Formative assessment will be provided in practicals and the courseworks will assess all the learning outcomes.
1 Coursework 50%. Individual portfolio of tasks assessing learning outcomes 1 and 2.
2 Coursework 50%. An individual coursework assessing learning outcomes 3 and 4.
The OPTIONAL modules (i must have 2) are:
APPLIED COMPUTER GRAPHICS AND VISION
+ Show Spoiler +
This unit introduces the emerging technology of 3D computer graphics for embedded and web-based applications and lays down the foundations for advanced graphics approaches and applications. The emergence of 3D graphics APIs for web- and mobile device-based applications and their implementations in the latest browser technology (Mozilla Firefox, Apple Safari and Google Chrome) make it possible to author, distribute and browse 3D web content without using special 3D graphics tools and plug-ins. Meanwhile, the advances in hardware and computer vision technologies have made it feasible for graphics developers to practice the more advanced techniques such as 3D scenes reconstruction, image-based modelling and rendering, motion capture and analysis, and augmented reality. In line with these developments, the unit will studies the principles and techniques 3D graphics and their implementations in the latest API technology (WebGL) and introduces the essential computer vision techniques for implementing specialised graphics and vision approaches using image processing and vision packages (Matlab Image Processing and Vision Toolboxes).
Syllabus Outline
1 Graphics pipeline, scene structure analysis and WebGL programming.
2 3D drawing, geometric primitives, polygon and polygon strips, drawing functions in WebGL API
3 Shading and rendering: Phong lighting model, interpolation shading, vertex and fragment shaders
4 Scenes animation, event handling and user interaction
5 Transparency and blending, performance optimizations
6 Image representation and operations: image formats, filtering, and morphing
7 Feature extraction: thresholding, edge detection, line and other geometric shape detection methods, Hough transform
8 Image-based modelling: multiple view geometry, stereopsis, structure-from-X
9 Motion and tracking: motion from image sequence, image flow, object tracking
10 Topics of application and research.
The understanding of the basic concepts, theories and the principles underlying various methods and techniques is gained through lectures and will be assessed by a closed book exam. The practical skills attained through the practical sessions will be assessed by a coursework.
1 Examination. 1.5-hour duration in closed book form. Assesses learning outcome 1 and 2.
2 Coursework. An individual project (2500 words, equivalent) in which the students will apply their knowledge and practical skills to solve real-world problems. This activity will be unsupervised and assessed by the tutor and covers learning outcomes 3 and 4.
DATA WAREHOUSING AND MINING
+ Show Spoiler +
The unit will teach the students how to effectively use databases for decision support. The unit has two main components. First, the students will learn how to design a data warehouse. This will provide hands-on experience on modelling and implementing a data warehouse. Second, the students will learn data mining techniques; how they work and how to use them. Also the students will have hands-on experience using data mining toolkits, including how to visualise and interpret the results.
Syllabus Outline
1 Introduction to data warehouses and star schema
2 Data warehouse modelling and implementation
3 Extraction, transformation and loading
4 Data mining concepts and related areas
5 Data classification techniques
6 Data clustering techniques
7 Association rule mining
8 Time series analysis
9 Mining data streams
10 Emerging topics in data mining
The students will be given a structured coursework that will be delivered at different stages over the course. This will include presentations of their work in weeks 11 and 12 to give the students the necessary feedback for improvement and greater understanding. The students will be delivering practical outcomes as well as literature review of emerging topics in data mining and warehousing. It is expected that students will make final presentations in weeks 23 and 24 of the teaching period. In the practical part of the assessment, students will demonstrate their ability of designing and implementing a data warehouse using MySQL, and their ability of using data mining techniques and interpreting their results. Detailed report of the practical outcome will be delivered with an artefact. The literature review will be guided by some seminal papers in recent/emerging topics in the area. Students will be expected to do a search and write a 2,000 words literature review. Overall word limit for the coursework is 4000 wds max.
DISTRIBUTED AND MOBILE SYSTEMS
+ Show Spoiler +
Investigate the components that make up a distributed computing environment. In this unit we examine the fundamental design issues required by distributed systems. In particular we investigate those current and emerging hardware and software technologies that are used to support a range of distributed applications. The unit also includes a number of case studies where existing and emerging technologies are examined.
Syllabus Outline
1 Examination of current mobile technologies and development of applications
2 Mobile Web Development: Mobile Markups and Scripting Language (HTML5, CSS3, JavaScript) and APIs (Geolocation and Map), Distribution and Mobile Web 2.0 Applications
3 Native Mobile Application Development using Open source frameworks collective communication, data parallel programming, one-sided communication.
4 Analysis the Ethical and social applications within mobile systems
5 Design goals, issues and characterisation of distributed systems
6 The technological components that make up a distributed environment, including: communication protocols; Naming services; concurrency and consistency; Distributed file systems and caching; Security and authorisation; Time services; Resource management and scheduling; Distributed shared memory
7 General issues: Evolutionary trends in hardware operating systems, tools, programming languages and applications; Current research - reliability, portability, formal validity, security trade-offs, communications models, expressing parallelism, distribution and openness
For coursework 2 (50%) students will build a mobile application and include supporting documentation (50%) which demonstrates their learning of mobile systems development with an equivalence of 1500 words; this will assess learning outcomes 1, and 2. Formative feedback will be provided throughout the practical sessions where students will also gain development experience in the mobile domain.
To allow students to demonstrate the knowledge gained through research and practice on case studies of distributed systems, coursework 1 (50%), which will be an individual report covering learning outcomes 3 and 4. The aim of this will be to encourage students to research and utilize problem solving skills within the area of distributed systems. The research report will be developed with accompanying supporting seminars. Formative feedback will be provided via a preliminary abstract submission together with continuous feedback during seminar activities.
DISTRIBUTED SYSTEMS AND PARALLEL PROGRAMMING
+ Show Spoiler +
Investigate the components that make up a distributed computing environment. In this unit we examine the fundamental design issues required by distributed systems. In particular we investigate those current and emerging hardware and software technologies that are used to support a range of distributed applications. The unit also includes a number of case studies where existing and emerging technologies are examined.
1 Parallel computer architectures - context, the emerging dominance of multicore processors, SIMD/MIMD etc, symmetric multiprocessors and cache coherency, "cluster" architectures and high-performance interconnects, GPUs.
2 Programming and performance models for parallel computing - task-parallel, divide and conquer, data parallel, SPMD, NUMA and NUMA languages, PRAMs and BSP (possibly), cost models, benchmarking protocols.
3 Parallel programming environments - shared memory programming and threads, OpenMP, MPI programming, collective communication, data parallel programming, one-sided communication.
4 Parallel algorithms and applications - may include relaxation/multigrid, dense matrix arithmetic, FFT, sorting, data compression, and full-scale applications like gravitational solvers and FEM codes.
5 Special topics in parallel programming - may include transactional memory, Fortress, Cilk, Threaded Building Blocks, Data Parallel Haskell, or others.
6 Design goals, issues and characterisation of distributed systems
7 The technological components that make up a distributed environment, including: communication protocols; Naming services; concurrency and consistency; Distributed file systems and caching; Security and authorisation; Time services; Resource management and scheduling; Distributed shared memory.
8 General issues: Evolutionary trends in hardware operating systems, tools, programming languages and applications; Current research - reliability, portability, formal validity, security trade-offs, communications models, expressing parallelism, distribution and openness
9 Case studies: which may include Cluster computing; Web services; Java technologies such as Jini and the Grid
Students will build up a lab book (50%) which demonstrates their learning of parallel programming, this will assess learning outcomes 1, 2 and 3. To allow students to demonstrate the knowledge gained through research and practice on case studies of distributed systems, a coursework (50%), which will be an individual report covering learning outcomes 4 and 5, is undertaken. The aim of this will be to encourage students to research and utilize problem solving skills within the area of distributed systems.
FUZZY LOGIC - THEORY AND APPLICATIONS
+ Show Spoiler +
This unit introduces the theoretical aspects of fuzzy logic and its applications in fuzzy rule based systems and networks.
Syllabus Outline
1 Sets and relations for fuzzy rule based systems.
2 Fuzzification, inference and defuzzification in fuzzy rule based systems.
3 Mamdani, Sugeno and Tsukamoto fuzzy rule based systems.
4 Modelling, simulation and control of fuzzy rule based systems.
5 Formal models for fuzzy rule based networks.
6 Basic and advanced operations in fuzzy rule based networks.
7 Feedforward and feedback fuzzy rule based networks.
8 Performance evaluation of fuzzy rule based networks.
Students sit an individual exam with several compulsory sections of questions. This activity will be of 1.5 hours duration, in closed-book format, supervised and marked by the unit lecturer. It will assess learning outcomes 1-2.
Students also write individual coursework in the form of a research paper. This activity will be of 6 weeks duration, in open-book format, supervised and marked by the unit lecturer. It will assess learning outcome 3 and be equivalent to a maximum of 2,500 words.
NEURAL NETWORKS AND GENETIC ALORGITHMS
+ Show Spoiler +
By studying this unit, students will gain an understanding of two of the principal components of 'soft' artificial intelligence, namely Artificial Neural Networks (NN) and Genetic Algorithms (GA). NN attempt to capture the essential processing mechanism, which underlies the human brain, by manipulating a network of interconnected nodes, each with fairly simple processing capabilities. ANN have been used successfully for many applications, varying from medical diagnosis to speech recognition, and from robotics and machine vision to banking and manufacturing. The nature-inspired GA use the principle of natural selection to 'evolve' artificially a population of candidate solutions through simulated reproduction. GA have been used successfully for engineering optimisation tasks (e.g. Satellite structure design for NASA), game playing, solving combinatorial optimisation problems as scheduling and transportation, adaptive control and others. This unit will provide students with an appreciation of theoretical issues and practical applications of variety of ANN architectures and learning methodologies, including basic back-propagation, self-organising maps and radial basis function networks, and knowledge of the GA, including data representation, genetic operators and properties of GA. It will also discuss different selection strategies, such as, fitness proportional selection, elitism, rank and tournament based selection. Both GA and ANN will be studied with practical laboratory sessions. MATLAB NN and GA Toolboxes will be used for the design, training and simulation of the ANN, and for the representation, coding and simulation of GA.
1 Introduction to AI. Search Methods;
2 ANN. Single-Layer Perceptions. ADALINE. Perception Learning;
3 Multi-Layer Feed Forward NN;
4 Supervised Learning and Backpropagation;
5 Unsupervised and Competitive Learning (ART NN). Kohonen's Self Organising Maps (SOM);
6 Intro to Genetic Algorithms. Representation. GA Terminology and Operators (crossover, mutation, inversion);
7 Basic theory of GA, Schema properties. Implicit Parallelism;
8 Selection, Replacement and Reproduction Strategies ('roulette wheel', elitism, rang and tournament based selection);
9 Premature convergence. Coding and Scaling;
10 GA - advantages, disadvantages and applications. Evolving NN with GA.
The strategy will ensure that students can demonstrate an understanding of the theoretical concepts. This will be achieved by confronting students with a set of reflective questions within a given scenario allowing them to explore, critically analyse, discuss, resolve and demonstrate the ability to apply learned methodologies and techniques for
solving practical problems and this offers ample opportunity for formative feedback.
1 Examination 60%. Two hour, closed book exam covering topics 1-10 and assessing Learning Outcomes 1 and 2.
2 Coursework 40%. Will include designing, training, critical evaluation and implement of ANN for solving classification/recognition problem (using MATLAB NN Toolbox and UCI repository datasets), and analysis, design, and implementation of GA for solving optimisation problem (using MATLAB GA Toolbox) and assessing Learning outcomes 3 and 4, equivalent to 2,000 words.
PROFESSIONAL AND ACADEMIC RESEARCH DEVELOPMENT
+ Show Spoiler +
The unit encompasses professional and academic research development so as to equip students with the necessary skills to successfully undertake the development of computer based projects both in an academic and professional environment.
Syllabus Outline
1 Define and differentiate various research and study approaches relevant to computer-based research and development.
2 Research project planning management and study - incorporating management and prioritisation, and data collection management.
3 Identify and evaluate issues of research design, sampling, data collection, reliability and validity, and ethics in research work.
4 Investigate professional bodies and standards within the computing discipline.
5 Analyse theories and models for professional development.
6 Comparisons of educational and professional practices in the UK and elsewhere.
The assessment strategy is to develop a portfolio evidencing professional, ethical and academic research skill and fulfilling all learning outcomes. . In doing so the students will produce 3 artefacts during the unit evidencing the learning outcomes. In semester 1, students will focus on academic research skills. In semester 2, the focus will be on professional bodies and ethics. During the consolidation period, the emphasis will be on employability. Formative assessment will encompass in-class exercises throughout the year.
Second Attempt Assessment: Portfolio
WEB RESEARCH
+ Show Spoiler +
Internet-scale computing is constantly evolving. The web started as a collection of static hyperlinked documents in a client/server architecture. It has expanded and diversified to a point where varied devices may produce and consume content as peers, on behalf of their users. This evolution is provoking a shift in the design of all applications, data and user interfaces. This unit enables students to acquire application development skills for this dynamic web using the ubiquitous approach of standards-based web development, data design and storage. Out of necessity the unit will track the research interests of its lecturers and therefore cover emerging technologies and draft standards in order to introduce the volatile nature of the subject matter and prepare students for evaluating such technologies in future academic or professional roles.
1 An overview of the capabilities of mobile and embeddable technologies, including smart phones, PDAs, and other devices
2 Technical and usability considerations of mobile technologies and applications.
3 Using and evaluating browsers and SDKs for development of mobile applications.
4 The modelling and use of structured and semantic data, including ontology design (e.g. RDF, OWL)
5 Tools & techniques for managing, transforming and analysing large scale data sets on the Internet (e.g. MapReduce)
6 Client and server methods for communicating and managing data (e.g. XMLHttpRequest, WebSockets)
Coursework (100%) Individual assessment. Students are given the opportunity to demonstrate their understanding of the material delivered by designing and implementing a portfolio of solutions to a range of programming problems, equivalent to 3000 words. Tutor marked. This will assess all learning outcomes.