Explorations in Computing
MODULE CODE
CREDIT VALUE
Module Aims
Aim 1
To create a stimulating learning environment, inspiring students’ interest and enthusiasm for the subject of computer science and its prospects,
Aim 2
To introduce various exciting topics in computer science relevant to the course’s specializations,
Aim 3
To advance students programming skills by exposing them to engaging, visual, and interactive coding activities,
Aim 4
To introduce students to Object Oriented Programming principles and methodology,
Module Content
The course content/topics can be grouped into themes as follows:
Software & Visualization
- Week 1: Drawing colored shapes – squares, rectangles, circles, etc. (intro to OOP, visualization)
- Week 2: Interacting with shapes (event-driven programming)
- Week 3: Basic animations – adding movement (concurrency and threads)
- Week 4: Building an Arkanoid-like game (capstone project)
Games & Graphics
- Week 5: Creating an image editor – visualize common picture formats, manipulate pixels to invert colors, remove colors and other manipulations (information encoding, graphics)
- Week 6: Character animations – e.g. start with simple examples like traffic lights and proceed to how a character like Super Mario appears to run with a sequence of images, etc. (state machines and graphics)
- Week 7: Creating scenes with depth perception –e.g. parallax scrolling effect (graphics)
- Week 8: Platformer game (capstone)
Networks & Security
- Week 9: Password cracking – e.g. using a list of common words and a brute-force approach/dictionary attack, also encryption/decryption – e.g. Caesar’s encoding (algorithms & data structures, security)
- Week 10: Traveling Salesman Problem, and similar graph problems (computability & graphs & networks)
- Week 11: Simulations and visualizations – e.g. compute Pi or beat the casino [if possible], Create fractals using probabilistic methods, e.g. Sierpinski triangle (probabilities, network simulations)
- Week 12: Simulating a queueing system (capstone)
What lies ahead
- Week 13: The future of CS (Artificial Intelligence & Machine Learning, self-driving cars, smart assistants, computer vision, etc.) plus revision
Program Testing and Debugging
Learning Outcomes
On successful completion of this module, a student will be able to:
Teaching Methods
This module aims to interest students in the many opportunities offered by computing technology, by discussing exciting topics of computer science.
At the same time, it aims to engage the students with the use of fun and modern programming assignments, involving visual feedback and enabling tinkering as a means of learning.
One of the main strategies of the module is to follow an approach where first a specific problem is examined, analysing its constraints and how simple solutions fail to address it .This will serve to explain the need for a solution, to better justify the complexity of certain approaches (such as of Object Oriented Programming).
Assessment Methods
This module is assessed through a programming assignment and an examination.