CSC 142/Chapter 1: Difference between revisions
From charlesreid1
| Line 125: | Line 125: | ||
==Chapter 1 Summary== | ==Chapter 1 Summary== | ||
===Deliverables=== | ===Deliverables=== | ||
| Line 181: | Line 150: | ||
* Spotting the error | * Spotting the error | ||
* Red herring: error, plus (unclear) compiler output | * Red herring: error, plus (unclear) compiler output | ||
===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 | |||
===Notes=== | |||
Worksheet: | |||
* Definitions form book on one side (definitions are quiz material) | |||
Source code: | |||
* (procedural programming) program source code on the other (foo bar fizz buzz baz) | |||
In-class worksheets: | |||
* Hand out some source code | |||
* N bugs, find N bugs (self-work) | |||
* Discuss program flow with partner (group work) | |||
* How to represent this program in a clear and concise way? | |||
* If we transform improper names to proper names, may add some sensibility (transform foo bar fizz buzz baz into get ready for school) | |||
Lecture material: | |||
* 1.5 parts, broad brush-stroke over chapter 1, create expectations that they know definitions and material from the book | |||
* EXCLUSIVELY FOCUS ON MATERIAL FROM THE BOOK - they should have no doubt about where material is going to come from | |||
* Majority of time spent on in-class exercises, looking at source code, etc. | |||
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... | |||
At the beginning: the class will not be "hard," but it will be a lot of work. You need to be reading, memorize definitions, do your homework, etc. Don't let it slide. | |||
==Chapter 1 Code== | ==Chapter 1 Code== | ||
Revision as of 20:14, 2 September 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
- Console window/command line
1995: Oracle: "Java: A simple, object-oriented, network-savvy, interpreted, robust, secure, architecture-netural, portable, high-performance, multithreaded, dynamic language."
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
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)
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 into 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
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
Functions and program flow
- How to follow the flow of a program through multiple (nested) function calls
- When to use a static method or static class
- How to follow a nested program
- How to break up a task into less complex parts, with reusability
- Translate between procedure and function
Errors and logical problems
- Spotting the error
- Red herring: error, plus (unclear) compiler output
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
Notes
Worksheet:
- Definitions form book on one side (definitions are quiz material)
Source code:
- (procedural programming) program source code on the other (foo bar fizz buzz baz)
In-class worksheets:
- Hand out some source code
- N bugs, find N bugs (self-work)
- Discuss program flow with partner (group work)
- How to represent this program in a clear and concise way?
- If we transform improper names to proper names, may add some sensibility (transform foo bar fizz buzz baz into get ready for school)
Lecture material:
- 1.5 parts, broad brush-stroke over chapter 1, create expectations that they know definitions and material from the book
- EXCLUSIVELY FOCUS ON MATERIAL FROM THE BOOK - they should have no doubt about where material is going to come from
- Majority of time spent on in-class exercises, looking at source code, etc.
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...
At the beginning: the class will not be "hard," but it will be a lot of work. You need to be reading, memorize definitions, do your homework, etc. Don't let it slide.
Chapter 1 Code
Lecture Code
Fake rocket code - DrawFig
- Ascii draw a rocket
- From Reges and Stepp
- No patterns/functions until next section
- Cover exceptions
- Tie in with the Java API, let them know it exists and where it is, we'll talk more about it and how to use it in the future
Real rocket code - Vertical (solve a basic equation)
- Good to keep math at the forefront. Just throwing it out there.
Worksheet Code
Density code, DensityConversion code
- Description: write a program that prints a physical property of your choice for ten different chemical compounds (in metric units). Write another program that prints the physical property of your choice (in English units).
- Example: Look up densitiy, (g/cm3). Program to print 10 densities, in g/cm3. Then, program to convert to lb/ft3, and print 10 densities, in lb/ft3.
- Specifications: Your program must print a banner or header that states the physical property. Your program must print the (correct) units of the physical property.
- Submitting: Deliverables, what to turn in, what NOT to turn in, what format, how, when, with what
Homework Code
(What homework problems?)
Chapter 1 Goodies
Profiles
- James Gosling - Oracle, tech companies, open source vs. enterprise, hackers vs suits
- Grace Hopper
Quotes
A great example of this principle is the Linux operating system, which contains millions of lines of code. It started out as a simple program Linus Torvalds used to explore the Intel 80386 chip. According to Larry Greenfield in The Linux Users' Guide, "One of Linus's earlier projects was a program that would switch between printing AAAA and BBBB. This later evolved into Linux.- Think Java
Puzzle 1
How the puzzles work:
- Follow along, we'll cover material you need after the fact
- If you can figure the puzzle out ahead of time, can get extra credit
- If you are having trouble getting started, prior puzzles may provide hints
Puzzle 1:
- No points, getting them started
public class Something {
public static void main(String[] args) {
System.out.println("The secret word is xyz");
}
}
Flags
| CSC 142 - Intro to Programming I Computer Science 142 - Intro to Programming I, South Seattle College.
Chapter 1: Intro to Java CSC 142/Chapter 1 Chapter 2: Primitive Data and Definite Loops CSC 142/Chapter 2 Chapter 3: Parameters and Objects CSC 142/Chapter 3 Chapter 4: Conditional Execution CSC 142/Chapter 4 Chapter 5: Program Logic and Indefinite Loops CSC 142/Chapter 5 Chapter 6: File Processing CSC 142/Chapter 6 Chapter 7: Arrays CSC 142/Chapter 7 Chapter 8: Classes CSC 142/Chapter 8
Puzzles: Puzzles
Category:Teaching · Category:CSC 142 · Category:CSC Related: CSC 143 Flags · Template:CSC142Flag · e |