Skip to content
UoL CS Notes

Home

This website houses notes from my studies at the University of Liverpool. If you see any errors or issues, please do open an issue on this site's GitHub.

AVL & (2, 4) Trees

COMP202 Lectures

AVL Trees You can view interactive examples of AVL trees at: https://www.cs.usfca.edu/∼galles/visualization/AVLtree.html. This is a type of tree which upholds a height-balance property. This rule says that the heights of the children of a node can differ by at most 1. This means that the height of an AVL tree...

Read More

Introduction to Ant

COMP285 Lectures

Ant Terminology In Ant, each build file contains one project. A large project may include: Smaller sub-projects. A master build file that can coordinate the builds of sub-projects. Each Ant project contains multiple targets that represent stages in the build process. These could be: Compiling Testing Deploying to a Server...

Read More

C Language Basics

COMP281 Lectures

Basic I/O printf() This function is used for output like so: printf("I have %d modules this term\n", sum); This string is then sent to the standard output (stdout). Format Specifiers Format specifiers start with a % and define the type and format of a value to substituted. Above we saw...

Read More

Continuous Integration & Automated Testing

COMP285 Lectures

Automated Testing Automated testing is important as it allows us to easily test code quickly and repeatedly. Unit Testing This usually exercise all the methods in the public interface of an isolated, independent class. This verifies that a unit of code behaves as expected. There is no strict definition for...

Read More

PHP Introduction

COMP284 Lectures

Using CGI is disadvantageous as it is difficult to add a small amount of dynamic content to a web page. PHP is a scripting language that aims to make it easy to write server-side code. PHP Processing You install PHP as a web server plugin: This avoids the need to...

Read More

Binary Search Trees

COMP202 Lectures

Linked Lists & Arrays This lecture started by covering arrays and linked lists. There are several lectures on linked lists below: Linked Lists - 1 (Searching) Linked Lists - 2 (Insertion) Linked Lists - 3 (Deletion) Linked Lists - 4 (Summary) This lecture includes information about the time complexity and...

Read More

Programming Methodologies

COMP285 Lectures

Software development methodologies are a collection of procedures, techniques, principles and tools that help developers to build computer systems. Traditional Methodologies The main traditional approaches are: Monumental Waterfall These methodologies are very rigid: First complete a functional specification. Then the software is developed in several distinct, waterfall-like phases. This has...

Read More

CGI Programming and HTML Forms

COMP284 Lectures

Web-Based Application Interfaces Web-based applications are client-server applications where: The client software, consisting of a user interface and client-side logic of the application, run in a web browser. Static aspects of a user interface are realised using HTML. The client software incorporates user inputs into a HTTP request that it...

Read More

C Basics and Compiling

COMP281 Lectures

Compiling and running a program takes the program through the following steps: Editor - You edit the source code on disk .c Preprocessor - This program processes the code. Compiler - This creates object code and stores it on disk. Linker - This links object code with libraries and creates...

Read More

Proof Techniques

COMP202 Lectures

This course will use the following types of proof: Proof by mathematical induction. There is also an example of mathematical induction. Proof by contradiction. Proof by contrapositive argument. (Dis)Proof by counterexample. I won’t cover these here, as they have been covered before, but there are additional examples in the slides....

Read More