Introductory Computer Science - term 2
Course Material and Useful Links
Lecture Timetable and Handouts
While the handouts are provided as PDF, I will develop most of the ideas on the whiteboard.
You should take notes during the lectures.
Suggested reading, links and software
Assignment (Deadline: Fri 28 March, 5pm)
Create your own self-similar object that is both visually pleasing and more complex than the basic Koch curve described in lectures and practiced in labs. The object should be composed of several different Koch-type constructions, with varying color schemes.
You should start from detailed understanding of recursive codes for the basic Koch curve:
my_line.m is a Matlab code for ploting a line og a given length, at a given angle, from a given satrt position. This is a convenient representation of line drawing for building Koch-type objects.
mother_shape.m is the main Matlab code specifying a recursive function for plotting the basic Koch curve. You will need to play around this function to create more complex Koch-like constructions.
my_line.m is a Matlab code for running a simple Koch curve demo. It iterates through several levels at which the objects are constructed and for each level saves the corresponding images and an .eps file.
After uderstanding the codes for simple Koch curve, design several more complex self-similar objects by modifying the mother_shape.m code. These objects should then be combined into a single, visually pleasing final object. You should explore using different color schemes for different parts of the final object.
Preparing for the exam - Sample Questions
Handouts: Sorting Algorithms
- What constitutes a sorting problem?
- Describe sorting algorithms discussed in the module.
- What is the "Big O" notation? How can it be used for assessing computational complexity of sorting algorithms?
- What is the main feature of recursive algorithms/functions?
- In what kinds of situations would you use recursive algorithms?
- What is the role of "base case" and why is it important?
- What is the call stack of function calls while a recursive function is evaluated?
- Write down recursive functions for problems that can be naturally cast in a recursive manner - e.g. factorial, Fibonacci series etc.
- What is the main feature of self-similar objects?
- What kinds of self-similar objects can be found in nature? How can their self-similarity be used to generate their images
- Why are recursive functions natural tools for generating self-similar objects?
- Decribe a simple self-similar object and outline how it can be generated using a recursive function.
Mandelbrot and Julia sets
Handouts: Mandelbrot and Julia sets
- What are complex numbers and how can we manupulate them (addition, multiplication)?
- Describe how a dynamical system can be defined by repeated application of the same mapping on some space
- What is the dynamics behind Mandelbrot set?
- Define Mandelbrot set
- How can visually appealing images of Mandelbrot set be created by colour-coding the escape rates of trajectories of the corresponding dynamics?
- What is the dynamics behind Julia sets?
- Define a Julia set
- How can visually appealing images of a Julia set be created by colour-coding the escape rates of trajectories of the corresponding dynamics?
This page is maintained by
Last updated on 16 Jan 2014.