All these information are from college homepage.

## Discrete Mathematics and Probability (INFR08031)

KEYWORDS:

- SEM1
**fundamental topics**in discrete mathematics*Mathematical Reasoning**presents standard mathematical reasoning and proof techniques such as proof by induction.*- THIS HAS ALREADY BEEN TAUGHT IN PPS

**discrete**and**continuous**probability theory- Feedback is given
**weekly**in tutorials, when students can discuss their solutions to**homework questions**. - EXAM HOUR:
**2h** - READING LIST:
**Discrete Mathematics and its Applications by Kenneth Rosen** - Relations,Functions,Set Theory,Discrete and Continuous Probability,Conditional Probabilities,Proof

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

KEYWORDS:

- SEM1
**design**,**implementation**and**engineering**of**digital**computer systems- a brief introduction to the
**C programming language** - Coursework
**100**% - READING LIST: D.A. Patterson and J.L. Hennessy, Computer Organisation and Design: The Hardware/Software Interface, 4th or 5th Edition, Morgan Kaufmann.
- READING LIST: A. Silbershatz and P.B. Galvin, Operating Systems Concepts, 5/e, Wiley, 1998.
- READING LIST: B.W. Kernighan and D.M. Ritchie, The C Programming Language, 2/e, Prentice Hall PTR, 1998.
- 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:

- FULL YEAR
**a core set of**knowledge, skills, and ways of thinking that are needed for data science- 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. - complete a data science
**mini-project** **Python**-based ecosystem- EXAM HOUR:
**2h** - Latex
- data science,statistics,machine learning
- READING LIST:
**None**

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:

- FULL YEAR
- a
**toolbox**of standard algorithms and data structures - analyze both the
**theoretical complexity**of algorithms and their**practical behaviour** - including differences between
**theoretical**and**empirical**analysis - knowledge and
**choice of existing algorithms and data structures**, theoretical analysis, algorithmic strategies, and applications - Throughout, different specific algorithms and
**algorithmic strategies**(such as divide-and-conquer, greedy, recursive backtracking, dynamic programming) will be introduced using**real-world examples**. - A previous course in
**discrete mathematics**is strongly recommended. **Oral feedback**during tutorial and lab sessions.**Written feedback**on a formative assignment prior to summative practical assessment.- EXAM HOUR:
**2h** - Algorithms, Data Structures
- 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:

- SEM2
- practice of
**small team software development** **experience developing a software system**from scratch- analyzing requirements, designing and implementing new features, testing, version control
**guest lectures**and some practical work- team up in
**groups of two**, go ‘**solo**‘ also accepted **UML**diagrams**Java****iterative waterfall process**- There is room for interpretation, creativity, and some of the
**requirements change along the way**. **professional issues**surrounding the problem- use of
**industry standard tools**for software development, such as integrated development environments, version control, issue tracking - key elements of
**modern development practice**, such as code review, peer review, and pair programming. - the
**legal**,**ethical**and**social context**in which software and its authors exist **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.- 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. - The
**assignment**is based on the use of**Software Engineering techniques**(e.g. UML diagrams) and**tools**(e.g. version control),**programming**,**reflective writing**. **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.****For the third assignment, extra support in terms of a bookable 30-minute private meeting with a demonstrator will be made available.**- EXAM HOUR:
**2h** - Comfortably read and write
**technical documentation**. - READING LIST:
**Sommerville ‘Engineering Software Products’** - software engineering,professional practice,ethics

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

KEYWORDS:

- SEM2
- This course focuses on
**approaches**relating to representation, reasoning and planning for**solving real world inference**. - Relevant QAA Computing Curriculum Sections:
**Artificial Intelligence** - 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.

这是个大坑

## Informatics 1 - Cognitive Science (INFR08020)

KEYWORDS:

- SEM2
- READING LIST