Jump to Lecture 1, Lecture 2, Lecture 3, Lecture 4, Lecture 5, Lecture 6, Lecture 7, Lecture 8, Lecture 9, Lecture 10, Lecture 11, Lecture 12, Lecture 13, Lecture 14, Lecture 15, Lecture 16, Lecture 17, Lecture 18, Lecture 19, Lecture 20, Lecture 21
Slides are here.
Today's goals are to find where resources are available, and set up software. Please see direction in the left-hand frame.
Today's lecture covers the basics of Java. We will see how to interpret a program, and how to 'debug' or fix errors in the program. Lecture notes are here.
There are three in-class exercises for today. If you haven't yet, Please start by setting up the jGrasp and JDK software. You will need to follow the directions (linked to the left) to download the becker.jar file, and set the paths in jGrasp.
The next step will be to download the class files, and exercise instructions in a subfolder of your BIT115 folder. Today will show you how to get started on a piece of code, but more importantly, you will have practice debugging and predicting the behavior of a computer program. Mastering these tools is what will allow you to master BIT115.
Today's lecture covers the basics of Java. We will learn more about the components that make up the Java Language. Lecture notes are here.
There are three in-class exercises for today.
There are, again, a few exercises today. You will trace a program, debug a program, and write some code. Please download the following information, and get started with exercise 1.Exercise directions
Assignment amnesty: due to late registrations and moving rosters you will have until this Friday to address any issues with Canvas, or submit any of the first two week's assignments. These assignments will not be accepted after Friday, so log into Canvas and see where you stand.
This class is the beginning of writing flexible code: We learn decision points. Lecture notes are here.
Files and instructions for in class exercises are below. You should spend time working on these exercises in class, and will also want to be sure to complete this week's mini assignment.Instructions
We review while loops and discuss primitive data types and declaring variables. Lecture notes are here.
In class exercises:ICE 5 instructions
In this lecture we will be continuing to work on use of local variables and while loops. We will also cover predicate methods, which are useful for use in control-statements such as if/else and while loops. Lecture notes are here.Exercise instructions
Today's class covers parameter variables. Lecture notes are here.
You should also look at this completed version of WalkDownWalls for examples of comments. Future assignment will require commenting.
As usual, exercises and java files are below.
In today's lecture we will be looking at printing information to the console window. This is really simple, and amazingly useful. Not only is it a step towards making your programs do real things, but, it can be quite useful as a debugging device (print out a value to double check that it is what you think it is. In class exercises below. Lecture notes are here.
Practice: Start with the "Hello World" class. Change the code so that it prints out your name. Refer to the slide on formatting characters, and use
this information to print out the line with the numbers with tab-intervals.
We will also talk about Strings. Lecture notes are here. Here are some some string example files.String Demo,
Today's class covers getting user input. Lecture notes are here.
We talk about class variables. Lecture notes are here. As usual, exercises and java files are below.Exercise instructions and example trace, and another.
Today we discuss overriding methods. Methods from a super class are inherited by a subclass, and can be overridden to behave more specifically to the subclass. Overriding allows java to be polymorphic Additionally we will look at making programs using multiple classes and files. Lecture notes are here.
If you are interested in more information about classes, there is a lot of information here: http://www.javaworld.com/article/2979739/learn-java/java-101-classes-and-objects-in-java.html
New types of loops - for loops. Lecture notes are here.Exercise Description
Review and test. Please bring pencils.
Introduction to Arrays: We will cover arrays as objects, and using arrays as parameters. Lecture notes are here.Exercise Description, and and more exercises.
More arrays. In this class we will be covering some more details, including examples of arrays of objects, processing arrays, and passing arrays around. Lecture notes are here.In class exercises are here: Basic array exercises, and Array parameters, and Array passing exercises. Java files for Fill Array, Find in Array, Find Max, Print Array, Array Methods, Array Loops
In class exercises for today are to review your previous assignments and tests.
FINAL EXAM > Please bring pencils!
We will review the final exam, and reinforce your mastery of these topics.
(And, yes, attendance will be taken.)
|Lecture||Date||Topics||Reading / Assignments|
|1||Monday, March 26||Course Intro
Karel the Robot
|2||Wednesday, March 28||Compiling and Executing
Types of bugs
Debugging and debug tables
Tracing a program
|Ch. 1.5 & 1.4|
|3||Monday, April 2||Variables, Methods|| Ch. 1.4, 1.7,
Ch. 2.1, 2.2, 2.4
|4||Wednesday, April 4||Extending a class|| Ch. 1.4, 1.7,
Ch. 2.1, 2.2, 2.4
Homework 1 due
|5||Mon. April 9||Decision Points: 'if' and 'if-else'||Chapter 4.1, 4.2, 4.4|
|6||Wed. April 11||Repeating Statments - 'while' loops
Data types and temporary memory.
|Chapter 4.1, Chapter 5.2 & 5.8|
|7||Mon. April 16||Counting while loops
|Chapter 4.1, 4.2, 4.4, 4.5|
|8||Wed. April 18||Arguments to Methods (Parameters)||Ch. 4.6, 6.2
Homework 2 due
|9||Mon. April 23||Review||
Test 1: bring pencils
|10||Wed. April 25||Printing to the console
Strings and enumerated types
|11||Mon. April 30||Getting User input
Homework 1 Resubmission
|12||Wed. May 2||Instance Variables
|13||Mon. May 7||Over-riding inherited Methods
Programs in Multiple files
|Ch. 6.2 & 4.4|
Homework 3 due
|14||Wed. May 9||For loops|
|15||Mon. May 14||Review||Test 2: bring pencils
Homework #2 Resubmission
|16||Wed. May 16||Arrays||Ch. 10-3
Homework 4 due
|17||Mon. May 21||Arrays as Parameters
Arrays as Return Values
|18||Wed. May 23||Array tricks & details
Arrays of Objects
|NL||Mon. May 28||No Lecture Today|
|19||Wed. May 30||Review for Final Exam.||Homework 5 due|
|20||Mon. June 4||Bring pencils.||FINAL CUMULATIVE EXAM
Homework 3 resubmission
|21||Wed. June 6||Review Final Exam||Attendance is taken.
All Assignment Re-writes Due
Homework Assignments: There are five homework assignments worth 75 points each. Each assignment is due at 11:59 on the due date. Each assignment may be resubmitted once after it is graded to re-write portions. The final grade will be the best out of the two grades.Homework Assignment 1
Exercise your Fundamentals
This homework will contain a series of exercises to reinforce the concepts from the first portion of this course. The homework description and links to necessary files is here.
This homework will contain exercises to reinforce concepts of class extensions and conditional statements. The homework description and links to necessary files is here.
Non-robot code that interacts with the user. You should complete this assignment with a partner. The homework description and necessary file is here.Homework Assignment 4
MazeBot: In this assignment you will create a new class of Robot that can navigate a randomly generated maze. The product of this assignment is one java program. The initial program and directions may be found below. Assignments will be handed in via Canvas.Some hints:
Histograms and Guessing Games. In this assignment you will create one robot code (Histograms!), and one non-robot code (GuessingGames!). These projects will allow users to practice a variety of concepts from this quarter, as well as focus on understanding arrays. The successful programs will be fully commented and documented. You are encouraged to work in teams of two or three. Your submission will include three java files.The homework description and links to necessary files is here.