Welcome to IIT and cs 115 CS 115

  • Slides: 56
Download presentation
Welcome to IIT and cs 115!

Welcome to IIT and cs 115!

CS 115 - Sec. • Jon Hanrath - 214 SB • Office Hours: –

CS 115 - Sec. • Jon Hanrath - 214 SB • Office Hours: – TBD. • hanrath@iit. edu • www. cs. iit. edu/~cs 115 hanrath

 • Lecture: TBD • Lab: TBD Lab assignments are due by the end

• Lecture: TBD • Lab: TBD Lab assignments are due by the end of class in lab each week

CS Intro Courses • CS 105: 1 -Semester Requiring Little or No Previous Programming

CS Intro Courses • CS 105: 1 -Semester Requiring Little or No Previous Programming Experience, Programming in C++ • CS 115 -116: 2 -Semester Sequence Assuming Previous Programming Experience, Programming in JAVA, Primarily CS Majors • CS 201: 1 -Semester Sequence Equivalent of CS 105 -CS 106, Requires Previous Programming Experience, Programming in JAVA

CS 115 – Required Textbook and Lab Manual • “Java 6 Illuminated: An Active

CS 115 – Required Textbook and Lab Manual • “Java 6 Illuminated: An Active Learning Approach” Anderson and Franceschi • Second (Orange) OR Third (Purple) Edition

CS 115 - Quizzes/Exams & Grading • 2 Quizzes – Each 5% of Grade

CS 115 - Quizzes/Exams & Grading • 2 Quizzes – Each 5% of Grade • 2 Exams: – Exam I - Lecture Exam - 10% – Exam II – Lecture - 20% • Final Exam - 30% • Labs - 20% • Project - 10% • Must Take Final to Pass Course • Final Grade: – – A > 90% B 80 -89. 99% C 70 – 79. 99% D 60 – 69. 99%

CS 115 Labs • Labs Assigned in Handout; on Website • Lab Exercises Comprised

CS 115 Labs • Labs Assigned in Handout; on Website • Lab Exercises Comprised of Exercises and Programming Exercises (Located at End of Each Chapter in Textbook) • Student Expected to Complete Labs *BEFORE* Lab Section Meets • Labs Graded Either 10 (fully completed), 5 (partially completed), or 0 (not completed) • TA Will Cover Labs/Questions/Other Topics in Lab Session • 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 lab to TA

Expectations • • • Attendance in Lectures and Labs Completion of Quizzes and Exams

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, i.

Rules • No Swearing or Other Inconsiderate Behavior • Turn Off Cell Phones, i. Pads, Laptops • Questions, Discussion, Ideas Welcome

Excuses • If You Will Miss an Exam or Quiz, Make Arrangements **BEFORE** the

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

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 –

CS 115 - Ethics • Exams: – Closed Book, Closed Notes, Closed Everything – Nothing in Ears (mp 3 players, cell phones, etc. ) • Labs Should Be Done Independently

CS 115 – Where to Get Help • www. cs. iit. edu/~cs 115 hanrath

CS 115 – Where to Get Help • www. cs. iit. edu/~cs 115 hanrath • Internet: Search for “JAVA tutorial”, or “JAVA help” • GET HELP EARLY RATHER THAN LATER!!!

CS 115 – Web Page • http: //www. cs. iit. edu/~cs 115 hanrath •

CS 115 – Web Page • http: //www. cs. iit. edu/~cs 115 hanrath • Click on Syllabus – Weekly Assignments – Quiz and Exam Dates – Lecture Slides – Other Course Information

Course Philosophy • Computer Science Side – Problem Solving – Logical Thought – Programming

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

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”

Problem Solving • • Arrange a Deck of Cards by Suit and Rank How

Problem Solving • • Arrange a Deck of Cards by Suit and Rank How Would You Do This? How Would You Tell a Child to Do This? How Would You Tell a Computer to Do This?

Why Use a Program? • Computers Perform Tasks Many Times Faster than a Person

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

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 My. Program {

JAVA Required Elements • Every JAVA Program Must Have: public class My. Program { public static void main( String [ ] args) { } }

Your First Program // Jon Hanrath // CS 115 // Section 042 public class

Your First Program // Jon Hanrath // CS 115 // Section 042 public class My. Program { public static void main( String [ ] args) { System. out. println(“Hello World!!”); System. exit(0); } }

If You Missed Monday • Go to Course Website: – http: //www. cs. iit.

If You Missed Monday • Go to Course Website: – http: //www. cs. iit. edu/~cs 115 hanrath – Click on Syllabus, Click on Lecture Notes • Email TA to Complete Lab 0

Real Life Programs • Customer/Client/Organization Produces Specification (i. e. , problem to be solved)

Real Life Programs • Customer/Client/Organization Produces Specification (i. e. , problem to be solved) • Design Team Creates Solution Code – Pseudocode (“Fake Code”) – Design takes ~75% of Total Program/Solution Time • Design Team hands Solution to Programmers (Coders) • Programmers hand Program to Testers

What Is Pseudocode? • Every Programmer’s Way of Writing Down Steps in Solving a

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

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 •

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

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,

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

Detecting “Bugs” • Running Program Should Be Tested Several Times with Different Inputs •

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

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

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 •

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.

Program Format • White Space: – Not Recognized by Compiler – Indent (e. g. 3 Spaces) for Each New Function, Selection, or Loop

Variables • Identifiers Used to Store Values that May Change • Every Variable Has

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:

Declaring a Variable • Declaration Normally Comes after a Function Definition Opening Curly Brace: • public class My. Program { public static void main( String [ ] args) { int num 1; //variable declaration num 1 = 10; // variable assignment // variable output below System. out. println(“num 1 is: ” + num 1); } } • Declaration Includes Type and the Name of the Variable • All Variables Must Be Declared before Being Used

Variables and Main Memory int num; Main Memory num <garbage> num = 10; num

Variables and Main Memory int num; Main Memory num <garbage> num = 10; num 10 num = 15; num 15

Main Memory • • • Storage Location of Data in a Computer Used When

Main Memory • • • Storage Location of Data in a Computer Used When a Program Is Running “Wiped Clean” When Computer Rebooted Bit: A “ 1 or 0” representing “on or off” Byte: Basic Unit of Storage (Can Store One Letter of the Alphabet or Keyboard) (8 bits – 256 combinations) • Kilobyte (KB): 1000 (or 1024) Bytes (Pages of Text) • Megabyte (MB): 1, 000 Bytes (Large Pictures) • Gigabyte (GB): 1, 000, 000 Bytes (Music Files, Video Files)

Initialization and Assignment • Initialization: Value Given to Variable at Declaration • Assignment: Value

Initialization and Assignment • Initialization: Value Given to Variable at Declaration • Assignment: Value Given to Variable in Execution Statement

Variable Initialization public class My. Program { public static void main( String [ ]

Variable Initialization public class My. Program { public static void main( String [ ] args) { int num 1 = 10; //variable initialization System. out. println(“num 1 is: ” + num 1); } }

Announcements • Quiz 1 Next Monday

Announcements • Quiz 1 Next Monday

Built-In (or Primitive) Data Types for Variables • int: Integer Range of Typically –

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 (+/-) 10 e-45 to 10 e 38 • double: Larger Real Number ((+/-) 10 e-324 to 10 e 308) • char: Character

Naming Variables in JAVA: Identifiers • Can Use Letters: Remember That JAVA is Case

Naming Variables in JAVA: Identifiers • Can Use Letters: Remember That JAVA is Case Sensitive (e. g. , Num. Widgets 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

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: average. Rainfall, total. Student. Grades, max. Building. Height, min. Package. Weight;

Named Constants • Constant: An Identifier that Is Initialized to a Value that Cannot

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

Advantages of Constants • Easier to Understand • Easier to Modify • Example: Compare using Number 100 in Program versus Constant MAXHT

Named Constants public class My. Program { public static void main( String [ ]

Named Constants public class My. Program { public static void main( String [ ] args) { final int MAXHT = 100; . . . current. Height > MAXHT. . . bridge. Height == MAXHT. . . bridge. Height + new. Addition >= MAXHT. . . } // used MAXHT 223 times in this program }

Literal Constants (Values) • Constants Whose values Are Already Known: Characters (Specified Inside Single

Literal Constants (Values) • Constants Whose values Are Already Known: Characters (Specified Inside Single Quotes): ‘A’ , ‘a’ , ’ 5’ , ’ ‘ , ’n’ (newline) , ’’ (NULL Character) Integers: 10, 1345, -34 Float or Double: 2. 3, -45. 18, 10. 6 e 6 String (Specified Inside Double Quotes): “HELLO” , “What a great deal. ” , “ 5”

Input and Output • Also Known as I/O • Output : System. out. println(“Hello

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. next. Int(); scan. next. Float(); scan. next. Double(); scan. next(); //String to whitespace scan. next. Line(); // String to end of line • All Wait until User Inputs Particular Type

Input and Output Example import java. util. Scanner; public class My. Program { public

Input and Output Example import java. util. Scanner; public class My. Program { public static void main( String [ ] args) { Scanner scan = new Scanner(System. in); int num. Entered; System. out. print(“Enter an integer: ”); /// The following waits until user hits Enter num. Entered = scan. next. Int(); System. out. println(“You entered: “ + num. Entered); } }

Characters and Strings • Strings in java. lang package • Java. lang imported automatically

Characters and Strings • Strings in java. lang package • Java. lang imported automatically

JAVA Strings • Declaration: String your. Name; • Assigning a Value to a String:

JAVA Strings • Declaration: String your. Name; • Assigning a Value to a String: your. Name = “A. Goose”; • String Constants (Values) Must Be Enclosed in Double Quotes

Input String Example import java. util. Scanner; public class My. Program { public static

Input String Example import java. util. Scanner; public class My. Program { public static void main( String [ ] args) { Scanner scan = new Scanner(System. in); String lastname; System. out. print(“Enter last name: ”); lastname = scan. next(); System. out. println(“You entered: “ + lastname); } }

Expressions • Expression: A Sequence of One or More Identifiers and Operators that Evaluates

Expressions • Expression: A Sequence of One or More Identifiers and Operators that Evaluates to a Value • Operator: A Symbol Expressing a Way to Modify a Value or Values (e. g. , + for Addition) • Operand: A Value Being Modified by an Operator • Example Expressions: 5 current. Height + 10

Arithmetic Expressions • Standard Arithmetic Operations Can Be Performed: Addition, Subtraction, Multiplication, Division •

Arithmetic Expressions • Standard Arithmetic Operations Can Be Performed: Addition, Subtraction, Multiplication, Division • Standard Arithmetic Operators Can Be Used for These Operations: +, -, *, / • Others: % - “Modulo (Mod)” – Remainder after Integer Division -- Decrement (Subtract 1) ++ Increment (Add 1)

Order of Operations • Precedence: Level of Importance of Operations Multiplicative Operators Have Higher

Order of Operations • Precedence: Level of Importance of Operations Multiplicative Operators Have Higher Precedence than Additive Operators: *, /, % Higher +, - Lower • Associativity: Order of Operation for Equal Level Precedence Most Operators Have Left-to-Right Associativity Use Parentheses to Force Differing Precedence of Operations

Know for the Quiz • All Terms (Underlined Items) • Variable Declaration, Initialization, and

Know for the Quiz • All Terms (Underlined Items) • Variable Declaration, Initialization, and Assignment • Constant Declaration • Expressions • Operators • Input (Scanner) and Output (System. out) • Everything in Homework through Lab 2