An open API service indexing awesome lists of open source software.

https://github.com/brannondorsey/oftutoring

Course repository for 1-on-1 openFrameworks/C++ tutoring
https://github.com/brannondorsey/oftutoring

Last synced: 4 months ago
JSON representation

Course repository for 1-on-1 openFrameworks/C++ tutoring

Awesome Lists containing this project

README

          

#Introduction to Programming and C++ with openFrameworks course syllabus

__Instructor__: Brannon Dorsey <>

__Course__: Spring 2014

##Course Description
This 15-week course will guide the student through an introduction to basic programming and creative code techniques using the openFrameworks C++ toolkit. Throughout the course the student will learn and apply basic programming skills, logic, and mathematical concepts with an emphasis on the creation of art and creative applications. Prior programming knowledge is not necessary.

##Course Objectives

- Provide the student with a fundamental understanding of code and modern computer literacy.
- Introduce and apply programming concepts and techniques using openFrameworks/C++.
- Approach the instruction of programming from an artistic context.
- Provide a learning environment that encourages conversation and open dialogue regarding the content being instructed.
- Invoke the student’s interests to apply what they have learned to their “work and play” outside of class.

##Course Resources

- Denis Perevalov, Mastering openFrameworks: Creative Coding Demystified, 2013
- Joshua Noble, Programming Interactivity, 2012
- Daniel Shiffman, The Nature of Code, 2012
- Daniel Shiffman, Learning Processing, 2008
- openFrameworks community, [ofBook](https://github.com/openframeworks/ofBook/), not yet published
- [openframeworks.cc](http://openframeworks.cc)

##Grading

- In-class participation: 25%
- Homework assignments: 25%
- Final Project: 25%
- Teacher discretion 25%

##Homework
The student will be expected to complete weekly homework assignments. These assignments range from technical exercises and small projects to research and discussion oriented prompts. A small section of each class will be devoted to conversation and questions about the previous week’s assignment.

##Final Project
In addition to weekly assignments, the student will be expected to complete a larger and more technically demanding final project during the last three weeks of the course. The requirements of the final project will be determined after evaluating the student’s technical ability and interests as of Week 12. The student will be expected to create a stand-alone computer application that utilizes their knowledge of variables, conditionals, loops, functions, classes and objects, interaction, and various other programming techniques learned throughout the course.

##15-Week Breakdown
###Week 1: Introduction

- Discuss syllabus and course expectations
- What are openFrameworks and C++?
- Who is using openFrameworks and why?
- Install openFrameworks and xCode

####Homework
Find 3 projects that (1) interest you and (2) have been created using openFrameworks. Be prepared to discuss them the following class.

###Week 2: Getting Started
- Homework discussion
- Browse EmptyExample.app files
- .h and .cpp files
- Introduction to variables and their types
- Introduction to variable scope
- Introduction to basic openFrameworks functions

####Homework
Build and play the example apps that come with openFrameworks. Choose three that interest you most. We will discuss them during the following class. Create a sketch that uses at least three variables of two different types.

###Week 3: Lets Draw!
- Homework discussion, critique and questions
- The .app window
- Pixels
- Using x and y coordinates
- Basic drawing functions and examples

####Homework
Create 3 drawings using variables and the OpenFrameworks drawing functions.

###Week 4: Programming Basics
- Homework critique and questions
- More variables
- Introduction to Loops
- Introduction to Conditionals

####Homework
Create a sketch that uses loops and conditionals.

###Week 5: Interaction
- Homework critique and questions
- Loops and conditionals review
- Using mouse and keyboard interaction

####Homework
Create a sketch that utilizes loops, conditionals, and user interaction.

###Week 6: Arrays
- Homework critique and questions
- Loops and conditionals review
- Introduction to Arrays
- Course check in (what is working? What isn’t?)

####Homework
Create one sketch that uses loops and arrays. Create another sketch that is completely broken, we will fix it together during the next class.

###Week 7: Putting it All Together
- Homework critique and questions
- Fix the broken homework sketch
- Multidimensional arrays
- Review variables, loops, conditionals, arrays and basic drawing techniques in openFrameworks

####Homework
Build a sketch that uses everything that you have used so far.

###Week 8: Functions
- Homework critique and questions
- Introduction to functions
- In-class rework of a previous homework sketch using functions

###Homework
Rework another previous homework assignment using functions. Can you improve it?

###Week 9: Classes and Objects
- Homework critique and questions
- Introduction to classes, objects, and object oriented programming

###Homework
Create a sketch that incorporates an instantiation and use of a custom class.

###Week 11: More OOP (Object Oriented Programming)
- Homework critique and questions
- More on classes and objects
- Using classes and objects effectively

###Homework
Create a sketch that uses an array of objects. In the next class you will be asked to explain why object oriented programming was an effective method used to create your sketch.

###Week 12: Math
- Homework critique and questions
- Using geometry and vectors

###Homework
Create a sketch that uses an instantiation of two custom classes and vectors to control movement that is determined by some form of user interactions.

###Week 13: Images and Video
- Homework critique and questions
- Introduction to images and image data manipulation using 2D arrays

###Homework
Begin working on your final project.

###Week 14: Loading External Data
- Discuss final project progress
- Loading and parsing external data

###Homework
Continue working on your final project.

###Week 15: Final Critique
- Critique final project
- Final questions
- Next steps in programming and creative code