CSC 142
From charlesreid1
Chapter 1: Intro to Java
Sections:
1.1 Basic computing concepts
1.2 And now, Java
1.3 Program errors
1.4 Procedural decomposition
1.5 Case study: DrawFigs
Note: the first chapter is definitions-heavy.
Section 1.1: Intro to Java
Definitions
- Algorithm
- Program
- Hardware ("Hardware: the part of the computer that you can kick")
- Software
- Digital
- Binary
- Program execution
- Compiler
- Java Virtual Machine (JVM)
- Java Runtime Environment (JRE)
Material
Things to cover:
- Java class libraries (standard library)
- Java programming environment
- Java Hello World program
- Eclipse editor ("Why can't Java programmers see well?" "Because of the Eclipse.")
- Console window/command line
Quotes
1995: Oracle: "Java: A simple, object-oriented, network-savvy, interpreted, robust, secure, architecture-netural, portable, high-performance, multithreaded, dynamic language."
Life Skills
Life skills track:
- Pay attention and FOCUS
- RTFM
- Follow directions and read carefully
- Whether it's your compiler, or your instructor, or your fellow students - pay attention to what's being said
- Skill will pay off when you start to compile your Java programs
Section 1.2: Java
Materials
Class
- Every program, all Java code, lives in a class
- Class header
- Class methods
- Statements
- String literals
- System.out.println
- Escape sequences
- print vs println
Complex example: draw figures
- ASCII diamond, X, rocket
Code comments, white space, readability:
- Comments
Profiles
- James Gosling - Oracle, tech companies, open source vs. enterprise, hackers vs suits
Section 1.3: Syntax Errors
Material
Different types of errors:
- Where the errors happen - the normal process - (code) --> (compiler) --> (bytecode)
- Errors at compiler level - syntax errors - book lists common syntax errors
- Errors at code level - bugs - errors in the logic of the program (wrong idea, or right idea but implemented wrong)
Pofiles
- Grace Hopper
Section 1.4: Procedural Decomposition
Materials
Decomposing complexity:
- Decomposition concept: split into functions, tasks, subtasks
C is very verb-oriented, action-oriented
Java is very noun-oriented, object-oriented
Procedural programming:
- Function-based, action-based programming
- How to decompose task of baking a cake
- Static methods (help serve function of.......... functions)
Object oriented programming version:
- c = new Cake(); c.make()
- Encapsulating complexity of the object
- Example in book: drawBox, drawTopX, drawBottX
Flow control
- How control changes with function calls
- Objects: with OOP it becomes more complicated to follow the flow of the program
- Procedural programs and interpreted languages: you just start at the top and go from there
- Objects: "when is this code actually used?" (have to dive in to see)
- Learning to follow program flow control
- Flow control allows you to abstract away detail
- Example runtime error
Definitions
- Decomposition
- Iterative enhancement
- Static method
- Method call
- Flow control
Life Skills
Life skills track:
- Cover non-word representations of programs
(Give them a crypto puzzle, but we haven't introduced any crypto or codes just yet)
Section 1.5 : Case Study with DrawFig
Material
Modularization of drawing program
- Breaking int pieces - not just the box, or the x, or the rocket
- but breaking down into common components, common to all parts of the program
- Take hello world program...
- Modularize it, make it reusable...
Chapter 1 Summary
Worksheet: definitions from book on one side (quiz material)
Source code for a procedural program (fizz baz foo bar buzz bam) on the other
There are N bugs, find the N bugs (self-work)
Discuss the program flow with a partner (group work)
How do we represent this program in a clear and concise way?
Transform foo bar into get ready for school - proper names can help clarify understanding
Lecture: broken up into 1.5 parts
- Broad brush-stroke over chapter 1
- Memorize definitions
- Know XYZ for quiz
- Spend a majority of time on in-class exercises
- FOCUS: KNOW HOW TO RUN/SET UP HELLO WORLD
- FOCUS: KNOW DEFINITIONS
- FOCUS: KNOW FUNCTIONS AND PROGRAM FLOW
- FOCUS: KNOW ERRORS/EXCEPTIONS
Quiz/exam/assessment material:
- Hello world, basics, public static void main, syntax
- Definitions matchup
- Functions questions
- Program flow questions
- Exceptions: spot the bug... spot logical errors... spot syntax errors...
Need to make beginnings of class difficult, to send the message that they can't let it slide
Deliverables
Intro to Java
- Know how to set up and run hello world
- How does it work, role of compliler vs editor
- JRE vs JVM vs JDK
- Public static void main
- EEverything is a class
- Filename = class name
- Correct syntax, protected keywords
Definitions
- algorithm, program, hardware/software, digital, binary, program execution, compiler, JVM, JDK, JRE, class header, class methods, statements, string literals, system.out.println, escape chars, print vs println, exception, decomposition, flow control, iterative enhancement, static method