Today's lecture covers the Java language and Robot basis for learning programming. First programming language graphic
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.
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.
When we use output we add a column to our trace table to record the output. You should practice tracing through the output demos below.
Please do this by downloading a new trace table, and tracing as we did last week, but including any output information.
Hello World, and Output_demo
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.
Use the ICE_02_02_Trace code you looked at last week (ICE_02). Add statements to print the position of the robot in the beginning, at the pickThing() line, the putThing() line, and at the end. Compare these print statements with the entries on your trace table - they should match. As an added challenge, print out the location of the Thing at the end of the program. (Save this code - you will submit it for mini-assignment 2.)
Lecture notes are here.
Please note that the first test, worth 50 points, is on Thursday. This test will cover things like the structure of a java program, tracing some code, and debugging some code. This test will not take the entire class period.
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
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
First up - TEST!
We review while loops and discuss primitive data types and declaring variables. Lecture notes are here.
Due to the test today, we may not have time to work through the following exercises. However, I encourage you to give them a try - we will be revisiting them in the coming week.ICE 5 instructions
|Lecture||Date||Topics||Reading / Assignments|
|1||Tuesday, March 28||Course Intro
Karel the Robot
|2||Thursday, March 30||Compiling and Executing
Types of bugs
Debugging and debug tables
Tracing a program
| Ch. 1.5 & 1.4
|3||Tuesday, April 4||Printing to the console
|4||Thursday, April 6||Extending a class|| Ch. 2.1, 2.2, 2.4
|5||Tuesday, April 11||Decision Points: 'if' and 'if-else'||Chapter 4.1, 4.2, 4.4
Assignment 1 due.
|6||Thursday, April 13||Repeating Statments - 'while' loops
Data types and temporary memory.
|Chapter 4.1, Chapter 5.2 & 5.8
Test 1: Java Fundamentals
|7||Tuesday, April 18||Counting while loops
|Chapter 4.1, 4.2, 4.4, 4.5
|8||Thursday, April 20||Arguments to Methods (Parameters)||Ch. 4.6, 6.2
|9||Tuesday, April 25||Reading User Input||Ch. 9.4-9.5|
|10||Thursday, April 27||Review||Test 2: Extending classes
|NL||Tuesday, May 2||No Lecture Today|
|11||Thursday, May 4||Instance Variables
|12||Tuesday, May 9||Srings and enumerated types||C. 7-7.3|
|13||Thursday, May 11||Over-riding inherited Methods
Programs in Multiple files
|Ch. 6.2 & 4.4
|14||Tuesday, May 16||For loops||
Assignment 2 due.
|15||Thursday, May 18||Review||Mini #8
Test 3: Class Attributes
|16||Tuesday, May 23||Arrays||Ch. 10-3|
|17||Thursday, May 25||Arrays as Parameters
Arrays as Return Values
|18||Tuesday, May 30||Array tricks & details
Arrays of Objects
Assignment 3 due.
|19||Thursday, June 1||Review for Final Exam.||Mini #10|
|20||Tuesday, June 6||Bring pencils.||FINAL CUMULATIVE EXAM|
|21||Thursday, June 8||Review Final Exam||Attendance is taken.
All Assignment Re-writes Due
Download the FindErrors.java file, which is provided for you as part of today's In Class Exercises.
You should record each and every error that you find in your own copy of the Program Debug Table (which you should download from the course website).
You should also save your own personal copy of the Program Debug Table (name it FindErrors or something similar), and record the errors that you find in that. Submit a copy of the completed debug file via Canvas.
Download the ICE_02_02_Trace.java file, which is provided for your as part of today's exercises.
You should download a copy of the Program Trace Table from the course website, and use this table to trace every line in the ICE_02_02_Trace code.
You should save your own personal copy of this trace table (use an informative name), and submit a copy of the completed table via Canvas.
Today's assignment will require the submission of two pieces of code. You may submit them together, or as you complete them. Please upload the files with the ".java" extension. Code should compile as it is submitted. You should also upload the debug table from today's exercises.
Submit the modified ICE_02_02_Trace code that you created on Tuesday. The new version should include output statements showing the robot positions. (10pts)
Submit the WalkDownWalls code that you were working on today; please submit anything you have completed. (10pts)
Submit the debug table completed during today's exercises. (5pts).
Homework Assignments: There are three homework assignments worth 100 points each. You are strongly encouraged to work on these assignments with a partner. Each partner will recieve the same grade. 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 re-enforce the concepts from the first portion of this course. The homework description and links to necessary files is here.Homework Assignment 2
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, and one document the details the solution contained in the 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.