An Introduction To Programming With Processing

An Introduction to Programming with Processing
Online Course Outline

Overview

This course is designed to give you an introduction to creating software that is interactive, informative and appealing. You will be taught the fundamental principles of application design for specific environments and also given the opportunity to apply these principles in the design of your own software. The programming language, Processing will be the primary means of creating representations of the data that your software comprises of. You will be taught to acquire and represent external database sets in visually interesting and interactive programs, learn modern and classical programming principles and ultimately, with practice, create your own software programs without inhibition from technical knowledge. Beyond learning how to create programs in Processing, this course also encourages you to apply this knowledge to learning other higher level languages and extending your knowledge of data representation beyond programmatic implementations.

Course Structure

Participation in this course requires the delivery of three Main Projects, other minor projects may be issued throughout the duration of this course to assist you in learning fundamental programming concepts, but will not be assessed in individual capacities as per Main Projects which ultimately contribute to your final grade. A recommended timeframe for the course is 6 hours per week, for 6 weeks in total (36 hours). This timeframe can be broken down into 2 hours on Monday and another 2 hours on Tuesday for reading through the documentation, researching and practicing simple implementations of what you have learned. The remaining 2 hours of the week should be spent working on Main Projects on Friday, this also provides an opportunity for assistance with your Main Projects from fellow students and for assistance with course content, including course related projects, from your lecturer. The completion and delivery of all three Main Projects (to your lecturer) will be required to progress with this course when lecturer support and assistance is required. Lecturer Support for this course is available at a fee. Please send an email to confirm your participation.

Lecturer Assistance

Your lecturer will be available to help facilitate your learning process and assist you with your projects. Any assistance that might be required beyond these time-frames is solely at the discretion of your lecturer and if additional assistance is necessary the allotted time-frame will be determined by taking into consideration your overall course participation rate.

Questionnaires

At the end of each major section you will be presented with a short Questionnaire that will test your knowledge and understanding of the course thus far. Your participation in three questionnaires will be a necessary requirement for completing this course.

Course Detail and Main Projects

Week 1 and 2

Online Design and Layout Program

The first Main Project is to design a program that represents an interface for an online portfolio of your work. Although the program will not have interactive capabilities (at this stage), it's ability to be scaled into an interactive environment will be a key factor during assessment. Consider what elements of the program can be drawn using Processing functions and what elements of the interface must be drawn in an external application and imported into Processing. Choices such as this will determine the size of the application and it's efficiency within an online environment and also it's ability to develop into an interactive program.
During the first week of the course you will be introduced to,
  • the theory behind programming,
  • an overview of higher level languages,
  • programming terminology and disambiguation,
  • the concept of abstraction,
  • programming paradigms,
  • a recommended software development model,
  • the data typing concept,
  • and an introduction to Processing amongst many other topics.
Required reading for the first week is up to, but not including "Visual Representations of Code" or page 53 in the PDF. The focus in the second week will be an application of the knowledge gained from the first week in developing a program that draws to the Processing Display window and also runs efficiently in a browser. Including,
  • IDE's,
  • Sketches,
  • debugging,
  • Hello World Program,
  • built-in functions,
  • syntax,
  • standardized coding practices,
  • 2D coordinate space
  • and various drawing functions and techniques in Processing amongst many other topics.
Required reading for the second week is up to but not including "Beyond Static Sketches and on to Active Mode" or page 90 in the PDF.

Week 1 and 2 Deliverables

1st Friday
Online Design and Layout Program Mock-up and Proposal Finalization You are to deliver a mock-up with a proposal of what you would like the interface of your program to look like and how you would like it to work, at the end of the first Friday.
1st Friday
Hardware and Software Theory 20 Minute Questionnaire No.1
2nd Friday
Online Design and Layout Program Completion Your completed Design and Layout Program must be uploaded for online assessment at the end of the second tutorial session.
2nd Friday
Programming Principles 20 Minute Questionnaire No.2

Week 3 and 4

Guess My Number Game

Your Main Project for the third and fourth weeks will involve the development of a program known as the “Guess my Number” game. The main criteria you will be assessed on for this project will be the translation of your programming skills into animation and interactivity. Your game should be designed to have a consistent interface that carries a visually oriented thematic design throughout the user's experience and should be targeted at a younger interest group such as contemporary pre-teen scholars. Working around a specific genre such as a space theme, underwater exploration, a racing car scene or some other genre applicable to the particular interest group will help keep your project focused, easier to research and develop. A creative theme and a visually appealing animated interface will contribute to a positive assessment of your project, games that are programmatic and mathematically emphatic in their front-end design will not be as immersive for the particular interest group. Set a clear goal for your user to accomplish that abstracts the given programmatic nature of the “Guess my Number” game design. It is recommended that you focus on an original concept and implementation that can be delivered in a completed game, timeously.

During the third week you will be introduced to the common principles of programming in higher level languages that will include
  • built-in data types,
  • variables,
  • mathematical operators,
  • operator precedence,
  • randomization,
  • flow of control,
  • conditionals,
  • comparison operators,
  • and compound conditionals amongst other topics.
Required reading for the third week is up to but not including "Interface Controls: Setting up a Slider" or page 129 in the PDF. During the fourth week you will be introduced to
  • arrays,
  • loops and iterations,
  • user defined functions,
  • defining regions
  • and mapping data amongst other topics.
Required reading for the fourth week is up to but not including "Transforms" or page 163 in the PDF.

Week 3 and 4 Deliverables

3rd Friday
Game Development Proposal You are to propose a model for designing your Guess My Number game to your lecturer, for his finalisation and approval. Your proposal will be assessed in terms of the software development model outlined in the first week, and should include:
  • A typed Overview and Plan of how the game should optimally be played, what scenarios the user is presented with and what the outcomes of these situations are.
  • A graphical representation of these ideas, that can clearly communicate the “look and feel” of the game and it's different scenarios.
  • A stepwise refined model of the program's flow of control.
Your proposal must be self contained and neatly presented. The documents that your proposal consists of must communicate a clear idea of the finished product.
4th Friday
Guess My Number Game Completion Your completed game is to be deployed online for assessment by the end of the tutorial session.
4th Friday
Common Higher Level Functions 20 Minute Questionnaire No.3

Week 5 and 6

The main focus of the fifth and sixth weeks of the course is to assist you in developing an interactive program that utilises an external data set and represents this data in a meaningful and appealing manner. Various governmental organizations produce websites around the world that publish statistical data relating to different aspects of their locales. This information is often made publicly available and could contain data relating to various details about a country from information about it's motor industry, to food and beverages consumed, to expenditure in that country and much more.

Social Commentary Visualization

Your final Main Project is to study the data on these sites and determine an area of interest that can be contrasted with at least one other. You are to acquire, mine and parse data about these areas of interest and represent this data in a Processing sketch that reads from an external data source. Focusing on a social commentary by contrasting and comparing these areas of interest rather than the numerical properties of the data itself will be a key factor in the assessment of this project. A bar graph visualization of the data sets, simply depicting the numerical contrasts that the statistics comprise of will be far less appealing than an application that sets out to make a comment about why the different data sets are being contrasted and compared and how that relates to a current sociological, political or economical issue. You are encouraged to use the 10 Step Software Development Model addressed in the first week of the course to start planning, designing, researching, acquiring data and discussing your choices for this project with your lecturer from the first week of the course.

The focus of the fifth week will be on
  • 2D transformations including translation, rotation and scaling,
  • transformation matrix,
  • interactive transformations
  • and an Introduction to 3D transformations in Processing amongst other topics.
Required reading for the fifth week is up to but not including "Object Oriented Programming" or page 183 in the PDF. The final week of the course will include
  • Application of acquiring, parsing, filtering, mining, refining and representing data,
  • Object Oriented Programming including class design and method creation,
  • and working with and parsing external data amongst other topics.
Required reading for the sixth week is up to the end of the documentation or page 200 in the PDF.

Week 5 and 6 Deliverables

5th Friday
Social Commentary Visualization Proposal Your proposal must include
  • A typed plan, overview and statement explaining the discourse in which you wish to engage with your user-base.
  • References and quotes from your research to back up your overview and statement.
  • Graphical representations of your projects “look and feel”.
  • Schematic diagrams describing the user experience.
  • A Stepwise refined version of your program's flow of control.
Your proposal must be self contained and neatly presented. The documents that your proposal consists of must communicate a clear idea of the finished product.
6th Friday
Social Commentary Visualization Program Completion Your project must be uploaded for online assessment by the end of Friday's tutorial.