Skip to content

Instantly share code, notes, and snippets.

@4lun
Last active October 10, 2021 01:54
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 4lun/d55a6c86b0c70d878313 to your computer and use it in GitHub Desktop.
Save 4lun/d55a6c86b0c70d878313 to your computer and use it in GitHub Desktop.
Course Structure - Computer Science (MSc) at Birkbeck University, London

Course Structure - Computer Science (MSc) at Birkbeck University, London

Syllabus

Compulsory Modules:

Optional Modules:

Students also have to choose one optional module from the following list.

Compulsory Modules

Programming in Java

Credits, Level: 30 credits, level 7
Lecturer: Sergio Gutiérrez Santos and Keith Mannock
Prerequisites: none
Assessment: 3-hour examination and practical coursework, (80% and 20% weighting respectively).

A substantial part of the first half of the MSc course is devoted to learning how to program. Assignments are set as part of this module and all students are required to complete them.

  • Variables, types, initialization, comments
  • Flow control: branches, loops
  • Source code version control
  • Simple and complex data types: primitive types, strings, (multi-dimensional) arrays
  • Introduction to classes and objects: initialization, methods, and contructors
  • Data structures: lists, stacks, trees, maps (and iterators)
  • Software testing and testing-driven development
  • Generics
  • More on object orientation: inheritance, polymorphism, overloading
  • Recursion
  • Exception Handling
  • Input/Output
  • Network programming
  • Concurrent programming.

Fundamentals of Computing

Lecturer: Michael Zakharyaschev and Trevor Fenner
Units, Credits, Level: half-module, 15 credits, Level 7
Prerequisites: Students taking this module must be also be currently taking (or have previously taken) a suitable programming module (Programming in Java, or Introduction to Software Development). With the permission of the Programme Director, other students may take this module if they have equivalent appropriate programming experience.
Assessment: 2-hour written examination and coursework exercises (80% and 20% weighting respectively).

Discrete mathematics, mathematical logic, and the related fundamental areas of data structures and algorithms lie at the heart of any modern study of Computer Science. Any understanding of how computers operate and how to use them effectively and efficiently, in terms of either their hardware or software, inevitably involves numerous mathematical concepts.

This module introduces and develops mathematical notions, data structures and algorithms that are used in various areas of computer science, in particular those required for other modules of the programme.

  • Digital logic. Arithmetic for computers.
  • Elements of set theory.
  • Finite state machines (automata). Nondeterministic automata.
  • Regular languages.
  • Context-free languages and pushdown automata.
  • Turing machines. Universal Turing machines. Undecidable problems.
  • Data structures: representations and operations.
  • Lists, stacks, queues and deques.
  • Trees, forests, binary trees.
  • Tree traversal and other operations; binary search trees.
  • Organisation of disk storage; methods of file organisation; B-trees.
  • Design and analysis of algorithms. Sorting and searching.

Information Systems

Lecturer: Dave Wilson and Brian Gannon
Units, Credits, Level: 15 credits, Level 7
Prerequisites: none
Assessment: examination (80%) and in-class-test (20%).

The module sets the social and organisational contexts in which computing is deployed before exploring approaches, processes, methodologies and techniques commonly used for organisational information systems development. The impact of major movements, e.g. packaged approaches to information infrastructure development, outsourcing and offshoring are also explored. Students are required to demonstrate insight into professional and legal issues surrounding Information Systems development.

  • Theories of Information, System and the Information Systems Development Life Cycle
  • Project Identification and Selection
  • Implementing and Sourcing Information Infrastructures
  • Requirements Analysis
  • Use Case Modelling
  • Class Modelling and Codd's Normalisation
  • Class and Method Design
  • Data Protection
  • Freedom of Information
  • IT Profession
  • Intellectual Property Rights
  • Software Contracts and Liability.

Computer Systems

Lecturer: Szabolcs Mikulas
Units, Credits, Level: 15 credits, Level 7
Assessment: 2-hour written examination and coursework exercises, (90% and 10% weighting respectively).

To learn the basics of computer architecture and organisation, and the role and mechanism of operating systems.

  • Introduction: Computer architecture (CA) and Operating system (OS) overview
  • Processors
  • Processes and threads
  • Concurrency
  • Memory management
  • I/O and file systems
  • Protection and security
  • Distributed and parallel processing.

Data and Knowledge Management

Lecturer: Nigel Martin
Units, Credits, Level: 15 credits, Level 7
Prerequisites: none
Assessment: 2-hour written examination and in-class written test (90% and 10% weighting respectively).

This module covers the principles and application of data and knowledge management technologies and languages including SQL. Students study the use of these in leading commercial database management systems as well as emerging approaches to data management.

  • Database management software: origins and objectives.
  • The relational model: algebraic and logical foundations.
  • Relational algebra and calculus.
  • SQL: data manipulation, host language support for SQL.
  • Transaction management, recovery, concurrency.
  • Relational database theory: dependencies, normal forms.
  • SQL data definition, other features.
  • DBMS architectures and implementations.
  • DBMS storage and indexing.
  • Query optimisation.
  • Enhanced database capabilities: procedural extensions to SQL, database triggers, deductive databases.
  • Non-relational DBMS, object databases, NoSQL databases.
  • Distributed databases, distributed architectures and connectivity.
  • Databases and the Web, Java database programming - JDBC, SQLJ, databases and XML.
  • Database research topics.

Software Design and Programming

Lecturer: Keith Mannock and Oded Lachish
Units, Credits, Level: 15 credits, Level 7
Prerequisites: Pass in the Programming in Java module, or a distinction level pass in the Introduction to Software Development module, or an appropriate level of experience with a modern programming language otherwise.
Assessment: 2-hour unseen written examination and coursework exercises (80% and 20% weighting respectively).

The main aim of the module is to provide students with the necessary skills for developing software utlising the object-oriented and functional programming paradigms, with Java 8. This ranges from learning object-oriented concepts, designing object-oriented software using a proven methodology and tools, to learning how to program in an object-oriented and functional style. The module provides detailed examination of Software Design Patterns, and the emerging functional features of current day object-oriented programming languages.

  • The object model and how it is realised in various object-oriented languages (e.g., Java, Scala, Ruby, C++, ...)
  • Further development the ideas of inheritance and polymorphism (including a revision of parametric polymorphism)
  • Language features: inner classes, closures, higher-order functions, meta-objects, etc.
  • An introduction to Test Driven Design (TDD) and Behavioural Driven Design (BDD)
  • The use of an Integrated Development Environment (IDE) for software development: e.g., editing, debugging, compilation, etc.
  • Modularity, versioning, packaging, and managing the build process
  • Design Patterns and Anti-Patterns and their application to software design
  • The SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion) approach to object oriented programming and design
  • Code refactoring and analysis
  • Graphical User Interfaces and frameworks
  • Persistence Frameworks
  • Concurrency and agents/actors.

Optional Modules

Data Warehousing and Data Mining

Lecturer: Nigel Martin
Assessment: 2-hour written examination and practical coursework. The final module mark will be the exam mark attained. Passing the practical coursework component will be compulsory in order to pass the module overall.

This module covers the organisation, analysis and mining of large data sets to support business intelligence applications. Students study the principles and commercial application of the technologies, as well as research results and emerging architectures underpinning the analysis and mining of 'big data'.

  • Data warehousing requirements.
  • Database technology underpinning data warehousing and data mining.
  • Data warehouse architectures. Data marts.
  • Data warehouse logical design: star schemas, fact tables, dimensions, snowflake schemas, dimension hierarchies.
  • OLAP architectures, OLAP operations. SQL extensions for OLAP.
  • Data warehouse physical design: partitioning, parallelism, compression, indexes, materialized views, column stores.
  • Data warehouse construction: data extraction, transformation, loading and refreshing. Data warehouse support in Oracle. Warehouse metadata.
  • Specialized warehouse architectures. MapReduce and warehouse architectures: Hive.
  • Data mining concepts, tasks and algorithms.
  • Data mining technologies and implementations. Techniques for mining large databases.
  • Data mining support in commercial systems. Data mining standards.
  • Research trends in data warehousing and data mining.

Information and Network Security

Credits, Level: 15 credits, level 7
Lecturer: David Weston
Prerequisites: none
Assessment: 2-hour written examination (80%) and practical coursework (20%).

Information security is about protecting information (and information systems) against unauthorised access and tampering. Avoiding security breaches has a high priority for organisations storing and handling confidential data.

  • Overview of Information Security
  • Access Control Matrix Model
  • Security Policies
  • Social Engineering
  • Basic Cryptography
  • Identity Management
  • Access Control Mechanisms
  • Confinement
  • Assurance and Trust
  • Network Intruders and Intrusion Detection
  • Firewalls and Malicious Software
  • Cryptographic Protocol Concepts
  • Authentication
  • Key Exchange
  • Economics of Information Security.

Information Retrieval and Organisation

Lecturers: Dell Zhang and Mark Levene
Units, Credits, Level: 15 credits, Level 7
Prerequisites: none
Assessment: Coursework (20%) and examination (80%).

Due to the explosive growth of digital information in recent years, modern Information Retrieval (IR) systems such as search engines have become more and more important in almost everyone's work and life (e.g. see the phenomenal rise of Google). IR research and development are one of the hottest research areas in academia as well as industry. This module will convey the basic principles of modern IR systems to students.

  • Boolean Retrieval
  • The Term Vocabulary and Postings Lists
  • Dictionaries and Tolerant Retrieval
  • Index Construction and Compression
  • Scoring, Term Weighting and the Vector Space Model
  • Computing Scores in A Complete Search System
  • Evaluation in Information Retrieval, Relevance Feedback and Query Expansion
  • Probabilistic Information Retrieval
  • Language Models for Information Retrieval
  • Text Classification, Naive Bayes and Vector Space Classification
  • Flat and Hierarchical Clustering
  • Advanced Topics in IR.

Internet and Web Technologies

Lecturer: Peter Wood
Units, Credits, Level: 15 credits, Level 7
Prerequisites: A first module in programming
Assessment: 2-hour written examination and coursework exercises (80% and 20% weighting respectively).

To provide students with an understanding of how network protocols work, particularly those used on the Internet, and the ability to present and manipulate information on the World Wide Web, with an emphasis on XML.

  • Introduction to the Internet and its applications
  • Web languages (e.g., HTML, XHTML, XML)
  • Languages for defining Web document types (e.g. DTDs)
  • Web query and transformation languages (e.g. XPath, XSLT)
  • Client-side processing (e.g. using Javascript, DOM)
  • Server-side processing (e.g. using CGI, Perl and PHP)
  • The transport layer (e.g., TCP, UDP)
  • The network layer (e.g., IP, DHCP, ICMP)
  • The link layer (e.g., Ethernet, ARP).

Sources:

@LilWest1
Copy link

There are some changes according to this day. But, this program is very good for those who want to study computer science. I passed this one several years ago, and I can say that it's not easy, so sometimes I've used https://phdessay.com/free-essays-on/computer-science/ to get some help. Students must be ready to work hard to achieve good results. But, I think that it's applied to everything.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment