Presentation is loading. Please wait.

Presentation is loading. Please wait.

Guest Speaker - Cryptography Wednesday (Apr. 22) – Prof. abhi shelat.

Similar presentations


Presentation on theme: "Guest Speaker - Cryptography Wednesday (Apr. 22) – Prof. abhi shelat."— Presentation transcript:

1 Guest Speaker - Cryptography Wednesday (Apr. 22) – Prof. abhi shelat

2 Final Exam Review

3 CS101: Introduction to Computer Science Slides adapted from Sedgewick and Wayne Copyright © 2007 http://www.cs.Princeton.EDU/IntroCS Built-In Datatypes

4 Variables n A variable has three parts: 1. Name (e.g., “x”) 2. Type (e.g., int, double, String) 3. Value n How does a variable get a value? – Can be initialized in the program  E.g., int x = 10 – Can be computed when the program is running  E.g., x = y + z;

5 5 Built-in Data Types Data type. A set of values and operations defined on those values. add, subtract, multiply, divide 3.1415 6.022e23 floating point numbers double add, subtract, multiply, divide 17 12345 integers int and, or, not true false truth values boolean sequences of characters characters set of valuesoperationsliteral valuestype compare 'A' '@' char String concatenate "Hello World" "CS is fun"

6 6 Math Library

7 7 Type Conversion Type conversion. Convert from one type of data to another. n Automatic: no loss of precision; or with strings. n Explicit: cast; or method.

8 Conditionals and Loops

9 9 Control Flow Summary Control flow. n Sequence of statements that are actually executed in a program. n Conditionals and loops: enables us to choreograph the control flow. Straight-line programs All statements are executed in the order given. Conditionals Certain statements are executed depending on the values of certain variables. if if-else Loops Certain statements are executed repeatedly until certain conditions are met. while for do-while Control FlowDescriptionExamples

10 Nesting Conditionals and Loops Nest conditionals within conditionals. Nest loops within loops. Nest conditionals within loops within loops. 10

11 Monte Carlo Simulation General Code Structure: class MonteCarloSimulation { for(i=0; i<num_trials; i++) { Perform one independent trial { Generate random input; Deterministic computation on that input; } } Compute results aggregated over all trials; } 11

12 Single-Dimensional Arrays

13 13 Arrays in Java Java has special language support for arrays. n To make an array: declare, create, and initialize it. To access element i of array named a, use a[i]. Array indices start at 0. Compact alternative. n Declare, create, and initialize in one statement. n Default initialization: all numbers automatically set to zero. int N = 10; double[] a; // declare the array a = new double[N]; // create the array for (int i = 0; i < N; i++) // initialize the array a[i] = 0.0; // all to 0.0 int N = 10; double[] a = new double[N]; // declare, create, init

14 Array Layout in Memory Memory is split into equal sized units known as “addresses”. (Address Space) Arrays occupy consecutive addresses in this linear space: int[] a = {5, 6, 10}; Key Point: Name of the array indirectly references its starting address. int[] b = new int[3]; b=a; //b is an alias to a. REFERENCE TYPE 14 0 1 2... N-2 N-1 0 1 2 3 4 5 N-2 N-1 a[0] a[1] a[2] 5 6 10 Addresses

15 Array Length The array length can be obtained using the.length operator n for(i=0; i< myArray.length; i++) The array length cannot be changed after memory allocation n Can use arraylists to get around this limitation 15

16 Auto-increment Auto-increment and auto-decrement operators used with arrays. n ++i means “add one to i’s value and use the updated value” n i++ means “use i’s value now and then add one to the old value” n Can use on line by itself as a single statement – In which case they do exactly the same thing! n Differences between the auto-increment operators are important when used in expressions: y = 0; x = y++; y = 0; z = ++y; 16 Y=0; x = y; y = y+1; Y=0; y = y+1; z = y;

17 Multidimensional Arrays

18 18 Two Dimensional Arrays in Java Array access. Use a[i][j] to access element in row i and column j. Zero-based indexing. Row and column indices start at 0. double[][] a = new double[10][3]; for (int i = 0; i < 10; i++) { for (int j = 0; j < 3; j++) { a[i][j] = 0.0; } Declaring and Initializing a 10-by-3 Array

19 Memory Layout 2-D Arrays 19 Row array[0] array[1] array[2] array[3] array[0][0] array[1][2]

20 Ragged Arrays Row lengths can be non-uniform Can use.length int[][] a =...; for (int rows=0; rows < a.length; rows++) { for (int cols=0; cols < a[rows].length; cols++) System.out.print(" " + a[rows][cols]); System.out.println(""); } 20 Number of rows Number of columns for a given row

21 Functions/Static Methods

22 Components of a Function

23 23 Flow Control – Call by Value Call by reference – For reference types (arrays, objects)

24 Things to Remember About Functions Functions can be overloaded n Different argument types n Different number of arguments n Different return value is NOT overloading Scoping Rules for functions and conditional and loop code-blocks

25 Recursion

26 26 Recursion What is recursion? When one function calls itself directly or indirectly. Gcd. Find largest integer d that evenly divides into p and q. base case reduction step public static int gcd(int p, int q) { if (q == 0) return p; else return gcd(q, p % q); } base case reduction step, converges to base case

27 27 How-To’s on Writing Recursive Functions Base Case: n You must check if we’ve reached the base case before doing another level of recursion! Make Progress Towards Base Case: n Your recursive calls must be on a smaller or simpler input. n Eventually this must reach the base case (and not miss it). Multiple recursive calls: n Sometimes more than one recursive call. – H-Tree, Towers of Hanoi n Are their return values chosen, combined?

28 Objects

29 29 Objects Object. An entity that can take on a data type value. An object’s “value” can be returned to a client or be changed by one of the data type’s operations. length, substring, comparesequence of characters String OperationsSet of ValuesData Type get red component, brighten24 bits Color Picture get/set color of pixel (i, j)2D array of colors

30 Things to Remember About Objects Class API n Constructor n Instance Methods Difference between constructors and methods

31 Assigning one object/array to another object/array results in an alias n Cannot use == operator to check the equality of objects n Use instance method equals(). Can define this method for any class. Mutable vs. Immutable Objects n Immutable – Can’t change the value of an object after its created n Aliases to immutable objects are less problematic 31 Objects are Reference Types

32 Principles of Object Oriented Programming Encapsulation: Combine data and the functions that operate on that data into a single unit (object) Data Hiding: Clients should not be able to manipulate data in objects directly n Declare instance variables to be “private” – Use getter methods to read data within objects n Any object should be able to invoke the instance methods – Declare instance methods to be “public”

33 33 Summary of Classes (“Charge” Class Discussed in the Textbook)

34 Data Structures

35 35 Data Structures Lists n A collection of a variable number of items Typical Operations on Lists n Add an item to the list n Remove an item from the list n Read an item from the list n Check whether the list is empty n Get the current size of the list All of these are provided via the Java ArrayList class

36 36 Generics. Parameterize the datatype used in the data structure. You need to import the library: import java.util.ArrayList; 36 Generics ArrayList list= new ArrayList (); Apple a = new Apple(); Orange b = new Orange(); list.add(a); list.add(b); // compile-time error a = list.get(0); // returns an Apple object sample client

37 37 Autoboxing Generic ArrayList implementation. Only permits reference types. Wrapper type. n Each primitive type has a wrapper reference type. n Ex: Integer is wrapper type for int. Autoboxing. Automatic cast from primitive type to wrapper type. Autounboxing. Automatic cast from wrapper type to primitive type. ArrayList list= new ArrayList (); list.add(17); // autobox (int -> Integer) int a = list.get(i); // autounbox (Integer -> int)

38 38 Lists Can Be Organized in Different Ways Linked List n Linear sequence of elements Queue n Remove the item least recently added. n First-In, First-Out (FIFO) Stack n Remove the item most recently added. n Last-In, First-Out (LIFO) Array Implementation vs. ArrayList Implementation

39 Guest Speaker - Cryptography Wednesday (Apr. 22) – Prof. abhi shelat


Download ppt "Guest Speaker - Cryptography Wednesday (Apr. 22) – Prof. abhi shelat."

Similar presentations


Ads by Google