550 likes | 564 Views
Welcome to IIT and cs115!. CS 115 - Secs. 001. Jon Hanrath - SB112B hanrath@iit.edu www.cs.iit.edu/~cs115hanrath. Lecture/Lab: TR 1:00 P.M. –4:00 P.M. SB 112E Lectures will be followed by lab time. Lab assignments are due by the end of class on Thursdays each week.
E N D
CS 115 - Secs. 001 • Jon Hanrath - SB112B • hanrath@iit.edu • www.cs.iit.edu/~cs115hanrath
Lecture/Lab: TR 1:00 P.M. –4:00 P.M. SB 112E Lectures will be followed by lab time. Lab assignments are due by the end of class on Thursdays each week.
CS 115 – Required Textbook • “Java 6 Illuminated: An Active Learning Approach” Second or Third or Fourth Edition, Anderson and Franceschi
CS 115 - Quizzes/Exams & Grading • 1 Quiz –5% of Grade • 2 Exams: • Exam I - Lecture Exam - 15% • Exam II - Lecture Exam - 25% • Final Exam - 35% • Labs - 20% • Must Take Final to Pass Course • Final Grade: • A > 90% • B 80-89.99% • C 70 –79.99% • D 60 – 69.99% • E < 60%
CS115 Labs • Labs Consist of a Reading Assignment, and Lab Exercises from Website • Lab Exercises Comprised of Written Exercises and Programming Exercises • Lab Exercises Due by End of Class Thursdays • Students Receive Full Credit for Attempting Each Problem • Lab Exercises Not Corrected or Handed Back • Labs Graded Either 10 (fully completed), 5 (partially completed), or 0 (not completed)
Expectations • Attendance in Lectures and Labs • Completion of Quizzes and Exams • Four to Six Hours per Week on Homework • Outside Help If Necessary • No Cheating • Have fun!!
Rules • No Swearing or Other Inconsiderate Behavior • Turn Off Cell Phones, iPads, Laptops • Questions, Discussion, Ideas Welcome
Excuses • If You Will Miss an Exam or Quiz, Make Arrangements **BEFORE** the Exam or Quiz Date • Exam, Quiz Dates Already Posted • If Emergency: • Doctor/Hospital Note • Family Problem: Contact Info for Parents
Unacceptable Excuses • Slept Late • Felt Sick • I’m Just a Freshman • Roommate Ate My Alarm Clock/Textbook/Underwear • Missed Bus • Had a Game/Match/Practice • Didn’t Know When Exam/Quiz Was • If Any of Above Happen, Get to Class As SOON as Possible!!!
CS 115 - Ethics • Exams: • Closed Book, Closed Notes, Closed Everything • Nothing in Ears (mp3 players, cell phones, etc.) • Labs Should Be Done Independently
CS 115 – Where to Get Help • www.cs.iit.edu/~cs115hanrath • Internet: Search for “JAVA tutorial”, or “JAVA help” • GET HELP EARLY RATHER THAN LATER!!!
CS 115 – Web Page • http://www.cs.iit.edu/~cs115hanrath • Click on Syllabus • Weekly Assignments • Quiz and Exam Dates • Lecture Slides • Other Course Information
CS115 Labs (Cont) • All Labs Assigned from Website • Work on Labs on Personal PC, or Campus Computers • Save .java File(s) to flash drive, or send to yourself in email and Bring to Lab Section for Discussion and Questions • Hand in assignments by end of class Thursday
Course Philosophy • Computer Science Side • Problem Solving • Logical Thought • Programming in JAVA • “Real World” Side • Human Nature • Corporate World • Surviving during and after College
Problem Solving • CS 115 Develops Logic Skills to Solve Problems by Writing a Program • A Program is a Problem Solving Tool • Computers Follow Instructions Given to Them • Computers Do Not Have “Intuition” • Computers Do Not Make Decisions “on Their Own”
Why Use a Program? • Computers Perform Tasks Many Times Faster than a Person • Computers Are More Consistent than a Person • Computers Can Work 24-7
Terminology • Source Code: the Original Problem-Solving, Logical Solution Written in a Programming Language (e.g. JAVA, .java file) • Interpretation: Converting source code into common language (.class file) • Compiling: the Action of Turning the Source Code into a Format the Computer Can Use • Linking: the Action of Bringing in Already Written Code (Libraries) for Use in a New Program • Executable: the Result of Compiling and Linking a Source Program; the “.exe” file that the Computer Can Run
JAVA Required Elements • Every JAVA Program Must Have: public class MyProgram { public static void main( String [ ] args) { } }
Your First Program • // Jon Hanrath • // CS115 • // Section 042 • public class MyProgram • { • public static void main( String [ ] args) • { • System.out.println(“Hello World!!”); • System.exit(0); • } • }
Writing a JAVA Program • Design • Design Team (Experienced) • Pseudocode • In Practice, 75% of Total Program Time • Program • Java, C++, etc. • Coders (Less Experienced) • Test • Test Team • If Even One Error, Back to Design
What Is Pseudocode? • Every Programmer’s Way of Writing Down Steps in Solving a Problem • Steps in Creating Pseudocode: • Understand the Problem • Decide How to Solve the Problem • Write the Solution Using a Logical Sequence of Statements • Design Issues Apply to almost ANY Vocation
Compiler • Converts Source Code into an Object File or Machine Code • Each Change to Source File Requires a Recompilation • Compiler Detects Syntax Errors • Syntax Error: a Non-Proper, Not Allowable, Sequence of Characters or Words Given a Particular Language
Syntax Errors • Spelling Errors Examples: • Undefined Variable Name • Unrecognized Keyword • Punctuation Errors Examples: • Missing Curly Braces • Missing Semicolons • Malformed Comments • Syntax Errors Are Listed at Bottom of Screen When Compilation Is Complete
Syntax Errors (Cont) • Syntax Errors Are Listed at Bottom of Screen When Compilation Is Completed • First Error in Program May “Cause” Other Errors to Show Up • General Rule: Fix First Error (and Any Obvious Errors); Then Recompile
Logic Errors – “Bugs” • Also Called Semantic or Run-Time Errors • Program Compiles, but Doesn’t Produce the Expected Results • Examples: • Program Keeps Running Forever (Infinite Loop) • Nothing Happens • Program Output Is Incorrect • Error Message at Run Time (e.g. Dividing by 0) • Errors May Be Intermittent • May Be Able to Find Semantic Problems with Debugger
Debugging public class MyProgram { public static void main( String [ ] args) { System.out.println(“Program Begins” ); // first 10 lines of program System.out.println(“ Made it to line 10”); // next 10 lines of program System.out.println(“ Made it to line 20” ); //… and so on System.out.println(“ Made it to line 100” ); } }
Detecting “Bugs” • Running Program Should Be Tested Several Times with Different Inputs • Test Plan – Series of tests (e.g., inputs) that have predetermined expected outputs. • Running Program Should Be Tested Several Times under All Potential Conditions • When Errors Detected: Analysis Needed: Debugging Mechanism
Test Plan • What should the Test Plan contain for a program that accepts numerical input from a user, and outputs the square of the input?
JAVA Packages/Libraries • Over 2000 Libraries Exist • Sometimes Called “Packages” • Java.lang Package Automatically Imported • Import Statements Above First Class • Import Others with import statement import java.util.* //import all classes
Comments • Comments: Describe a Program • // Comment to end of line • /* Comment until first occurrence of star slash */ • Difficult to Understate Importance of Good Comments • Should Be at Beginning of Program (Overall Summary) • Should Be Next to Variable Declaration Briefly Describing Uses of Variable • Should Be Anywhere in Program Where Unobvious Coding Is Performed
Program Format • White Space: • Not Recognized by Compiler • Indent (e.g. 3 Spaces) for Each New Function, Selection, or Loop public class MyProgram{public static void main( String [ ] args){System.out.println(“Hello World!!”);System.exit(0);}} .vs public class MyProgram { public static void main( String [ ] args) { System.out.println(“Hello World!!”); System.exit(0); } }
Variables • Identifiers Used to Store Values that May Change • Every Variable Has a Type : What Kind of Value (e.g., Integer, Floating Point Number, Character) Is Begin Stored • Every Variable Has a Value which Is Assigned and Can Be Changed • Every Variable Must Be Declared, which Sets Aside Memory for the Storage Location
Declaring a Variable • Declaration Normally Comes after a Function Definition Opening Curly Brace: • public class MyProgram { public static void main( String [ ] args) { int num1; //variable declaration num1 = 10; // variable assignment // variable output below System.out.println(“num1 is:” + num1); } } • Declaration Includes Type and the Name of the Variable • All Variables Must Be Declared before Being Used
Variables and Main Memory Main Memory int num; num = 10; num = 15; num <garbage> num 10 num 15
Main Memory • Storage Location of Data in a Computer • Used When a Program Is Running • “Wiped Clean” When Computer Rebooted • Bit: Represents One Wire of Computer (On or Off, i.e., “1” or “0”) • Byte: Basic Unit of Storage (Can Store One Letter of the Alphabet) (8 bits per byte…256 combinations) • Kilobyte (KB): 1000 (or 1024) Bytes (Pages of Text) • Megabyte (MB): 1,000,000 Bytes (Large Pictures) • Gigabyte (GB): 1,000,000,000 Bytes (Music Files, Video Files)
Initialization and Assignment • Initialization: Value Given to Variable at Declaration • Assignment: Value Given to Variable in Execution Statement
Variable Initialization public class MyProgram { public static void main( String [ ] args) { int num1 = 10; //variable initialization System.out.println(“num1 is:” + num1); } }
Built-In (or Primitive) Data Types for Variables • int: Integer Range of Typically –2,147,483,648 to 2,147,483,647 (machine and compiler dependent) • float: Real Number (i.e., integer part, decimal part, and exponent part) Range of Typically (+/-) 10e-45 to 10e38 • double: Larger Real Number ((+/-) 10e-324 to 10e308) • char: Character
Naming Variables in JAVA: Identifiers • Can Use Letters: Remember That JAVA is Case Sensitive (e.g., NumWidgets Is Not the Same as numwidgets) • Can Use Digits 0-9, $, and Underscore • Cannot Start with a Digit • Cannot Contain Spaces or Other Characters • Cannot Use JAVA Keywords
Naming Variables (Cont) • Should Use a Meaningful, Descriptive Name so that Variable’s Use Is Easily Understood: • Examples: counter, second, minute, length, width • Be Consistent with Case; Usually Lower Case with Upper Case for Second Part of Variable Name • Examples: averageRainfall, totalStudentGrades, maxBuildingHeight, minPackageWeight;
Variable Scope • Scope: Area of a Program within which a Variable Can Be Referenced • Variable Definitions Are Recognized in the Curly Braces in which They Were Defined • Variables Declared Outside of Functions Are Recognized from the Point Declaration through the Rest of the Program
Named Constants • Constant: An Identifier that Is Initialized to a Value that Cannot Change • Usually Declared at Top of Program using Keyword final • Standard Naming of Constants Is to Use All Upper Case Letter with or without Underscore between Words • All Constants Should Be Initialized • Syntax: final int MAXHT = 100;
Advantages of Constants • Easier to Understand • Easier to Modify • Example: Compare using Number 5000 in Program versus Constant MAXHT
Named Constants public class MyProgram { public static void main( String [ ] args) { final int MAXHT = 100; ... currentHeight > MAXHT ... bridgeHeight == MAXHT ... bridgeHeight + newAddition >= MAXHT ... // used MAXHT 223 times in this program } }
Literal Constants (Values) • Constants Whose values Are Already Known: Characters (Specified Inside Single Quotes): ‘A’ , ‘a’ , ’5’ , ’ ‘ , ’\n’ (newline) , ’\0’ (NULL Character) Integers: 10, 1345, -34 Float or Double: 2.3, -45.18, 10.6e6 String (Specified Inside Double Quotes): “HELLO” , “What a great deal.” , “5”
Input and Output • Also Known as I/O • Output : System.out.println(“Hello World!!”); • Input (Scanner): import java.util.Scanner; Scanner scan = new Scanner(System.in); scan.nextInt(); scan.nextFloat(); scan.nextDouble(); scan.next(); //String to whitespace scan.nextLine(); // String to end of line • All JAVA Statements End in Semicolon (;)
Input and Output Example import java.util.Scanner; public class MyProgram { public static void main( String [ ] args) { Scanner scan = new Scanner(System.in); int numEntered; System.out.print(“Enter an integer:”); numEntered = scan.nextInt(); System.out.println(“You entered: “ + numEntered); } }
Characters and Strings • Strings in java.lang package • Java.lang imported automatically
JAVA Strings • Declaration: String yourName; • Assigning a Value to a String: yourName = “A. Goose”; • String Constants (Values) Must Be Enclosed in Double Quotes