Welcome to CS 100 Goal: Learn to write intelligible, correct computer programs Language: Java (but the language should not be the primary focus) Software: CodeWarrior Plan: Compressed, intense version of a full-semester course. Be sure to keep up! CS 100 Lecture 1 1 Course Staff Instructor: Lynette Millett, millett@cs TAs: – Wei Tsang Ooi, weitsang@cs.cornell.edu – Alan Renaud, ajr5@cornell.edu – David Welte, dcw6@cornell.edu Consultants: – Rocky Chen, pjc4@cornell.edu, Young Ho Cho, yc102@cornell.edu, Amanda Waack, amw18@cornell.edu CS 100 Lecture 1 2 Logistics Lectures every day (Mon-Fri) Roughly two assignments per week – NO LATE ASSIGNMENTS ACCEPTED 0 or more short quizzes per week Partners: 1 partner allowed where specified Highest level of academic integrity expected CS 100 Lecture 1 3 Logistics continued Office hours: as noted on web One prelim: Monday, July 19, 1999 Final Grades: – 50% assignments – 25% prelim – 25% final First Assignment due this THURSDAY CS 100 Lecture 1 4 When Turning in Assignments: No late assignments accepted Your name and Cornell ID# should be on frontpage (in comments, if a program) For programming assignments turn in printout of source code, sample output and disk For written assignments: please type. TAs reserve right not to grade illegible homework. CS 100 Lecture 1 5 Main Concepts Today What is an algorithm? Method and method call Reading this week: Chapter 1 (skim), Chapters 2 and 3 Handouts CS 100 Lecture 1 6 Algorithm A set of instructions for performing some task that is: – precise – unambiguous – effective – abstract In other words: well-specified CS 100 Lecture 1 7 Examples of Algorithms A recipe for chocolate mousse Given this list of integers, tell me which ones are even Play a game of tic-tac-toe in a way that you never lose Find your Star Wars name CS 100 Lecture 1 8 Star Wars example: First SW name: Write first 3 letters of your last name then attach first 2 letters of your first name Last SW name: Write first 2 letters of mother’s maiden name and attact first 3 letters of hometown CS 100 Lynette Millett born in Norway, ME to I. (Rogers) Millett becomes: Mil+Ly = Milly Ro+Nor = Ronor Lecture 1 9 Ambiguous Algorithm Take two pieces of bread Put peanut butter on one side of one piece Put jelly on one side of the other piece Put the pieces together Output of this algorithm is. . . . CS 100 Lecture 1 10 A Messy Sandwich Why? The algorithm did not specify that the pieces of bread should be put together so that the peanut butter and jelly are on the inside Computers do exactly what they’re told or, worse, something undefined Precision is important Any other ambiguities in that example? CS 100 Lecture 1 11 Programs A program is an algorithm written in some language: English, C++, Java, . . “Computer program” is a program in a computer language such as Java Abstraction vs. Representation – Algorithm -- Program – Number -- Numeral – Object having “threeness” -- 3, III, three, ||| CS 100 Lecture 1 12 How does it work? Algorithm given as sequence of instructions to execute in order In Java, each instruction is called a statement Common statement in Java is a method call or method invocation But, what’s a method? “Method”, “procedure”, “function” often used interchangeably CS 100 Lecture 1 13 Sample Method Heading // Draw a line from point (x1, y1) to point //(x2, y2) public void drawLine (int x1, int y1, int x2, int y2) – Comment: explains the method precisely in English. Always begin with “//” – Prefix modifiers public, void (will explain later) – Method name: drawLine – Parameters: x1, y1, x2, y2, and their types: int CS 100 Lecture 1 14 Method Call // Draw a line from point (x1, y1) to point //(x2, y2) public void drawLine (int x1, int y1, int x2, int y2) Call: drawLine(3, 5, 1, 1); Command to be executed: Draw a line from point (3,5) to point (1,1) CS 100 Lecture 1 15 Another Example // Print the largest of x, y and z public void printMax (int x, int y, int z) Call: printMax(7, 83, 20*5-52); Command to be executed: print the largest of 7, 83 and 20*5-52 Note: the method name “printMax” has no meaning to Java. It is just a string of characters. We could have called it aaa, pm, mymethod, etc. . . CS 100 Lecture 1 16 Yet Another Example // In the output window, skip a line and print // “Hello!” public void printHello() Call: printHello(); Command to be executed: In the output window, skip a line and print “Hello!” CS 100 Lecture 1 17 Points to Remember A method can have zero parameters Syntax of a method call is: name ( list of 0 or more arguments separated by commas ) ; CS 100 Lecture 1 18 What does the Method do? To find out what a method does: – Make a copy of the specification (the comment in the heading) – replace all parameters by the appropriate arguments in the call This assumes the programmer wrote good comments CS 100 Lecture 1 19 Understanding Methods The way we have understood these methods relies on comments that are – precise – understandable – correct Your programs will be judged partially on how well your documentation is CS 100 Lecture 1 20 Reading From now on, consult syllabus and/or webpage. We will try to point out appropriate readings from the text, but you should use the text as a reference when solving homework problems. URL: http://www.cs.cornell.edu/cs100-su99 CS 100 Lecture 1 21 Assignment W1 Series of questions requiring written answers Should be fairly straightforward if you’ve done the reading Due Thursday July 1 at the beginning of class CS 100 Lecture 1 22 Registration Form Please fill out and turn in before you leave class today. CS 100 Lecture 1 23