1.1 Basic Programming Model 1.2 Data Abstrac9on

Size: px
Start display at page:

Download "1.1 Basic Programming Model 1.2 Data Abstrac9on"

Transcription

1 1.1 Basic Programming Model 1.2 Data Abstrac9on This presentation is adapted from slides accompanying Algorithms 4/e by Robert Sedgwick and Kevin Wayne and from Introduction to Programming in Java: An Interdisciplinary Approach by Robert Sedgwick and Kevin Wayne

2 1.5 Input and Output 2.2 Libraries and Clients 3.1 Using Data Types 1.1 Basic Programming Model 1.2 Data Abstrac9on This presentation is adapted from slides accompanying Algorithms 4/e by Robert Sedgwick and Kevin Wayne and from Introduction to Programming in Java: An Interdisciplinary Approach by Robert Sedgwick and Kevin Wayne

3 Libraries Library. A module whose methods are primarily intended for use by many other programs. Client. Program that calls a library. API. Contract between client and implementa9on. Implementa9on. Program that implements the methods in an API. 3

4 Using a Library public class RandomPoints { public static void main(string args[]) { int N = Integer.parseInt(args[0]); for (int i = 0; i < N; i++) { command line input double x = StdRandom.gaussian(0.5, 0.2); double y = StdRandom.gaussian(0.5, 0.2); StdDraw.point(x, y); textbook libraries compile run % javac RandomPoints.java % java RandomPoints

5 Input and Output Input devices. Keyboard Mouse Hard drive Network Digital camera Microphone Output devices. Display Speakers Hard drive Network Printer MP3 Player Our approach. Define Java libraries of func9ons for input and output. Use opera9ng system (OS) to connect Java programs to: file system, each other, keyboard, mouse, display, speakers. 5

6 Terminal Terminal. Applica9on where you can type commands to control the opera9ng system. Mac OS X Microsoft Windows 6

7 Command- Line Input and Standard Output Command- line input. Read an integer N as command- line argument. Standard output. Flexible OS abstrac9on for output. In Java, output from System.out.println() goes to standard output. By default, standard output is sent to Terminal. public class RandomSeq { public static void main(string[] args) { int N = Integer.parseInt(args[0]); for (int i = 0; i < N; i++) { System.out.println(Math.random()); % java RandomSeq

8 Bird's Eye View 8

9 Command- Line Input vs. Standard Input Command- line input. Use command- line input to read in a few user values. Not prac9cal for many user inputs. Input entered before program begins execu9on. Standard input. Flexible OS abstrac9on for input. By default, standard input is received from Terminal window. Input entered while program is execu9ng. 9

10 Standard Input and Output Standard input. StdIn is library for reading text input. Standard output. StdOut is library for wri9ng text output. libraries developed for IntroCS/Algs4 10

11 Standard Drawing Standard drawing. StdDraw is library for producing graphical output. libraries developed for IntroCS/Algs4 11

12 Standard Draw Standard drawing. We provide library StdDraw to plot graphics. To use. Download StdDraw.java and put in working directory. public class Triangle { public static void main(string[] args) { double t = Math.sqrt(3.0) / 2.0; StdDraw.line(0.0, 0.0, 1.0, 0.0); StdDraw.line(1.0, 0.0, 0.5, t); StdDraw.line(0.5, t, 0.0, 0.0); StdDraw.point(0.5, t/3.0); (½, ½ 3) % java Triangle (0, 0) (1, 0) 12

13 Data Visualiza9on Plot filter. Read in a sequence of (x, y) coordinates from standard input, and plot using standard drawing. public class PlotFilter { public static void main(string[] args) { double xmin = StdIn.readDouble(); double ymin = StdIn.readDouble(); double xmax = StdIn.readDouble(); double ymax = StdIn.readDouble(); StdDraw.setXscale(xmin, xmax); StdDraw.setYscale(ymin, ymax); rescale coordinate system while (!StdIn.isEmpty()) { double x = StdIn.readDouble(); double y = StdIn.readDouble(); StdDraw.point(x, y); read in points, and plot them 13

14 Data Visualiza9on % more < USA.txt bounding box coordinates of 13,509 US cities % java PlotFilter < USA.txt 14

15 Digital Audio in Java Standard audio. Library for playing digital audio. library developed for IntroCS/Algs4 15

16 Bird's Eye View (Revisited) 16

17 Non- Standard Input Standard input. Read from terminal window. Goal. Read from several different input streams. or use OS to redirect from one file In data type. Read text from stdin, a file, a web site, or network. Ex: Are two text files iden9cal? public class Diff { public static void main(string[] args) { In in0 = new In(args[0]); In in1 = new In(args[1]); String s = in0.readall(); String t = in1.readall(); StdOut.println(s.equals(t)); read from one file read from another file 17

18 Screen Scraping Goal. Find current stock price of Google. <tr> <td class="yfnc_tablehead1" width="48%"> Last Trade: </td> <td class="yfnc_tabledata1"> <big> <b>576.50</b> </big> </td> </tr> <tr> <td class="yfnc_tablehead1" width="48%"> Trade Time: </td> <td class="yfnc_tabledata1"> 11:45AM ET </td> </tr> NYSE symbol 18

19 Screen Scraping Goal. Find current stock price of Google. s.indexof(t, i): index of first occurrence of pa_ern t in string s, star9ng at offset i. Read raw html from Find first string delimited by <b> and </b> a`er Last Trade. public class StockQuote { public static void main(string[] args) { String name = " In in = new In(name + args[0]); String input = in.readall(); int start = input.indexof("last Trade:", 0); int from = input.indexof("<b>", start); int to = input.indexof("</b>", from); String price = input.substring(from + 3, to); StdOut.println(price); % java StockQuote goog

20 Day Trader Try this. Find updated version of StockQuote.java online: h_p://introcs.cs.princeton.edu/java/31datatype/stockquote.java Run it from the command line to check some stock prices, eg: java-algs4 StockQuote aapl The New Yorker, September 6, 1999 Modify it to prompt and get input from user using StdIn and StdOut (instead of command line args[0] and System.out.println()) Put in a loop so it keeps asking for more stock prices use StdIn.isEmpty() to test for end of input test the program: indicate the end of input using Ctrl- C 20

21 Day Trader (Con9nued) If you have been using an IDE, run the program again from command line The New Yorker, September 6, 1999 Run from command line, but this 9me redirect Standard Input to come from a text file: Create a small text file with some stock 9ckers in it, save it as 9ckers.txt Run StockQuote with input from this file: java-algs4 StockQuote <tickers.txt You can also redirect Standard output: java-algs4 StockQuote >tickers.out (creates file 9ckers.out with output from program you s9ll need to type in your input, but the prompts and other output is going to 9ckers.out). or both! java-algs4 StockQuote <tickers.txt >tickers.out java-algs4 StockQuote >tickers.out <tickers.txt (either order works) 21

22 Day Trader (Con9nued) The New Yorker, September 6, 1999 Add bells and whistles at own risk Plot price in real- 9me. No9fy user if price dips below a certain price. Embed logic to determine when to buy and sell. Automa9cally send buy and sell orders to trading firm. Warning. Please, please use at your own financial risk. 22

23 Sta9s9cs

24 Standard Sta9s9cs Ex. Library to compute sta9s9cs on an array of real numbers. library developed for IntroCS/Algs4 mean sample variance 24

25 Standard Sta9s9cs Ex. Library to compute sta9s9cs on an array of real numbers. public class StdStats { public static double max(double[] a) { double max = Double.NEGATIVE_INFINITY; for (int i = 0; i < a.length; i++) if (a[i] > max) max = a[i]; return max; public static double mean(double[] a) { double sum = 0.0; for (int i = 0; i < a.length; i++) sum = sum + a[i]; return sum / a.length; public static double stddev(double[] a) // see text 25

26 Day Trader (Con9nued back for some stats!) The New Yorker, September 6, 1999 Store the prices in an array, as they are being accessed. (if necessary, use java.u9l.arrays.copyof() to trim the array to size a`er all the values are there) Use StdStats.mean(prices) and StdStats.stddev(prices) to obtain the mean and standard devia9on of some stocks try some of the other StdStats methods. 26

27 Random Numbers The generation of random numbers is far too important to leave to chance. Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin. Jon von Neumann (left), ENIAC (right)

28 Random Numbers

29 Standard Random Standard random. Our library to generate pseudo- random numbers. library developed for IntroCS/Algs4 29

30 Standard Random public class StdRandom { // between a and b public static double uniform(double a, double b) { return a + Math.random() * (b-a); // between 0 and N-1 public static int uniform(int N) { return (int) (Math.random() * N); // true with probability p public static boolean bernoulli(double p) { return Math.random() < p; // gaussian with mean = 0, stddev = 1 public static double gaussian() /* see Exercise */ // gaussian with given mean and stddev public static double gaussian(double mean, double stddev) { return mean + (stddev * gaussian());... 30

31 Earlier example: Using a Library public class RandomPoints { public static void main(string args[]) { int N = Integer.parseInt(args[0]); for (int i = 0; i < N; i++) { command line input double x = StdRandom.gaussian(0.5, 0.2); double y = StdRandom.gaussian(0.5, 0.2); StdDraw.point(x, y); textbook libraries compile run % javac RandomPoints.java % java RandomPoints

32 Unit Tes9ng Unit test. Include main() to test each library. public class StdRandom {... public static void main(string[] args) { int N = Integer.parseInt(args[0]); for (int i = 0; i < N; i++) { StdOut.printf(" %2d ", uniform(100)); StdOut.printf("%8.5f ", uniform(10.0, 99.0)); StdOut.printf("%5b ", bernoulli(.5)); StdOut.printf("%7.5f ", gaussian(9.0,.2)); StdOut.println(); % java StdRandom true false true true false

2.2 Libraries and Clients

2.2 Libraries and Clients 2.2 Libraries and Clients LOGO STYLE GUIDE Schools within the University Introduction to Programming in Java: An Interdisciplinary Approach Robert Sedgewick and Kevin Wayne Copyright 2002 2010 2/14/14

More information

1.5 Input and Output. Input and Output. Digital Michelangelo Project. Input and Output. Input devices. Output devices.

1.5 Input and Output. Input and Output. Digital Michelangelo Project. Input and Output. Input devices. Output devices. Input and Output 1.5 Input and Output Input devices. Keyboard Mouse Hard drive Network Digital camera Speakers Hard drive Network Printer Microphone Output devices. Display MP3 Player Goal. Java programs

More information

1.5 Input and Output. Input and Output. Terminal. Input and Output. Input devices. Output devices.

1.5 Input and Output. Input and Output. Terminal. Input and Output. Input devices. Output devices. Input and Output 1.5 Input and Output Input devices. Keyboard Mouse Hard drive Network Digital camera Speakers Hard drive Network Printer Microphone Output devices. Display MP3 Player Goal. Java programs

More information

1.5 Input and Output

1.5 Input and Output 1.5 Input and Output Introduction to Programming in Java: An Interdisciplinary Approach Robert Sedgewick and Kevin Wayne Copyright 2002 2010 5/23/2013 9:55:12 AM Input and Output Input devices Keyboard

More information

CS 112 Introduction to Programming

CS 112 Introduction to Programming CS 112 Introduction to Programming (Spring 2012) Lecture #12: Functions & Libraries Zhong Shao Department of Computer Science Yale University Office: 314 Watson http://flint.cs.yale.edu/cs112 Acknowledgements:

More information

Functions (or Static Methods) (Spring 2012)

Functions (or Static Methods) (Spring 2012) CS 112 Introduction to Programming Functions (or Static Methods) (Spring 2012) Lecture #12: Functions & Libraries Zhong Shao x y Department of Computer Science Yale University Office: 314 Watson z f f

More information

2.2 Input and Output. Input and Output. Digital Michelangelo Project. Terminal. Input devices. Output devices.

2.2 Input and Output. Input and Output. Digital Michelangelo Project. Terminal. Input devices. Output devices. Input and Output 2.2 Input and Output Input devices. Keyboard Mouse Hard drive Network Digital camera Speakers Hard drive Network Printer Microphone Output devices. Display MP3 Player Our approach. Define

More information

1.5 Input and Output. Introduction to Computer Science Sedgewick and Wayne Copyright 2007

1.5 Input and Output. Introduction to Computer Science Sedgewick and Wayne Copyright 2007 1.5 Input and Output Introduction to Computer Science Sedgewick and Wayne Copyright 2007 http://introcs.cs.princeton.edu A Foundation for Programming any program you might want to write objects functions

More information

2.1 Functions. x y. f (x, y, z) A Foundation for Programming. Functions (Static Methods)

2.1 Functions. x y. f (x, y, z) A Foundation for Programming. Functions (Static Methods) 2.1 Functions x y z f f (x, y, z) 1 A Foundation for Programming Functions (Static Methods) any program you might want to write objects functions and modules build bigger programs and reuse code Java function.

More information

3.1 Data Types. Abstract Data Types. Objects. Object. Holds a data type value; variable name refers to object.

3.1 Data Types. Abstract Data Types. Objects. Object. Holds a data type value; variable name refers to object. 3.1 Data Types any program you might want to write objects create your own data types functions and modules graphics, sound, and image I/O arrays conditionals and loops Math primitive data types text I/O

More information

Debugging [continued]

Debugging [continued] Debugging [continued] Admiral Grace Murray Hopper http://www.history.navy.mil/photos/images/h96000/h96566kc.htm 1 2 Debugging Your Program Debugging: Performance Errors Debugging Your Program. [summary]

More information

A Foundation for Programming

A Foundation for Programming 3.1 Using Data Types Introduction to Programming in Java: An Interdisciplinary Approach Robert Sedgewick and Kevin Wayne Copyright 2008 11/20/09 11/20/09 A Foundation for Programming any program you might

More information

Libraries, clients, prin/

Libraries, clients, prin/ Libraries, clients, prin/ Fundamentals of Computer Science Keith Vertanen Copyright 2013 A founda8on for programming any program you might want to write objects func2ons and modules graphics, sound, and

More information

CS 112 Introduction to Programming

CS 112 Introduction to Programming CS 112 Introduction to Programming (Spring 2012) Lectures #10-11: Input and Output Zhong Shao Department of Computer Science Yale University Office: 314 Watson http://flint.cs.yale.edu/cs112 Acknowledgements:

More information

The Command Shell, Libraries and Clients, Formatted Printing. Fundamentals of Computer Science

The Command Shell, Libraries and Clients, Formatted Printing. Fundamentals of Computer Science The Command Shell, Libraries and Clients, Formatted Printing Fundamentals of Computer Science Outline Graphical User Interface vs. Command Shell Starting the Command Shell Commands Compiling and Running

More information

COMPUTER SCIENCE. 5. Input and Output. Section

COMPUTER SCIENCE. 5. Input and Output. Section COMPUTER SCIENCE S E D G E W I C K / W A Y N E 5. Input and Output Section 1.5 http://introcs.cs.princeton.edu COMPUTER SCIENCE S E D G E W I C K / W A Y N E 5. Input and Output Standard input and output

More information

COMPUTER SCIENCE. Computer Science. 4. Input and Output. Computer Science. An Interdisciplinary Approach

COMPUTER SCIENCE. Computer Science. 4. Input and Output. Computer Science. An Interdisciplinary Approach COMPUTER SCIENCE S E D G E W I C K / W A Y N E PA R T I : P R O G R A M M I N G I N J AVA Computer Science Computer Science An Interdisciplinary Approach 1.5 ROBERT SEDGEWICK K E V I N WAY N E http://introcs.cs.princeton.edu

More information

CMSC 150 INTRODUCTION TO COMPUTING LAB WEEK 3 STANDARD IO FORMATTING OUTPUT SCANNER REDIRECTING

CMSC 150 INTRODUCTION TO COMPUTING LAB WEEK 3 STANDARD IO FORMATTING OUTPUT SCANNER REDIRECTING CMSC 150 INTRODUCTION TO COMPUTING LAB WEEK 3 STANDARD IO FORMATTING OUTPUT SCANNER REDIRECTING INPUT AND OUTPUT Input devices Keyboard Mouse Hard drive Network Digital camera Microphone Output devices.

More information

5. Input and Output. 5. Input and Output. Standard input and output Standard drawing Fractal drawings Animation COMPUTER SCIENCE COMPUTER SCIENCE

5. Input and Output. 5. Input and Output. Standard input and output Standard drawing Fractal drawings Animation COMPUTER SCIENCE COMPUTER SCIENCE Standard input and output Standard drawing Fractal drawings Animation Section.5 http://introcs.cs.princeton.edu CS.5.A.IO.Standard Basic building blocks for programming Input and output Goal: Write s that

More information

JVM (java) compiler. A Java program is either a library of static methods (functions) or a data type definition

JVM (java) compiler. A Java program is either a library of static methods (functions) or a data type definition Programming Model Basic Structure of a Java Program The Java workflow editor (Code) P.java compiler (javac) P.class JVM (java) output A Java program is either a library of static methods (functions) or

More information

2.4 Input and Output. Input and Output. Standard Output. Standard Output Abstraction. Input devices. Output devices. Our approach.

2.4 Input and Output. Input and Output. Standard Output. Standard Output Abstraction. Input devices. Output devices. Our approach. Input and Output 2.4 Input and Output Input devices. Keyboard Mouse Storage Network Digital camera Microphone Output devices. Display Speakers Storage Network Printer MP3 Player Today's goal: process huge

More information

COMPUTER SCIENCE. Computer Science. 5. Functions and Libraries. Computer Science. An Interdisciplinary Approach

COMPUTER SCIENCE. Computer Science. 5. Functions and Libraries. Computer Science. An Interdisciplinary Approach COMPUTER SCIENCE S E D G E W I C K / W A Y N E PA R T I : P R O G R A M M I N G I N J AVA Computer Science 5. Functions and Libraries Computer Science An Interdisciplinary Approach 2.1 2.2 ROBERT SEDGEWICK

More information

CMSC 150 LECTURE 1 INTRODUCTION TO COURSE COMPUTER SCIENCE HELLO WORLD

CMSC 150 LECTURE 1 INTRODUCTION TO COURSE COMPUTER SCIENCE HELLO WORLD CMSC 150 INTRODUCTION TO COMPUTING ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH INTRODUCTION TO JAVA PROGRAMMING, LIANG (PEARSON 2014) LECTURE 1 INTRODUCTION TO COURSE COMPUTER SCIENCE

More information

6. Functions and Libraries

6. Functions and Libraries COMPUTER SCIENCE S E D G E W I C K / W A Y N E 6. Functions and Libraries Sections 2.1 and 2.2 http://introcs.cs.princeton.edu Context: basic building blocks for programming any program you might want

More information

6. Functions and Libraries

6. Functions and Libraries Context: basic building blocks for programming any program you might want to write objects functions and and libraries libraries functions graphics, sound, and image I/O arrays This lecture: build bigger

More information

2.1 Functions. 2.1 Functions. A Foundation for Programming. Functions (Static Methods) x y. f (x, y, z)

2.1 Functions. 2.1 Functions. A Foundation for Programming. Functions (Static Methods) x y. f (x, y, z) A Foundation for Programming 2.1 Functions any program you might want to write objects functions and modules build bigger programs and reuse code graphics, sound, and image I/O arrays conditionals and

More information

History of Java. Java was originally developed by Sun Microsystems star:ng in This language was ini:ally called Oak Renamed Java in 1995

History of Java. Java was originally developed by Sun Microsystems star:ng in This language was ini:ally called Oak Renamed Java in 1995 Java Introduc)on History of Java Java was originally developed by Sun Microsystems star:ng in 1991 James Gosling Patrick Naughton Chris Warth Ed Frank Mike Sheridan This language was ini:ally called Oak

More information

CSCI 135 Exam #0 Fundamentals of Computer Science I Fall 2012

CSCI 135 Exam #0 Fundamentals of Computer Science I Fall 2012 CSCI 135 Exam #0 Fundamentals of Computer Science I Fall 2012 Name: This exam consists of 7 problems on the following 6 pages. You may use your single- side hand- written 8 ½ x 11 note sheet during the

More information

CISC 1115 (Science Section) Brooklyn College Professor Langsam. Assignment #5

CISC 1115 (Science Section) Brooklyn College Professor Langsam. Assignment #5 CISC 1115 (Science Section) Brooklyn College Professor Langsam Assignment #5 An image is made up of individual points, known as pixels. Thus if we have an image with a resolution of 100 x 100, each pixel

More information

CSCI 135 Exam #1 Fundamentals of Computer Science I Fall 2012

CSCI 135 Exam #1 Fundamentals of Computer Science I Fall 2012 CSCI 135 Exam #1 Fundamentals of Computer Science I Fall 2012 Name: This exam consists of 6 problems on the following 7 pages. You may use your two-sided hand-written 8 ½ x 11 note sheet during the exam.

More information

1.1 Your First Program

1.1 Your First Program 1.1 Your First Program Introduction to Programming in Java: An Interdisciplinary Approach Robert Sedgewick and Kevin Wayne Copyright 2002 2010 5/20/2013 9:37:22 AM Why Programming? Why programming? Need

More information

2.1 Functions. f (x, y, z)

2.1 Functions. f (x, y, z) 2.1 Functions x y z f f (x, y, z) 1 A Foundation for Programming any program you might want to write objects functions and modules build bigger programs and reuse code graphics, sound, and image I/O arrays

More information

COS 126 Exam Review. Exams overview Example programming exam Example written exam questions (part 1)

COS 126 Exam Review. Exams overview Example programming exam Example written exam questions (part 1) COS 126 Exam Review Exams overview Example programming exam Example written exam questions (part 1) Exams overview (revisited) We have exams in the fall Two written exams. Two programming exams. Prep sessions

More information

1.1 Your First Program

1.1 Your First Program 1.1 Your First Program Introduction to Programming in Java: An Interdisciplinary Approach Robert Sedgewick and Kevin Wayne Copyright 2002 2010 1/29/11 6:37 AM! Why Programming? Why programming? Need to

More information

1.1 BASIC PROGRAMMING MODEL

1.1 BASIC PROGRAMMING MODEL 1.1 BASIC PROGRAMMING MODEL Our study of algorithms is based upon implementing them as programs written in the Java programming language. We do so for several reasons: Our programs are concise, elegant,

More information

Review. Primitive Data Types & Variables. String Mathematical operators: + - * / % Comparison: < > <= >= == int, long float, double boolean char

Review. Primitive Data Types & Variables. String Mathematical operators: + - * / % Comparison: < > <= >= == int, long float, double boolean char Review Primitive Data Types & Variables int, long float, double boolean char String Mathematical operators: + - * / % Comparison: < > = == 1 1.3 Conditionals and Loops Introduction to Programming in

More information

1/16/12. CS 112 Introduction to Programming. A Foundation for Programming. (Spring 2012) Lecture #4: Built-in Types of Data. The Computer s View

1/16/12. CS 112 Introduction to Programming. A Foundation for Programming. (Spring 2012) Lecture #4: Built-in Types of Data. The Computer s View 1/16/12 A Foundation for Programming CS 112 Introduction to Programming (Spring 2012) any program you might want to write Lecture #4: Built-in Types of Data objects Zhong Shao methods and classes graphics,

More information

2/15/12. CS 112 Introduction to Programming. Lecture #16: Modular Development & Decomposition. Stepwise Refinement. Zhong Shao

2/15/12. CS 112 Introduction to Programming. Lecture #16: Modular Development & Decomposition. Stepwise Refinement. Zhong Shao 2/15/12 Stepwise Refinement CS 112 Introduction to Programming main idea: use functions to divide a large programming problem into smaller pieces that are individually easy to understand ------decomposition

More information

Sedgewick Specialties

Sedgewick Specialties Sedgewick Specialties Our textbook is apparently a follow-up on another CS1083-ish book that uses a lot of simplified libraries, to avoid overwhelming newbies with the standard Java libraries. This book

More information

2.1, 2.2 Functions and Libraries

2.1, 2.2 Functions and Libraries A Foundation for Programming 2.1, 2.2 Functions and Libraries any program you might want to write objects x y z f f (x, y, z) functions and modules graphics, sound, and image I/O arrays build bigger programs

More information

CS 112 Introduction to Programming

CS 112 Introduction to Programming Running Time CS 112 Introduction to Programming As soon as an Analytic Engine exists, it will necessarily guide the future course of the science. Whenever any result is sought by its aid, the question

More information

Jump Statements. The keyword break and continue are often used in repetition structures to provide additional controls.

Jump Statements. The keyword break and continue are often used in repetition structures to provide additional controls. Jump Statements The keyword break and continue are often used in repetition structures to provide additional controls. break: the loop is terminated right after a break statement is executed. continue:

More information

CS 112 Introduction to Programming

CS 112 Introduction to Programming CS 112 Introduction to Programming (Spring 2012) Lecture #5: Conditionals and Loops Zhong Shao Department of Computer Science Yale University Office: 314 Watson http://flint.cs.yale.edu/cs112 Acknowledgements:

More information

1.3 Conditionals and Loops

1.3 Conditionals and Loops .3 Conditionals and Loops Introduction to Programming in Java: An Interdisciplinary Approach Robert Sedgewick and Kevin Wayne Copyright 2008 February 04, 2008 0:00 AM A Foundation for Programming A Foundation

More information

Condi(onals and Loops

Condi(onals and Loops Condi(onals and Loops 1 Review Primi(ve Data Types & Variables int, long float, double boolean char String Mathema(cal operators: + - * / % Comparison: < > = == 2 A Founda(on for Programming any program

More information

Inf1-OOP. Textbooks. Who and What. Organizational Issues. Why Java? Course Overview. Hello, World! in Java. Ewan Klein, Perdita Stevens

Inf1-OOP. Textbooks. Who and What. Organizational Issues. Why Java? Course Overview. Hello, World! in Java. Ewan Klein, Perdita Stevens Organizational Issues Inf1-OOP Course Overview Ewan Klein, Perdita Stevens School of Informatics January 12, 2013 Why Java? Hello, World! in Java Built-in Types Integers Floating-Point Numbers Type Conversion

More information

CSCI 135 Exam #0 Fundamentals of Computer Science I Fall 2013

CSCI 135 Exam #0 Fundamentals of Computer Science I Fall 2013 CSCI 135 Exam #0 Fundamentals of Computer Science I Fall 2013 Name: This exam consists of 7 problems on the following 6 pages. You may use your single- side hand- written 8 ½ x 11 note sheet during the

More information

Recap: Assignment as an Operator CS 112 Introduction to Programming

Recap: Assignment as an Operator CS 112 Introduction to Programming Recap: Assignment as an Operator CS 112 Introduction to Programming q You can consider assignment as an operator, with a (Spring 2012) lower precedence than the arithmetic operators First the expression

More information

Modules and Clients 1 / 21

Modules and Clients 1 / 21 Modules and Clients 1 / 21 Outline 1 Using Functions in Other Programs 2 Modular Programming Abstractions 3 Random Numbers 4 List Processing 5 Standard Statistics 2 / 21 Using Functions in Other Programs

More information

CS 112 Introduction to Programming

CS 112 Introduction to Programming CS 112 Introduction to Programming (Spring 2012) Lecture #20: LFSR Data Type Zhong Shao Department of Computer Science Yale University Office: 314 Watson http://flint.cs.yale.edu/cs112 Acknowledgements:

More information

St. Edmund Preparatory High School Brooklyn, NY

St. Edmund Preparatory High School Brooklyn, NY AP Computer Science Mr. A. Pinnavaia Summer Assignment St. Edmund Preparatory High School Name: I know it has been about 7 months since you last thought about programming. It s ok. I wouldn t want to think

More information

Jump Statements. The keyword break and continue are often used in repetition structures to provide additional controls.

Jump Statements. The keyword break and continue are often used in repetition structures to provide additional controls. Jump Statements The keyword break and continue are often used in repetition structures to provide additional controls. break: the loop is terminated right after a break statement is executed. continue:

More information

Outline. 1 Using Functions in Other Programs. 2 Modular Programming Abstractions. 3 Random Numbers. 4 List Processing. 5 Standard Statistics 1 / 21

Outline. 1 Using Functions in Other Programs. 2 Modular Programming Abstractions. 3 Random Numbers. 4 List Processing. 5 Standard Statistics 1 / 21 Outline 1 Using Functions in Other Programs Modules and Clients 2 Modular Programming Abstractions 3 Random Numbers 4 5 Standard Statistics 1 / 21 2 / 21 Using Functions in Other Programs Modular Programming

More information

CS 112 Introduction to Programming

CS 112 Introduction to Programming CS 112 Introduction to Programming (Spring 2012) Lecture #7: Variable Scope, Constants, and Loops Zhong Shao Department of Computer Science Yale University Office: 314 Watson http://flint.cs.yale.edu/cs112

More information

C212 Early Evaluation Exam Mon Feb Name: Please provide brief (common sense) justifications with your answers below.

C212 Early Evaluation Exam Mon Feb Name: Please provide brief (common sense) justifications with your answers below. C212 Early Evaluation Exam Mon Feb 10 2014 Name: Please provide brief (common sense) justifications with your answers below. 1. What is the type (and value) of this expression: 5 * (7 + 4 / 2) 2. What

More information

COS 126 General Computer Science Fall Exam 1

COS 126 General Computer Science Fall Exam 1 COS 126 General Computer Science Fall 2005 Exam 1 This test has 9 questions worth a total of 50 points. You have 120 minutes. The exam is closed book, except that you are allowed to use a one page cheatsheet,

More information

1.1 Your First Program

1.1 Your First Program Why Programming? 1.1 Your First Program Why programming? Need to tell computer what to do. Please simulate the motion of N heavenly bodies, subject to Newton s laws of motion and gravity. Prepackaged software

More information

2.4 Modular Programming

2.4 Modular Programming Percolation 2.4 Modular Programming Percolation. Pour liquid on top of some porous material. Will liquid reach the bottom? Applications. [Chemistry, materials science]! Chromatography.! Natural gas through

More information

COS 126 General Computer Science Fall Exam 1

COS 126 General Computer Science Fall Exam 1 COS 126 General Computer Science Fall 2008 Exam 1 This test has 11 questions worth a total of 50 points. You have 120 minutes. The exam is closed book, except that you are allowed to use a one page cheatsheet,

More information

1.1 Your First Program

1.1 Your First Program Why Programming? Idealized computer. "Please simulate the motion of a system of N heavenly bodies, subject to Newton's laws of motion and gravity." 1.1 Your First Program Prepackaged software solutions.

More information

Inf1-OOP. Textbooks. Who and What. Organisational issues. Why Java? Course Overview. Hello, World! in Java

Inf1-OOP. Textbooks. Who and What. Organisational issues. Why Java? Course Overview. Hello, World! in Java Organisational issues Inf1-OOP Course Overview Perdita Stevens, adapting earlier version by Ewan Klein School of Informatics January 11, 2014 Why Java? Hello, World! in Java Built-in Types Integers Floating-Point

More information

File Processing in Java

File Processing in Java What is File I/O? File Processing in Java I/O is an abbreviation for input and output. Input is data coming in at runtime. Input come sin through a mouse, keyboard, touchscreen, microphone and so on. Output

More information

ESC101 : Fundamental of Computing

ESC101 : Fundamental of Computing ESC101 : Fundamental of Computing End Semester Exam 19 November 2008 Name : Roll No. : Section : Note : Read the instructions carefully 1. You will lose 3 marks if you forget to write your name, roll number,

More information

1.1 Your First Program

1.1 Your First Program 1.1 Your First Program 1 Why Programming? Why programming? Need to tell computer what you want it to do. Naive ideal. Natural language instructions. Please simulate the motion of these heavenly bodies,

More information

University of Palestine. Mid Exam Total Grade: 100

University of Palestine. Mid Exam Total Grade: 100 First Question No. of Branches (5) A) Choose the correct answer: 1. If we type: system.out.println( a ); in the main() method, what will be the result? int a=12; //in the global space... void f() { int

More information

5. The TOY Machine II

5. The TOY Machine II 5. The TOY Machine II Laboratory Instrument Computer (LINC) Introduction to Computer Science: An Interdisciplinary Approach Robert Sedgewick and Kevin Wayne Copyright 2002 2011 2/18/2013 9:52:08 AM What

More information

W1005 Intro to CS and Programming in MATLAB. Brief History of Compu?ng. Fall 2014 Instructor: Ilia Vovsha. hip://www.cs.columbia.

W1005 Intro to CS and Programming in MATLAB. Brief History of Compu?ng. Fall 2014 Instructor: Ilia Vovsha. hip://www.cs.columbia. W1005 Intro to CS and Programming in MATLAB Brief History of Compu?ng Fall 2014 Instructor: Ilia Vovsha hip://www.cs.columbia.edu/~vovsha/w1005 Computer Philosophy Computer is a (electronic digital) device

More information

CS 112 Introduction to Programming

CS 112 Introduction to Programming CS 112 Introduction to Programming (Spring 2012) Lecture #9: Arrays Zhong Shao Department of Computer Science Yale University Office: 314 Watson http://flint.cs.yale.edu/cs112 Acknowledgements: some slides

More information

Java: Comment Text. Introduction. Concepts

Java: Comment Text. Introduction. Concepts Java: Comment Text Introduction Comment text is text included in source code that is ignored by the compiler and does not cause any machine-language object code to be generated. It is written into the

More information

CSc 2010 Principles of Computer Science, Fall 2013 Practice Problems for Midterm 3* * 3 17 % 9-20 % (26 / 7) "2"

CSc 2010 Principles of Computer Science, Fall 2013 Practice Problems for Midterm 3* * 3 17 % 9-20 % (26 / 7) 2 CSc 2010 Principles of Computer Science, Fall 2013 Practice Problems for Midterm 1. For each Java expression in the left hand column, indicate its value in the right hand column. Be sure to show a constant

More information

Check out how to use the random number generator (introduced in section 4.11 of the text) to get a number between 1 and 6 to create the simulation.

Check out how to use the random number generator (introduced in section 4.11 of the text) to get a number between 1 and 6 to create the simulation. Chapter 4 Lab Loops and Files Lab Objectives Be able to convert an algorithm using control structures into Java Be able to write a while loop Be able to write an do-while loop Be able to write a for loop

More information

CS 11 java track: lecture 1

CS 11 java track: lecture 1 CS 11 java track: lecture 1 Administrivia need a CS cluster account http://www.cs.caltech.edu/ cgi-bin/sysadmin/account_request.cgi need to know UNIX www.its.caltech.edu/its/facilities/labsclusters/ unix/unixtutorial.shtml

More information

CS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University

CS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University 9/5/6 CS Introduction to Computing II Wayne Snyder Department Boston University Today: Arrays (D and D) Methods Program structure Fields vs local variables Next time: Program structure continued: Classes

More information

2.3 Recursion 7/21/2014 5:12:34 PM

2.3 Recursion 7/21/2014 5:12:34 PM 3 Recursion Introduction to Programming in Java: An Interdisciplinary Approach Robert Sedgewick and Kevin Wayne Copyright 2002 2010 7/21/2014 5:12:34 PM Factorial The factorial of a positive integer N

More information

4.1 Performance. Running Time. Scientific Method. Algorithmic Successes

4.1 Performance. Running Time. Scientific Method. Algorithmic Successes Running Time 4.1 Performance As soon as an Analytic Engine exists, it will necessarily guide the future course of the science. Whenever any result is sought by its aid, the question will arise - By what

More information

Instructions. This exam has 7 questions, worth 10 points each. You have 50 minutes.

Instructions. This exam has 7 questions, worth 10 points each. You have 50 minutes. COS 126 Written Exam 1 Spring 18 Instructions. This exam has 7 questions, worth 10 points each. You have 50 minutes. Resources. You may reference your optional one-sided 8.5-by-11 handwritten "cheat sheet"

More information

Department of Computer Science Yale University Office: 314 Watson Closely related to mathematical induction.

Department of Computer Science Yale University Office: 314 Watson Closely related to mathematical induction. 2/6/12 Overview CS 112 Introduction to Programming What is recursion? When one function calls itself directly or indirectly. (Spring 2012) Why learn recursion? New mode of thinking. Powerful programming

More information

1.3 Conditionals and Loops

1.3 Conditionals and Loops 1.3 Conditionals and Loops Introduction to Programming in Java: An Interdisciplinary Approach Robert Sedgewick and Kevin Wayne Copyright 2002 2010 15/1/2013 22:16:24 A Foundation for Programming any program

More information

CSCI 135 Programming Exam #1 Fundamentals of Computer Science I Fall 2014

CSCI 135 Programming Exam #1 Fundamentals of Computer Science I Fall 2014 CSCI 135 Programming Exam #1 Fundamentals of Computer Science I Fall 2014 This part of the exam is like a mini- programming assignment. You will create a program, compile it, and debug it as necessary.

More information

COS 126 Midterm 1 Written Exam Fall 2012

COS 126 Midterm 1 Written Exam Fall 2012 Name:!! Login ID:!!! Precept: COS 126 Midterm 1 Written Exam Fall 2012 is test has 8 questions, weighted as indicated. e exam is closed book, except that you are allowed to use a one page single-sided

More information

Nested Loops ***** ***** ***** ***** ***** We know we can print out one line of this square as follows: System.out.

Nested Loops ***** ***** ***** ***** ***** We know we can print out one line of this square as follows: System.out. Nested Loops To investigate nested loops, we'll look at printing out some different star patterns. Let s consider that we want to print out a square as follows: We know we can print out one line of this

More information

What is TOY? An imaginary machine similar to: ! Ancient computers. ! Today's microprocessors.

What is TOY? An imaginary machine similar to: ! Ancient computers. ! Today's microprocessors. 5. The TOY Machine Introduction to Programming in Java: An Interdisciplinary Approach Robert Sedgewick and Kevin Wayne Copyright 3// 5:3 AM! What is TOY? An imaginary machine similar to:! Ancient computers.!

More information

Functions. x y z. f (x, y, z) Take in input arguments (zero or more) Perform some computation - May have side-effects (such as drawing)

Functions. x y z. f (x, y, z) Take in input arguments (zero or more) Perform some computation - May have side-effects (such as drawing) 2.1 Functions Functions Take in input arguments (zero or more) Perform some computation - May have side-effects (such as drawing) Return one output value Input Arguments x y z f Return Value f (x, y, z)

More information

CS 112 Introduction to Programming

CS 112 Introduction to Programming CS 112 Introduction to Programming (Spring 2012) Lecture #13: Recursion Zhong Shao Department of Computer Science Yale University Office: 314 Watson http://flint.cs.yale.edu/cs112 Acknowledgements: some

More information

Outline. Parts 1 to 3 introduce and sketch out the ideas of OOP. Part 5 deals with these ideas in closer detail.

Outline. Parts 1 to 3 introduce and sketch out the ideas of OOP. Part 5 deals with these ideas in closer detail. OOP in Java 1 Outline 1. Getting started, primitive data types and control structures 2. Classes and objects 3. Extending classes 4. Using some standard packages 5. OOP revisited Parts 1 to 3 introduce

More information

12/11/ The TOY Machine II. Data Representation. What We've Learned About TOY. What We Do Today. Adding and Subtracting Binary Numbers

12/11/ The TOY Machine II. Data Representation. What We've Learned About TOY. What We Do Today. Adding and Subtracting Binary Numbers // What We've Learned About TOY. The TOY Machine II TOY machine. Box with switches and lights. 6-bit memory locations, 6-bit registers, 8-bit pc. 4,38 bits = ( 6) + ( 6) + (8) = 4 bytes! von Neumann architecture.

More information

COS 126 General Computer Science Fall Written Exam 1

COS 126 General Computer Science Fall Written Exam 1 COS 26 General Computer Science Fall 27 Written Exam This exam has 7 questions (including question ) worth a total of 7 points. You have 5 minutes. Write all answers inside the designated spaces. Policies.

More information

CSCI 135 Exam #1 Fundamentals of Computer Science I Fall 2014

CSCI 135 Exam #1 Fundamentals of Computer Science I Fall 2014 CSCI 135 Exam #1 Fundamentals of Computer Science I Fall 2014 Name: This exam consists of 8 problems on the following 8 pages. You may use your two- sided hand- written 8 ½ x 11 note sheet during the exam.

More information

Midterm I - CSE11 Fall 2013 CLOSED BOOK, CLOSED NOTES 50 minutes, 100 points Total.

Midterm I - CSE11 Fall 2013 CLOSED BOOK, CLOSED NOTES 50 minutes, 100 points Total. Midterm I - CSE11 Fall 2013 CLOSED BOOK, CLOSED NOTES 50 minutes, 100 points Total. Name: ID: Problem 1) (8 points) For the following code segment, what are the values of i, j, k, and d, after the segment

More information

A Foundation for Programming

A Foundation for Programming 2.1 Functions A Foundation for Programming any program you might want to write objects functions and modules build bigger programs and reuse code graphics, sound, and image I/O arrays conditionals and

More information

(A) 99 ** (B) 100 (C) 101 (D) 100 initial integers plus any additional integers required during program execution

(A) 99 ** (B) 100 (C) 101 (D) 100 initial integers plus any additional integers required during program execution Ch 5 Arrays Multiple Choice Test 01. An array is a ** (A) data structure with one, or more, elements of the same type. (B) data structure with LIFO access. (C) data structure, which allows transfer between

More information

COMP6700/2140 Std. Lib., I/O

COMP6700/2140 Std. Lib., I/O COMP6700/2140 Std Lib, I/O Alexei B Khorev and Joshua Milthorpe Research School of Computer Science, ANU February 2017 Alexei B Khorev and Joshua Milthorpe (RSCS, ANU) COMP6700/2140 Std Lib, I/O February

More information

1.1 Your First Program

1.1 Your First Program 1.1 Your First Program Introduction to Programming in Java: An Interdisciplinary Approach Robert Sedgewick and Kevin Wayne Copyright 2008 January 26, 2009 9:28 tt Why Programming? Idealized computer. "Please

More information

CS210 Project 5 (Kd-Trees) Swami Iyer

CS210 Project 5 (Kd-Trees) Swami Iyer The purpose of this assignment is to create a symbol table data type whose keys are two-dimensional points. We ll use a 2d-tree to support efficient range search (find all the points contained in a query

More information

CS 112 Introduction to Programming

CS 112 Introduction to Programming A Possible Pitfall With Recursion CS 112 Introduction to Programming Fibonacci numbers. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, (Spring 2012) #0 if n = 0 % F(n) = 1 if n = 1 % F(n 1) + F(n 2) otherwise & Lecture

More information

Introduction to Computer Science Unit 2. Notes

Introduction to Computer Science Unit 2. Notes Introduction to Computer Science Unit 2. Notes Name: Objectives: By the completion of this packet, students should be able to describe the difference between.java and.class files and the JVM. create and

More information

Lecture 9: Potpourri: Call by reference vs call by value Enum / struct / union Advanced Unix

Lecture 9: Potpourri: Call by reference vs call by value Enum / struct / union Advanced Unix ....... \ \ \ / / / / \ \ \ \ / \ / \ \ \ V /,----' / ^ \ \.--..--. / ^ \ `--- ----` / ^ \. ` > < / /_\ \. ` / /_\ \ / /_\ \ `--' \ /. \ `----. / \ \ '--' '--' / \ / \ \ / \ / / \ \ (_ ) \ (_ ) / / \ \

More information

More on variables, arrays, debugging

More on variables, arrays, debugging More on variables, arrays, debugging zombie[1] zombie[3] Buuuuugs zombie[4] zombie[2] zombie[5] zombie[0] Fundamentals of Computer Science Keith Vertanen Variables revisited Scoping Arrays revisited Overview

More information

CSCI 135 Exam #2 Fundamentals of Computer Science I Fall 2013

CSCI 135 Exam #2 Fundamentals of Computer Science I Fall 2013 CSCI 135 Exam #2 Fundamentals of Computer Science I Fall 2013 Name: This exam consists of 6 problems on the following 6 pages. You may use your two-sided hand-written 8 ½ x 11 note sheet during the exam.

More information

I/O (cont) and Program Development. Standard Audio. A Foundation for Programming. Crash Course in Sound

I/O (cont) and Program Development. Standard Audio. A Foundation for Programming. Crash Course in Sound A Foundation for Programming I/O (cont) and Program Development any program you might want to write objects functions and modules graphics, sound, and image I/O arrays conditionals and loops what you've

More information