Module Description
The aim of this module is to cover fundamental mathematics for Computer Scientists. It does not assume A-level mathematics, and the emphasis and delivery will be on understanding the key concepts as they apply to Computer Science.
Additional support is provided by the Talent Development Centre. Participants not having AS or A level mathematics should take a diagnostic test to see whether they would benefit from this extra support.
Learning Outcomes
After completing this module, students will be expected to be able to:
1. Apply propositional logic to simple problems
2. Use counting methods including permutations and combinations
3. Apply the basic notions of sets, and illustrate answers through Venn diagrams
4. Use methods of probability on simple problems
5. Solve problems in linear algebra using vectors and matrices
Outline Syllabus
Propositional Logic:
Propositions and logical operators. Truth tables. De Morgan's laws. Algebraic rules and inference. Logical identities, Tautologies and Contraditions
Combinatorics:
Fundamental Principle of Counting. Ordered and unordered selections. Selections with and without replacement. Permutations and combinations. Counting methods.
Sets:
Set notation and basic concepts. Definition of sets through propositions. Set intersection, union and complementation. Venn diagrams. Cardinality. Cartesian products. Sample spaces and events.
Probability:
Experiments and outcomes. Sample space, events, relative frequency and probability. Mutual exclusivity and independence. Counting methods. Conditional probability. Mean and variance. The binomial distribution.
Vectors and Matrices:
Basic definitions. Addition and multiplication of matrices, multiplication by scalars. Inversion of 2x2 matrices. Applications. Transformations of the plane. Solving simultaneous equations in two unknowns.
Introduction to Programming in C.
Module Description
Learning Outcomes
Outline Syllabus
- Underlying principles of procedural programming
- The imperative programming model; state, sequentiality and destructive assignment.
- Abstraction: separating internal and external views; control, data and procedural abstraction.
- A model of memory: variables; static and dynamic memory; the execution stack
- Programming in a high-level procedural language
- Identifiers and keywords
- Expressions and types: well-typed expressions; operator precedence and expression evaluation
- Statements and control flow: simple, compound and control statements; the assignment statement; selection and repetition
- Functions: definition, and call; local variables, scope and existence; parameters, formal and actual parameters, parameter passing
- Lists and dictionaries: declaration and initialisation; accessing elements
- Input and output: console and file I/O
Learning & Teaching Methods
Assessment
This course is 50% Exam and 50% Coursework
Module Description
The module will provide an introduction to the fundamentals of object-oriented programming using Java. Students will analyse, write and explain Java programs using a range of control structures. They will define classes and use objects of those classes. Students will study inheritance and polymorphism and perform file-based I/O, event handling and some simple graphical components.
Aims
The aim of this module is to provide an introduction to the fundamentals of object-oriented programming using Java.
Learning Outcomes
After successfully completing this module, students will be able to:
1. Analyse, write and explain Java programs that utilise primitive and reference types and make use of a range of control structures including iteration, recursion and exception handling.
2. Analyse, write and explain programs that define classes and use objects of those classes.
3. Analyse, write and explain programs that utilise inheritance and polymorphism.
4. Analyse, write and explain programs that use parts of a platform API to perform file-based I/O, event handling and display of simple graphical components.
Syllabus
- Introduction to Object-Oriented Programming
- Primitive and reference types (Classes, Objects and Arrays)
- Inheritance and Polymorphism
- Flow of Control (iteration, try-catch blocks, recursion)
- File I/O
- Event Handling and Graphical Components
- Dealing with Collections of Objects (Lists and Maps)
- Miscellaneous
Module Description
The module will provide an introduction to data modelling and the design and implementation of relational databases, exemplified using SQL. Students will prepare a relational schema from a conceptual model using the entity-relationship model. They will understand the notions of relation, key and normal forms in database design. Students will demonstrate data definition in SQL and retrieve information using SQL SELECT, leading to a relational database management system to build a database.Learning Outcomes
1. Prepare a relational schema from a conceptual model developed using the entity-relationship model.
2. Employ the notions of relation, key and normal forms in a relational database design.
3. Create a relational database schema in SQL that incorporates key, entity integrity, and referential integrity constraints.
4. Demonstrate data definition in SQL and retrieve information from a database using the SQL SELECT statement.
5. Use a relational database management system to build a database.
Outline Syllabus
Underlying principles- The relational model of databases
Fundamentals of Relational Database Systems
- entity-relationship modelling
- mapping conceptual schema to a relational model
- relational algebra: operations developed for relational databases
Relational Database Design
- functional dependency
- normal forms and normalisation
Structured Query Language
- data definition
- keys
- entity integrity constraints and referential integrity constraints
- query formulation
The aim of this module is to provide students with an introduction to the principles and technology that underlie internet applications and the techniques used in the design and construction of web sites.
Learning Outcomes
1. Design and construct interactive Web pages using HTML, CSS and JavaScript.
2. Address usability and accessibility issues in relation to web site design.
3. Describe the characteristics of protocols such as HTTP.
4. Describe internet security issues and current solutions.
Syllabus
The World-Wide Web
The Internet, Browsers, Web servers and the HTTP protocol
-Creating Web Pages and Websites
XHTML, HTML5 and CSS
Client-side scripting with JavaScript
Incorporating usability and accessibility principles in web site design
-Security and Encryption
Symmetric and asymmetric key algorithms
Module Description
This module introduces the four layers of the TCP/IP internetworking module which includes applications, transport protocols, internetworking protocols and network access. Laboratory sessions will give extensive experience working with each of these layers and configuring network devices. The module will use the Cisco CCNA exploration Network Fundamentals course which is the first of four Cisco courses that can be used to obtain a Cisco CCNA qualification.Learning Outcomes
After completing this module, students will be expected to be able to:1. Configure network devices with appropriate settings
2. Design IP sub-networks
3. Propose, and describe, suitable protocols for use with networked applications.
4. Explain the principles of Ethernet and IP networking
Outline Syllabus
- Client/server communication and intermediary network devices
- The OSI and TCP/IP networking models
- Application layer functionality and protocols
- OSI transport layer
- OSI network layer
- IPv4 addressing
- OSI data link layer
- OSI physical layer
- Ethernet
- Planning and cabling networks
- Configuring and testing a network