What students will learn
By the end of this course, students will:
- learn the basic principles of computer programming
- become familiar with common programming terminology
- put new programming knowledge into practice in labs at the end of each module:
- create a method called
drawWord()
that uses a Turtle object to draw any 5-letter word
Learning objectives by module
Unit 1: Main Course Content for Introduction to Programming for Non Programmers
- Module 1: Introduction to Programming
- Compile a method to turn it into something the computer understands
- Compile and run a file
- Create and initialize objects using the new keyword, and initialize those objects by passing in important information at creation time.
- Deconstruct a problem and use pseudocode to sketch out a solution that you can translate into Java. Use that pseudocode to comment and explain your code
- Execute a method it to try it out
- Execute simple Java statements
- Explain how casting converts between different types and why you might need it
- Explain how to use Java’s library to set Turtle’s pen color
- Explan what types are and how they affect the output of Java math statements
- Help the instructor find out what went right and wrong
- Learn about some basics for programming neatly.
- Open a file
- Send messages to objects asking them to do something using a series of Java statements
- Show how to make a method more reusable
- Test your grasp of the material
- Understand how computers use binary numbers.
- Understand how to change the value of a variable
- Understand rules for declaring variables
- Understand the difference between a primitive and object variable
- Understand the impact of counting from 0 instead of 1.
- Understand the meaning of words like program, object, class, and so on
- Understand the role of naming in different components of a program
- Understand what a compiler is for.
- Understand what a programming language is.
- Understand what an object or class is.
- Understand what an operator is and some examples
- Use a variable to store data or objects and explain what an object variable is
- Use Java math and relational operators
- Use Turtles to draw simple shapes
- Module 2: Manipulating Images: Loops and Arrays
- Be able to convert from one type of loop to another
- Create a piece of code that implements an algorithm, and test it.
- Explain how casting converts between different types and why you might need it
- Import a class from a package
- Learn about pictures and how they are represented in a program
- Learn what a for each loop is and how to use it
- Learn what a What a for loop is and how to use it
- Learn what a while loop is and how to use it
- Learn what loops are, and some conventions for writing loops such as using ++ and declaring variables outside the loop
- Trace your code to understand how your algorithm works and make sure it does what you expect
- Understand and use a 2D array
- Understand and use an array
- Understand how Java uses evaluation and substitution to interpret your code
- Understand that picture files are made up of pixels and how pixels are represented
- Understand the coordinate system for pixels and how to retrieve one
- Understand the difference between files and memory.
- Understand the relative advantages of using different loops for repeating statements
- Understand what a literal is and how it differs from a variable or an expression
- Understand what an algorithm is
- Understanding the scope within which a variable is accessible
- Use the Picture Explorer to explore an image
- Module 3: Fun with Images: Nested Loops and Two-Dimensional Arrays
- Copy parts of a picture from one picture to another.
- Copy pictures to other pictures with 90 degree rotation left or right
- Copy pixels from one image to another.
- Create a piece of code that implements an algorithm, and test it.
- Create concrete examples of simple versions of a problem to make it easier to generate an algorithm that solves it.
- Declare, initialize, and use multiple variables within a for loop.
- How to save a picture to disk
- How to scale pictures up and down
- Know how to mirror a picture vertically and horizontally.
- Learn about image algorithms
- Learning about how to convert an image into grayscale and how to adjust it based on perceived colors
- Learning about how to negate an image
- Make methods generic by using parameters
- Understand and use a 2D array
- Understand how to convert from a single loop to a nested loop
- Understand nested loops and how they allow you to manipulate two-dimensional objects.
- Understand the coordinate system for pixels and how to retrieve one
- Understand what an algorithm is
- Understand what makes a good method and rewrite methods to make your code more reusable and get rid of redundant code.
- Module 4: Conditionals and Drawing: Making Images a bit more interesting
- Bitmapped pictures versus vector graphics
- Explain inheritance and understand how it impacts your code
- How (and why) to use the java.awt.Graphics2D class
- How to change the background on a picture
- How to clip a picture to a shape
- How to conditionally execute a statement or block of statements
- How to create and paint the object to be painted
- How to create image collages
- How to do a general scale method using the java.awt.geom.AffineTransform class
- How to do chroma key
- How to do simple edge detection
- How to draw simple shapes on an image
- How to draw text on top of an image
- How to draw with a gradient paint and what it is
- How to posterize an image
- How to remove red-eye from a picture
- How to sepia-tint a picture
- How to set the color to draw with
- How to set the color, paint, and stroke (paint brush) for the Graphics2D class
- How to set the font to write with
- How to test for values in ranges
- How to use ‘and’, ‘or’, ‘exclusive or’ and ‘not’ in a conditional
- How to use conditionals with 2 possibilities
- How to use conditionals with more than 2 possibilities
- What an interface is and what it is used for
- Module 5: Creating your own classes
- Create a class that simulates a number game
- Create methods in your Java objects to perform calculations and manipulate the state of the objects.
- Create methods to access and modify various information stored within your object.
- Declare a class
- Declare a main method to perform the task desired.
- Deconstruct a problem into objects, and assign methods (skills) and fields (data to each object.
- Explain inheritance and understand how it impacts your code
- Import a class from a package
- Inherit from a class
- Override parent methods
- Practice going from requirements to class definitions and field declarations
- Understand how method invocations are resolved
- Understand implicit calls to super() and how to call parent constructors
- Understand random number generators
- Understand the difference between a class method and an object method, and between a class field and an object field.
- Understand what a constructor does and write a constructor
- Use a compiler error to find and fix bugs
- Use a debugger to find bugs
- Module 6: Graphical User Interfaces: Creation, Layout and Event Handling
- Advanced information on events
- How to position components within a GUI using a layout manager
- Learn how to add a button to a GUI
- Learn how to add a list to a GUI
- Learn how to change visual attributes to interface elements
- Learn how to create a basic frame window
- Learn how to create and use an event listener
- Learn how to handle user interface events
- Learn how to use a library of classes provided by someone else, and the difference between a library and a programming language
- Learn to create graphical components using Swing
- Understand the concept of binding and why it is relevant to event handling
- Understand what an anonymous inner class is, and how to use it for event handling
- Understand what GUIs are and how to create them
Unit 2: Appendix
- Module 10: Java details
- Import a class from a package
- Use a compiler error to find and fix bugs
- Use a debugger to find bugs
- Module 11: Dr. Java
- Add Java code for a new class to that file
- Compile and run a file
- Create a new file in Dr. Java
- Download, install, and set up Dr Java
- Execute simple Java statements
- Figure out what version of Java is installed on your machine
- Open a file
- Save, compile, and run the class
- Use Dr. Java’s history
Course outline
UNIT 1: Main Course Content for Introduction to Programming for Non Programmers
Module 1: Introduction to Programming
Lab: Create a method that uses a Turtle object to draw a word
Module 2: Manipulating Images: Loops and Arrays
Lab: Modify a java file and add three methods
Module 3: Fun with Images: Nested Loops and Two-Dimensional Arrays
Lab: Create your own image “special effect”; in an image, replace a person’s head with an object
Module 4: Conditionals and Drawing: Making Images a bit more interesting
Lab: Write a method that creates a collage of images
Module 5: Creating your own classes
Lab: Create a FortuneTeller
class; create a MoodyFortuneTeller
class that inherits from FortuneTeller
Module 6: Graphical User Interfaces: Creation, Layout and Event Handling
Lab: Create a meme generator — an interface that can be used to modify and caption images
System requirements
OLI system requirements, regardless of course:
- internet access
- an operating system that supports the latest browser update
- the latest browser update (Chrome recommended; Firefox, Safari supported; Edge and Internet Explorer are supported but not recommended)
- pop-ups enabled
- cookies enabled
Some courses include exercises with exceptions to these requirements, such as technology that cannot be used on mobile devices.
This course’s system requirements:
- A full desktop operating system, such as Windows or Mac OS X.
- Flash
- Java
- DrJava