Welcome to the CS118 Revision Guide
Full notes for the module
The main set of notes for this module which is linked in the above heading were written in collaboration by Akram Ahmad and Justin Tan
Individual topics
Given the large number of topics, it makes sense to break these down into broader topics when revising - each of which having its own page. These are linked below by section:
- Variables, number systems, and I/O (1 to 4 from above)
- Conditional and iterative statements (5 to 6)
- Arrays, methods, scope and recursion (7 to 9)
- Object oriented programming (10 to 12)
- Abstract classes and inheritance (13 to 16)
- Exceptions (17)
- Generics (18)
Discussion of module content
There are five broad topics overall which were split into 11 lectures - within these topics, the main sections of content are:
- Storing values in Java
- Primitive types
- Operating on variables
- Pre- and post-increment
- Branching (
if
…else
) - Bounded and unbounded repetition
- Declaring an array
- Passing by value (parameters) and passing by reference (objects and arrays)
- Recursion definition and requirements
- OOP principles
- Constructor methods
- The
static
keyword - The
super
andthis
keyword - Dynamic polymorphism
- Abstract classes and functions
- Interfaces
- Exceptions
- Generics
Anyone who has completed the CS118 and CS126 courseworks should be confident with most of the content, so should focus their time on the more difficult topics, which include but are not limited to:
- IEEE-754 floating point
- Static and dynamic polymorphism
- Abstract classes and interfaces
Along with topics with odd nuances, again including but not limited to:
- Operator precedence (including pre- and post-increment, and lazy and strict evaluation)
- Switch statement execution, including
break
anddefault
keywords - Passing by value / reference
- Encapsulation vs. data hiding