All these information are from college homepage.
- 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
- 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.
- 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
- data science,statistics,machine learning
- READING LIST: None
- 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
- 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
- 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
- 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
- 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.
- READING LIST