Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
COP3502 Programming Fundamentals for CIS Majors 1 Instructor: Dr. Parisa Rashidi Objectives Computer basics What is Java? API, Write IDE, and JDK a simple program in Java Console output GUI Understand the basic syntax of Java Computing Basics Hardware, software, etc. Computer Anatomy Hardware Operating Systems Software From Wikipedia, the free encyclopedia Hardware Anatomy Basic hardware components of a computer CPU Memory Storage I/O (Input/Output) Communication devices Storage Devices Memory Communication Devices CPU BUS Input Devices Output Devices CPU CPU = Central Processing Unit Speed 1 measured in MHz MHz = 10^6 pulses per second Executes instructions retrieved from memory Memory We are talking about RAM Random Access Memory Volatile Stores A data sequence of bytes Each byte = 8 bits Each bit can be 0 or 1 23 100 67 A P P L E X 32 2 @ $ 76 X 89 120 D T D Byte 0 0 0 0 0 0 1 0 (8 bits) Bit Memory (sequence of bytes) Memory All data is encoded as 0-1 Byte = minimum storage unit Large numbers are stored in more than 1 byte Memory Address Memory Content . . . . . 2000 0 1 0 0 1 0 1 0 Encoding for character ‘J’ 2001 0 1 1 0 0 0 0 1 Encoding for Character ‘a’ 2002 0 1 1 1 0 1 1 0 Encoding for character ‘v’ 2003 0 1 1 0 0 0 0 1 Encoding for Character ‘a’ 2004 0 0 0 0 0 0 1 0 Encoding for number 2 . . . . Memory Quick Byte reminder = minimum storage unit KB = 10^3 Bytes MB = 10^6 Bytes GB = 10^9 Bytes TB = 10^12 Bytes PB = 10^15 Bytes Storage Memory Store is volatile programs & data on non-volatile devices Hard disks (now TB) CD (700 MB) DVD (4.7 GB) Blu-ray (25-100 GB) USB Flash drive (now 256 GB) Output Monitor Display Quality Resolution number of pixels per square inch 1024 by 768 Dot pitch E.g. amount of space between pixels Dot pitch Communication Modem Uses a phone line Speed = 56,000 bps (bits per second) DSL Uses phone line 20 times faster than modem Cable modem Uses TV cable line Speed same as DSL NIC Used in local area networks E.g. 10BaseT has speed of 10 Mbps Operating System Controls all programs Manages hardware resources Examples Windows Ubuntu MacOS 7 Class Issues Textbook Lab sections Mailing List W. 8-9 (3-5 pm) W. 10-11 (5-7pm) Th. 2-3 (3-5 pm) Th. 10-11 (5-7 pm) any section W. 2-3 Programming Languages Basics Programming Languages Every operating system, application and mobile app has been written in some programming language Popular High level Languages There are many programming languages COBOL (1959) FORTRAN (1957) BASIC (1964) Visual Basic (1991) Pascal (1970) Delphi (1986) Ada (1980) C (1972) C++ (1983) Objective C (1983) C# (2001, a Java-like language by Microsoft) … Java We will be using Java (1991) Duke: Java’s Mascot Some Java Programs Some famous applications written in Java Mars exploration rover Hubble telescope Vuze Minecarft Android (mostly) Programming Languages High level language (Java) Assembly Language Machine language Difficulty of programming • High level languages • Assembly Language • Machine Language Machine Language Machine language The language of CPU Each CPU family has its own instruction set Patterns of bits corresponding to different commands E.g. To add two numbers instruction: 1101101010011010 Assembly Language Assembly language Easier than machine language E.g. To add two numbers instruction: mov ax, a add ax, b mov c, ax Yet not so easy! Assembler Assembly Code mov ax, a add ax, b mov c, ax Machine Language Code 0000111 0000101 1100011 0011111 1110000 High level Languages High level languages Easiest to program English like syntax E.g. To add two numbers in Java c = a + b; Library Code Machine Language Code High Level Source Code Compiler Machine Language Code Linker Example Program //This program prints Welcome to Java! public class Welcome { public static void main(String[] args) { System.out.println("Welcome to Java!"); } } Run Run Program 1. Compile: javac Welcome.java Run 2. java Welcome Caution: no .class at the end of Welcome! Java Basics Why Java? Allows you to develop and deploy applications on Internet for servers desktop computers small hand-held devices Why Java? Applets Java History Developed by James Gosling at Sun Microsystems First named Oak Later named Java 1995 HotJava The first Java-enabled Web browser Write once, run anywhere Some Terms Java = Language specification + API Specification: technical definition of the language (semantic + syntax) API: contains predefined libraries for developing java programs JVM = Java Virtual Machine JDK = Java Development Kit IDE = Integrated Development Environment Java IDE Makes writing & managing large scale programs Eclipse Open Source by IBM easier NetBeans Open Source by Oracle BlueJ … JDK Versions JDK = Java Development Kit JDK 1.02 (1995) JDK 1.1 (1996) JDK 1.2 (1998) JDK 1.3 (2000) JDK 1.4 (2002) JDK 1.5 (2004) a. k. a. JDK 5 or Java 5 JDK 1.6 (2006) a. k. a. JDK 6 or Java 6 JDK 1.7 (2010) a. k. a. JDK 7 or Java 7 JDK Editions 1. 2. 3. Java Standard Edition (Java SE) client-side standalone applications or applets. Java Enterprise Edition (Java EE) server-side applications such as Java servlets and Java Server Pages (JSP). Java Micro Edition (Java ME). applications for mobile devices We use Java SE. Java is Simple Object-Oriented Distributed Robust Secure Architecture-Neutral Portable Performance Agenda Homework 1 is posted Due next Friday Programming assignment 1 is posted Due next Friday Source code available on website No class on Monday (Holiday) Last Class Programming languages Java Simple program javac nameOfSourceFile.java java nameOfClassFile Example Program //This program prints Welcome to Java! public class Welcome { public static void main(String[] args) { System.out.println("Welcome to Java!"); } } Run Programming in Java Today Object Oriented Programming ( OOP) main method Programming syntax OOP Object Oriented Programming ( OOP) A software methodology Great flexibility, modularity, clarity, and reusability Uses “encapsulation”, “inheritance”, and “polymorphism” Everything is Java is an “Object” Object Real world objects Dog, TV set, desk, etc. Every object has “state” and “behavior” Dog object State: name, color, breed, hungry Behavior: barking, fetching, wagging tail In OOP State = “field” Behavior = “method” OOP E.g. Dog class class Dog { ...description of a dog goes here... } Each object (class) has State (Properties or data fields) Behavior (methods) Can have instances Instances Dog - max 2 30 Bark() Eat () Class Name Properties Methods Dog - Name Age Weight Bark() Eat () Dog - cooper 3.5 34 Bark() Eat () Class Example Here is another example of a class: class Window { ... } Here are some examples of Windows: Class Definition Example: class Dog { String name; int age; ...rest of the class... } Data usually goes first in a class Class Class Definition Example: class Dog { … Class Methods usually go after the data void bark() { System.out.println("Woof!"); } } A class may contain methods that describe the behavior of objects First Program Run Packages Groups related classes in the same category How to declare a class is part of a package? package packagename; package MyMathPackage; Unique name Hierarchal package book.chapter1; Packages Many packages in Java API javax.swing java.lang java.util Java.net … How to use a package? import packagename; import book.chapter1.Welcome; Only “Welcome” class is imported. import book.chapter1.*; All classes in chapter1 imported. Run Program Create/Modify Source Code Source code (developed by the programmer) public class Welcome { public static void main(String[] args) { System.out.println("Welcome to Java!"); } } Byte code (generated by the compiler for JVM to read and interpret, not for you to understand) … Method Welcome() 0 aload_0 … Method void main(java.lang.String[]) 0 getstatic #2 … 3 ldc #3 <String "Welcome to Java!"> 5 invokevirtual #4 … 8 return Saved on the disk Source Code Compile Source Code i.e., javac Welcome.java If compilation errors stored on the disk Bytecode Run Byteode i.e., java Welcome Result If runtime errors or incorrect result JVM Usually: the source program must be recompiled on another machine Because the object program can only run on a specific machine. With Java: Compile the source program into bytecode. The bytecode can then run on any computer Which has Java Virtual Machine (JVM) A software that interprets Java bytecode. JVM Class loader Bytecode verifier Java Bytecode Java Virtual Machine Any Computer Program Detail Enter main method //This program prints Welcome to Java! public class Welcome { public static void main(String[] args) { System.out.println("Welcome to Java!"); } } More Examples Welcome1 Run ComputeExpression Run Configuration Set path to JDK bin directory set path=c:\Program Files\java\jdk1.7.0\bin Set classpath to include the current directory set classpath=. Programming Constructs Program Anatomy Comments Reserved words Modifiers Statements Blocks Classes Methods The main method Comments 3 types of comments in Java Line comment // Example // This is a line comment! Paragraph comment /* */ Example /* This is a paragraph comment. It includes multiple lines. */ JavaDoc comments (automatic documentation) /** */ JavaDoc JavaDoc comments (automatic documentation) /** */ Tags starting with @ Reserved Words Reserved words (or keywords) Specific meaning to the compiler Cannot be used for other purposes Keywords in our previous examples class public static void Modifiers A subset of keywords Specify the properties of the data, methods, and classes and how they can be used. Examples we have seen public static Other example modifiers private final abstract protected Statement Represents an action or a sequence of actions Every statement in Java ends with a semicolon ; Examples System.out.println("Hello World!"); a = 8 * 3.14; Blocks A pair of braces in a program grouping components of a program public class Test { public static void main(String[] args) { System.out.println("Welcome to Java!"); } } Class block Method block Class The essential Java construct A template or blueprint for objects A program is defined by using one or more classes. Method A collection of statements that performs a sequence of operations Might accept input Might provide output Input 1 Input 2 Input 3 Output Method What does it look like? Example public returnType name(input1, input2, …) { // Statements; } Method What does it look like? Example Modifier Return Value name Input public int addTwoNumbers(int a, int b) { int c = a + b; return c; } Method What does it look like? Example Modifier Modifier Return Value name Input public static void main(String[] args) { // Statements; } Graphical User Interface Graphical User Interface (GUI) Use the showMessageDialog method in JOptionPane class. JOptionPane is one of the many predefined classes in the Java system, which can be reused rather than “reinventing the wheel.” Graphical User Interface Graphical User Interface (GUI) Example WelcomeInMessageDialogBox Run Graphical User Interface Graphical User Interface (GUI) Example JOptionPane.showMessageDialog (null, "Welcome to Java!", "Display Message", JOptionPane.INFORMATION_MESSAGE); Graphical User Interface Several ways to use showMessageDialog method. 1. Use a statement as shown in the example: JOptionPane.showMessageDialog(null, x, y, JOptionPane.INFORMATION_MESSAGE); where x is a string for the text to be displayed, and y is a string for the title of the message dialog box. 2. The other is to use a statement like this: JOptionPane.showMessageDialog(null, x); where x is a string for the text to be displayed.