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 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...
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...
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...
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...
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...
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...
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...
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...
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...
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....