All these information are from college homepage.

## Discrete Mathematics and Probability (INFR08031)

KEYWORDS:

1. SEM1
2. fundamental topics in discrete mathematics
3. Mathematical Reasoning
4. presents standard mathematical reasoning and proof techniques such as proof by induction.
• THIS HAS ALREADY BEEN TAUGHT IN PPS
5. discrete and continuous probability theory
6. Feedback is given weekly in tutorials, when students can discuss their solutions to homework questions.
7. EXAM HOUR: 2h
8. READING LIST: Discrete Mathematics and its Applications by Kenneth Rosen
9. Relations,Functions,Set Theory,Discrete and Continuous Probability,Conditional Probabilities,Proof

## Informatics 2C - Introduction to Computer Systems (INFR08027)

KEYWORDS:

1. SEM1
2. design, implementation and engineering of digital computer systems
3. a brief introduction to the C programming language
4. Coursework 100 %
5. READING LIST: D.A. Patterson and J.L. Hennessy, Computer Organisation and Design: The Hardware/Software Interface, 4th or 5th Edition, Morgan Kaufmann.
6. READING LIST: A. Silbershatz and P.B. Galvin, Operating Systems Concepts, 5/e, Wiley, 1998.
7. READING LIST: B.W. Kernighan and D.M. Ritchie, The C Programming Language, 2/e, Prentice Hall PTR, 1998.
8. Binary number system,instruction set architecture,computer organisation

On completion of this course, the student will be able to:
Describe the trade-offs in different binary representation systems.
Explain the principles of: instruction set architecture, digital logic design, cache hierarchy, virtual memory, I/O devices, exceptions and processor management.
Demonstrate an understanding of how a high-level programming language (C) maps to the assembly code by converting a simple C program to MIPS assembly.
Sketch the design of a simple single- and multi-cycle processor and explain how it operates by combining the knowledge of the logic design basics with that of the MIPS instruction set architecture.

## Informatics 2 - Foundations of Data Science (INFR08030)

KEYWORDS:

1. FULL YEAR
2. a core set of knowledge, skills, and ways of thinking that are needed for data science
3. It brings together several strands: mathematical and computational techniques from statistics and machine learning; practical work with toolchains for data wrangling, analysis, and presentation; critical thinking and writing skills needed to evaluate and present claims; and case studies prompting discussion of the real world implications of data science.
4. complete a data science mini-project
5. Python-based ecosystem
6. EXAM HOUR: 2h
7. Latex
8. data science,statistics,machine learning

A. Implications:

• Where does data come from? (Sample bias, data licensing and privacy issues)
• Visualization: misleading plots, accessible design
• Machine learning: algorithmic bias and discrimination

B. Thinking, working, and writing:

• Claims and evidence: what can we conclude; analysis of errors
• Reproducibility; programming “notebooks” vs modular code
• Scientific communication; structure of a lab report
• Reading and critique of data science articles

## Informatics 2 - Introduction to Algorithms and Data Structures (INFR08026)

KEYWORDS:

1. FULL YEAR
2. a toolbox of standard algorithms and data structures
3. analyze both the theoretical complexity of algorithms and their practical behaviour
4. including differences between theoretical and empirical analysis
5. knowledge and choice of existing algorithms and data structures, theoretical analysis, algorithmic strategies, and applications
6. Throughout, different specific algorithms and algorithmic strategies (such as divide-and-conquer, greedy, recursive backtracking, dynamic programming) will be introduced using real-world examples.
7. A previous course in discrete mathematics is strongly recommended.
8. Oral feedback during tutorial and lab sessions. Written feedback on a formative assignment prior to summative practical assessment.
9. EXAM HOUR: 2h
10. Algorithms, Data Structures
11. READING LIST: Introduction to Algorithms, by Cormen, Leiserson, Rivest, Shamir.

The following is an indicative list of topics covered:

• Asymptotic notation and algorithmic analysis
• Sequential data structures (lists, stacks, queues)
• Basic and more advanced sorting algorithms
• Tree data structures, heaps and priority queues
• Hashing and dictionaries
• Graphs and graph algorithms
• Dynamic programming
• The classes P and NP

## Informatics 2 - Software Engineering and Professional Practice (INFR08032)

KEYWORDS:

1. SEM2
2. practice of small team software development
3. experience developing a software system from scratch
4. analyzing requirements, designing and implementing new features, testing, version control
5. guest lectures and some practical work
6. team up in groups of two, go ‘solo‘ also accepted
7. UML diagrams
8. Java
9. iterative waterfall process
10. There is room for interpretation, creativity, and some of the requirements change along the way.
11. professional issues surrounding the problem
12. use of industry standard tools for software development, such as integrated development environments, version control, issue tracking
13. key elements of modern development practice, such as code review, peer review, and pair programming.
14. the legal, ethical and social context in which software and its authors exist
15. Guest lecturers will speak on technical topics, but also on topics such as privacy, security, equality, democracy and intellectual property - some of which will have a direct impact on students’ practical work.
16. The assignment will consist of 3 parts, with the first two being iterated over after receiving formative feedback, and the requirement to maintain the whole solution consistent.
17. The assignment is based on the use of Software Engineering techniques (e.g. UML diagrams) and tools (e.g. version control), programming, reflective writing.
18. Formative feedback will also be provided during drop-in lab sessions scheduled irregularly and more frequently as assignment deadlines are approaching, and during fortnightly tutorials.
19. For the third assignment, extra support in terms of a bookable 30-minute private meeting with a demonstrator will be made available.
20. EXAM HOUR: 2h
21. Comfortably read and write technical documentation.
22. READING LIST: Sommerville ‘Engineering Software Products’
23. software engineering,professional practice,ethics

## Informatics 2D - Reasoning and Agents (INFR08010)

KEYWORDS:

1. SEM2
2. This course focuses on approaches relating to representation, reasoning and planning for solving real world inference.
3. Relevant QAA Computing Curriculum Sections: Artificial Intelligence
4. READING LIST: Russell, S. & Norvig, P., “AI: A Modern Approach“, Prentice Hall or Pearson, 2003. 2nd Edition. Thompson, S., “Haskell: The Craft of Functional Programming“, Addison Wesley, 1999.

KEYWORDS:

1. SEM2