Lecture 0 CSIS10A Overview Welcome to CSIS10A (5

Lecture 0 CSIS10A Overview Welcome to CSIS10A (5

Lecture 0 CSIS10A Overview Welcome to CSIS10A (5 mins) Typical format for class meetings New material first (monitors off, notebooks out) Practice new material (like a lab) Syllabus Aim of this course (learning Java) Course assumes no prior knowledge of programming. What is a program? A set of step-by-step instructions

that directs a computer to solve some problem. Pretty much anything you can do with a computer, you can do by programming in Java Do introductions (15 mins) class website: www.mpcfaculty.net/tom_rebold/CSIS10A.htm Click on "Tell me about yourself" Name Major and what year Why taking the course

Something unique about yourself then we go around and tell each other Do administrative stuff (10 mins) Few if any handouts will be printed. They will be posted on the web instead. No late work (model solutions, quick turnaround) For conflicts with class meetings: let me know now! We will use the online textbook JavaNotes by Eck Textbook does not always line up with class, but is a great reference I will provide notes for each lab.

We will use online labs by Michael Kowalczk, used with permission. We will thank him at the end of class! Academic dishonesty Office hours, and by appointment Computer science tutor will be available Steve Bruemmer our instructional tech, 9-5 most days Do PB & J demonstration (20 mins) Get into groups and write up instructions (10 mins) Present the results and have me follow those

directions (10 mins) PBJ Debrief Talk about observations; similarities to programming

Explicitness Sequence, selection, repetition Dependencies - when does order matter? Closing open files and stuff What is a basic command? Unexpected uses of software Infinite loops Course will be challenging, fun, painful at times much like making a sandwich But, you will make yourself more marketable or may get sold on computer science!

Basic computer anatomy What the parts do CPU ``The brain''; performs relatively basic operations It only executes machine language The machine language varies from CPU to CPU Storage Primary storage/random-access memory/RAM/``memory'' Fast, but volatile and expensive

Secondary storage/hard drive/hard disk Cheap and non-volatile, but slow Input devices (the ``I'' in ``I/O'') Mouse, keyboard Output devices (the ``O'' in ``I/O'') Monitor, speakers, printer How hardware relates to programming Your .java program files are files, therefore found

on the hard drive (typically) Programs need to run fast, so the computer uses primary memory for programs that are currently running. There are ways to communicate with I/O devices in Java. Communicating instructions to the computer Problem: We want to give instructions to the CPU, but the CPU's language is hard for humans to read, write, and understand. How do we handle this? One (painful) solution: Just program in machine code

Why is this so painful? Just note this C code: main() { printf("hello, world"); } does the same thing as the machine code on the next slide. Since machine code depends on the CPU, the program would only work on a limited number of machines anyway "Hello World" program in machine code 127 69 76 70 1 1 1 0 0 0 0 0 0 0 0 0 2 0 3 0 1 0 0 0 224 130 4 8 52 0 0 0 88 7 0 0 0 0 0 0 52 0 32 0 7 0 40 0 28 0 25 0 6 0 0 0 52 0 0 0 52 128 4 8 52 128 4 8 224 0 0 0 224 0 0 0 5 0 0 0 4 0 0 0 3 0 0 0 20 1 0 0 20 129 4 8 20 129 4 8 19 0 0 0 19 0 0 0 4 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 128 4 8 0 128 4 8 188 4 0 0 188 4 0

0 5 0 0 0 0 16 0 0 1 0 0 0 188 4 0 0 188 148 4 8 188 148 4 8 8 1 0 0 12 1 0 0 6 0 0 0 0 16 0 0 2 0 0 0 208 4 0 0 208 148 4 8 208 148 4 8 208 0 0 0 208 0 0 0 6 0 0 0 4 0 0 0 4 0 0 0 40 1 0 0 40 129 4 8 40 129 4 8 32 0 0 0 32 0 0 0 4 0 0 0 4 0 0 0 81 229 116 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0 4 0 0 0 47 108 105 98 47 108 100 45 108 105 110 117 120 46 115 111 46 50 0 0 4 0 0 0 16 0 0 0 1 0 0 0 71 78 85 0 0 0 0 0 2 0 0 0 2 0 0 0 5 0 0 0 3 0 0 0 6 0 0 0 5 0 0 0 1 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 68 0 0 0 0 0 0 0 221 0 0 0 18 0 0 0 46 0 0 0 0 0 0 0 54 0 0 0 18 0 0 0 53 0 0 0 164 132 4 8 4 0 0 0 17 0 14 0 1 0 0 0 0 0 0 0 0 0 0 0 32 0 0 0 21 0 0 0 0 0 0 0 0 0 0 0 32 0 0 0 0 95 74 118 95 82 101 103 105 115 116 101 114 67 108 97 115 115 101 115 0 95 95 103 109 111 110 95 115 116 97 114 116 95 95 0 108 105 98 99 46 115 111 46 54 0 112 114 105 110 116 102 0 95 73 79 95 115 116 100 105 110 95 117 115 101 100 0 95 95 108 105 98 99 95 115 116 97 114 116 95 109 97 105 110 0 47 115 47 103 99 99 45 51 46 52 46 52 47 105 51 56 54 95 99 101 110 116 52 48 47 108 105 98 0 71 76 73 66 67 95 50 46 48 0 0 0 0 2 0 2 0 1 0 0 0 0 0 0 0 1 0 1 0 36 0 0 0 16 0 0 0 0 0 0 0 16 105 105 13 0 0 2 0 115 0 0 0 0 0 0 0 160 149 4 8 6 5 0 0 176 149 4 8 7 1 0 0 180 149 4 8 7 2 0 0 85 137 229 131 236 8 232 97 0 0 0 232 184 0 0 0 232 179 1 0 0 201 195 0 255 53 168 149 4 8 255 37 172 149 4 8 0 0 0 0 255 37 176 149 4 8 104 0 0 0 0 233 224 255 255 255 255 37 180 149 4 8 104 8 0 0 0 233 208 255 255 255 49 237 94 137 225 131 228 240 80 84 82 104 20 132 4 8 104 192 131 4 8 81 86 104 148 131 4 8 232 191 255 255 255 244 144 144 85 137 229 83 232 0 0 0 0 91 129 195 151 18 0 0 82 139 131 252 255 255 255 133 192 116 2 255 208 88 91 201 195 144 144 144 144 144 144 144 144 144 144 144 85 137 229 131

236 8 128 61 196 149 4 8 0 116 12 235 28 131 192 4 163 192 149 4 8 255 210 161 192 149 4 8 139 16 133 210 117 235 198 5 196 149 4 8 1 201 195 144 85 137 229 131 236 8 161 204 148 4 8 133 192 116 33 184 0 0 0 0 133 192 116 24 199 4 36 204 148 4 8 232 124 124 251 247 141 182 0 0 0 0 141 191 0 0 0 0 201 195 144 144 85 137 229 131 236 8 131 228 240 184 0 0 0 0 131 192 15 131 192 15 193 232 4 193 224 4 41 196 199 4 36 168 132 4 8 232 20 255 255 255 201 195 144 144 85 137 229 87 86 83 131 236 12 232 0 0 0 0 91 129 195 214 17 0 0 232 190 254 255 255 141 131 24 255 255 255 141 147 24 255 255 255 137 69 240 41 208 49 246 193 248 2 57 198 115 22 137 215 137 246 255 20 178 139 77 240 41 249 70 193 249 2 57 206 137 250 114 238 131 196 12 91 94 95 201 195 137 246 85 137 229 87 86 83 232 0 0 0 0 91 129 195 133 17 0 0 141 131 24 255 255 255 141 187 24 255 255 255 41 248 193 248 2 131 236 12 141 112 255 235 5 144 255 20 183 78 131 254 255 117 247 232 54 0 0 0 131 196 12 91 94 95 201 195 144 144 144 144 144 144 144 144 144 144 85 137 229 83 131 236 4 187 188 148 4 8 161 188 148 4 8 235 7 131 235 4 255 208 139 3 131 248 255 117 244 88 91 93 195 144 85 137 229 83 232 0 0 0 0 91 129 195 23 17 0 0 80 232 150 254 255 255 89 91 201 195 0 0 3 0 0 0 1 0 2 0 104 101 108 108 111 44 32 119 111 114 108 100 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 1 0 0 0 36 0 0 0 15 0 0 0 86 0 0 0 12 0 0 0 152 130 4 8 13 0 0 0 132 132 4 8 4 0 0 0 72 129 4 8 5 0 0 0 212 129 4 8 6 0 0 0 116 129 4 8 10 0 0 0 125 0 0 0 11 0 0 0 16 0 0 0 21 0 0 0 0 0 0 0 3 0 0 0 164 149 4 8 2 0 0 0 16 0 0 0 20 0 0 0 17 0 0 0 23 0 0 0 136 130 4 8 17 0 0 0 128 130 4 8 18 0 0 0 8 0 0 0 19 0 0 0 8 0 0 0 254 255 255 111 96 130 4 8 255 255 255 111 1 0 0 0 240 255 255 111 82 130 4 8 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 148 4 8 0 0 0 0 0 0 0 0 198 130 4 8 214 130 4 8 0 0 0 0 0 0 0 0 200 148 4 8 0 71 67 67 58 32 40 71 78 85 41 32 51 46 52 46 54 32 50 48 48 54 48 52 48 52 32 40 82 101 100 32 72 97 116 32 51 46 52 46 54 45 56 41 0 0 71 67 67 58 32 40 71 78 85 41 32 51 46 52 46 54 32 50 48 48 54 48 52 48 52 32 40 82 101 100 32 72 97 116 32 51 46 52 46 54 45 56 41 0 0 71 67 67 58 32 40 71 78 85 41 32 51 46 52 46 52 0 0 71 67 67 58 32 40 71 78 85 41 32 51 46 52 46 52 0 0 71 67 67 58 32 40 71 78 85 41 32 51 46 52 46 52 0 0 71 67 67 One (bad) solution: Try to make a system where we can just type in instructions with natural language, and have the computer translate that into machine code. Extremely difficult Very ambiguous; for example, in ``I called the guy with the cell phone'' - who is carrying the cell

phone? One (better) solution: Use an intermediate language that is somewhat easy for humans to use (i.e. Pascal, C++, etc.), and have the computer translate that into machine code. This translator is called a compiler. Compiled languages such as C work in this way. Running programs the Java way In Java, the computer simulates an imaginary CPU with very particular specifications. This imaginary CPU is called the Java virtual machine (or JVM).

Java simulates the JVM much like an emulator simulates a Super-Nintendo Main advantage: The same code can be made to run on any machine without modification (see previous slide). Example: Good for Java applets on the web Another advantage: Much better security can be implemented when running code in a virtual machine. Example: again, crucial for Java applets on the web One disadvantage: Simulating the JVM makes the program run slower One caveat: There can actually be variations in your program from machine to

machine, for a number of reasons Different I/O devices Different library implementations (or bugs) Bugs in a JVM implementation (yes, it happens) Source file compiler bytecode The JVM's language is bytecode, which is found inside .class files. The compiler converts java files into class files Class files are not human readable See the bytecode for the HelloWorld.java program

Java source file public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } } Java Bytecode for previous slide 202 254 186 190 0 0 0 49 0 34 1 0 10 72 101 108 108 111 87 111 114 108 100 7 0 1 1 0 16 106 97 118 97 47 108 97 110 103 47 79 98 106 101 99 116 7 0 3 1 0 6 60 105 110 105 116 62 1 0 3 40 41 86 1 0 4 67 111 100 101 12 0 5 0 6 10 0 4 0 8 1 0 15 76 105 110 101 78 117 109 98 101

114 84 97 98 108 101 1 0 18 76 111 99 97 108 86 97 114 105 97 98 108 101 84 97 98 108 101 1 0 4 116 104 105 115 1 0 12 76 72 101 108 108 111 87 111 114 108 100 59 1 0 4 109 97 105 110 1 0 22 40 91 76 106 97 118 97 47 108 97 110 103 47 83 116 114 105 110 103 59 41 86 1 0 16 106 97 118 97 47 108 97 110 103 47 83 121 115 116 101 109 7 0 16 1 0 3 111 117 116 1 0 21 76 106 97 118 97 47 105 111 47 80 114 105 110 116 83 116 114 101 97 109 59 12 0 18 0 19 9 0 17 0 20 1 0 13 72 101 108 108 111 44 32 87 111 114 108 100 33 8 0 22 1 0 19 106 97 118 97 47 105 111 47 80 114 105 110 116 83 116 114 101 97 109 7 0 24 1 0 7 112 114 105 110 116 108 110 1 0 21 40 76 106 97 118 97 47 108 97 110 103 47 83 116 114 105 110 103 59 41 86 12 0 26 0 27 10 0 25 0 28 1 0 4 97 114 103 115 1 0 19 91 76 106 97 118 97 47 108 97 110 103 47 83 116 114 105 110 103 59 1 0 10 83 111 117 114 99 101 70 105 108 101 1 0 15 72 101 108 108 111 87 111 114 108 100 46 106 97 118 97 0 33 0 2 0 4 0 0 0 0 0 2 0 1 0 5 0 6 0 1 0 7 0 0 0 47 0 1 0 1 0 0 0 5 42 183 0 9 177 0 0 0 2 0 10 0 0 0 6 0 1 0 0 0 14 0 11 0 0 0 12 0 1 0 0 0 5 0 12 0 13 0 0 0 9 0 14 0 15 0

1 0 7 0 0 0 55 0 2 0 1 0 0 0 9 178 0 21 18 23 182 0 29 177 0 0 0 2 0 10 0 0 0 10 0 2 0 0 0 16 0 8 0 17 0 11 0 0 0 12 0 1 0 0 0 9 0 30 0 31 0 0 0 1 0 32 0 0 0 2 0 33 A source file contains source code and is really just a simple text file. It contains (among other things) instructions for the computer to execute. A ``.java'' ending is used to distinguish it as a Java source file Java files have special structure so that the computer can translate it into machine code. Use a text editor or an IDE (in this class we use BlueJ but you can also use Eclipse) to create source and make changes to it.

We'll make a simple "Hello World" program now!

Recently Viewed Presentations

  • Writing an Individualized Education Program (IEP): Module 1

    Writing an Individualized Education Program (IEP): Module 1

    It answers these questions: ... Provide innovative methods to promote student's achievement. Identify a course of study that promotes college or workforce readiness ... Content of this slide and narrative will be shaped by how the module series is presented,...
  • Warm Up #2 - Weebly

    Warm Up #2 - Weebly

    Over 50 percent of the United States original wetlands have been destroyed. (a) Describe TWO characteristics that are used by scientists to define an area as a wetland. (b) Wetlands are highly productive ecosystems with complex food webs. (i) Complete...
  • The Molecular and Empirical Formula Game

    The Molecular and Empirical Formula Game

    The Molecular and Empirical Formula Game. Can you find the molecular or empirical formula? Question 1. A compound has an empirical formula of ClCH. 2 and its molar mass is 98.96 g/mol. What is the molecular formula of this compound?Cl....
  • Benefit/Cost Analysis Things dont have costs; choices do.

    Benefit/Cost Analysis Things dont have costs; choices do.

    The Five Steps of Benefit/Cost Analysis Vocabulary THE APRON Bella's Decision Live happily with Edward or Jacob Edward Jacob Benefit/Cost - another example Harry Potter Spider Man Keep in mind Your Decisions Your students' decisions Historical Decisions Historical Decisions Historical...
  • Standardized Invoice Training - origin-sl.michigan.gov

    Standardized Invoice Training - origin-sl.michigan.gov

    Form 5101A-2 has been modified and 'truncated'. The form now only documents the hours, fixed fee amounts, and the total contract amount for the prime consultant and each subconsultant. Labor costs, Overhead costs, FCCM costs and Direct Expenses were removedfrom...
  • Frog and Toad All Year Vocabulary The pebble

    Frog and Toad All Year Vocabulary The pebble

    Field Mouse ventured to new places. ventured. Went somewhere new. Say the word. ventured . ... An author of a poem or a movie actor. Toad and Frog were both unselfish. unselfish. When you share with others. Say the word....
  • CS376 Introduction

    CS376 Introduction

    Mobile Computing & Communication January 20, 2009 * Based on slides of Prof. Scott Klemmer, Stanford
  • What is the Point? Jennifer Rigby Cardinal Ph.

    What is the Point? Jennifer Rigby Cardinal Ph.

    Conners Behavior Rating Scale (CBRS) Continuous performance Test CPT 3. NEPSY II: A developmental Neuropsychological Assessment (NEPSY 2) Test of Memory and Learning Second Edition(TOMAL 2) Comprehensive Trail Making Test (CTMT) Wechsler Intelligence Scale For Children Fifth Edition (WISC 5)