CSC 142: Difference between revisions
From charlesreid1
| Line 90: | Line 90: | ||
==Section 1.4: Procedural Decomposition== | ==Section 1.4: Procedural Decomposition== | ||
===Materials=== | |||
Decomposing complexity: | Decomposing complexity: | ||
| Line 116: | Line 118: | ||
* Flow control allows you to abstract away detail | * Flow control allows you to abstract away detail | ||
* Example runtime error | * Example runtime error | ||
===Definitions=== | |||
* Decomposition | |||
* Iterative enhancement | |||
* Static method | |||
* Method call | |||
* Flow control | |||
===Life Skills=== | |||
Life skills track: | Life skills track: | ||
| Line 121: | Line 133: | ||
(Give them a crypto puzzle, but we haven't introduced any crypto or codes just yet) | (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 | |||
Revision as of 05:30, 29 August 2016
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