2-1 Hardware CPU Memory - 2 kinds Network Graphics Input and Output Devices
Everything is Binary Eniac 1950 Eniac contained 17,468 vacuum tubes, 7,200 crystal diodes, 1,500 relays, 70,000 resistors, 10,000 capacitors and around 5 million hand- soldered joints. It weighed more than 30 short tons (27 t), was roughly 8 by 3 by 100 feet (2.4 m × 0.9 m × 30 m), took up 1800 square feet (167 m2), and consumed 150 kW of power 2-2
2-3 The First “Bug” “(moth) in relay” Mark II Aiken Relay Calculator (Harvard University, 1945)
Bits and Bytes KB MB GB TB PB HB? 1-4
Numbers and Letters Numbers are represented in base Keystrokes are represented with ASCII ‘A’ = 65 = ‘B’ = 66 ‘C’ = 67 ‘a’ = 97 ‘b’ =
1-6 Gates AND gateOR gateNOT gate
1-7 Example: XOR Circuit A AND (NOT B) OR (NOT A) AND B
2-8 Software Instructions to CPU / Hardware Binary Assembly Language High Level Languages
2-9
2-10 Programming Languages Machine code Assembly languages Fortran Basic Pascal Scheme CC++ Java LISP Smalltalk Smalltalk-80 C# Logo Python
2-11 Software Development Emphasis on efficiency fast algorithms small program size limited memory use Often cryptic code Not user-friendly Emphasis on programmer’s productivity team development reusability of code easier maintenance portability Better documented User-friendly 's:Now:
Java and BlueJ Java is our programming language, currently owned by Oracle. We need to download the Java JDK (Java Development Kit) from their website BlueJ is our IDE (Integrated Development Environment) in which we will write our Java code. It is very simple, free, and works on both Mac and PC. It has an editor, compiler, and debugger. 1-12
2-13 Java’s Compiler + Interpreter Editor Hello.java Compiler Hello.class Interpreter Hello, World ! Interpreter
2-14 Why Bytecodes? Platform-independent Load from the Internet faster than source code Interpreter is faster and smaller than it would be for Java source Source code is not revealed to end users Interpreter performs additional security checks, screens out malicious code
2-15 // Mike Bollhorst // Aug 17, 2015 // Hello: my first program - prints hello world on screen public class Hello { public static void print() { System.out.println(“Hello world!”); }