Introduction to Programming II - CM1010

Introduction to Programming II - CM1010

This module is focused on adding to the basic programming skill set you developed in Introduction to Programming I and giving you experience working with existing code and third-party libraries.

By taking this module, you will enhance your programming skills through the development of a project. You will learn how to customise existing code to implement basic object orientation, learn about producing maintainable code, defensive coding techniques, application testing techniques, cyclical approaches to software development, encapsulation, developing modular code and using third-party libraries.


Topics covered will be:

  • Object orientation in practice
  • Introducing case study 1: drawing app
  • Introducing case study 2: music visualiser
  • Introducing case study 3: data visualisation
  • Extending the apps, part 1
    • Extend the functionality of an existing codebase
    • Use the random function to draw patterns
    • Use a fast Fourier transform to create a music visualisation
    • Source and use existing data to create a visualisation
  • Extending the apps, part 2
    • Extend the functionality of an existing codebase
    • Use object-oriented design to create editable shapes
    • Use FFT portions to create a music visualisation
    • Create and use a new data source
  • Extending the apps, part 3
    • Extend the functionality of an existing codebase
    • Create a tool using pixel data
    • Use beat detection to create a rhythmic music visualisation
    • Use object-oriented techniques to create an animated data visualisation
  • Callbacks
    • Understand and use asynchronous function calls to write event driven code
    • Use the step debugger to identify and fix code errors
  • Testing for stability
    • Design tests to evaluate code stability
    • Use advanced debugging techniques to identify performance bottlenecks
  • Testing with users
    • Understand the basic principles of usability testing -Project and report assignment

Resources

Essential reading

"There is no required textbook for this module. The programming language is Javascript, with the p5js library used for graphical and interactive programming functionality. The main external resource is the set of online tutorials available from: p5js.org/learn."


Pedram Badakhchani Useful links:

My p5 sketches:

https://editor.p5js.org/pedbad/collections

My codepen:

https://codepen.io/pedbad