guest speaker cryptography n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Guest Speaker - Cryptography PowerPoint Presentation
Download Presentation
Guest Speaker - Cryptography

Loading in 2 Seconds...

play fullscreen
1 / 39

Guest Speaker - Cryptography - PowerPoint PPT Presentation


  • 113 Views
  • Uploaded on

Guest Speaker - Cryptography. Wednesday (Apr. 22) – Prof. abhi shelat. Final Exam Review. Built-In Datatypes. Variables. A variable has three parts: Name (e.g., “ x ”) Type (e.g., int , double , String ) Value How does a variable get a value? Can be initialized in the program

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Guest Speaker - Cryptography' - farren


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
guest speaker cryptography

Guest Speaker - Cryptography

Wednesday (Apr. 22) – Prof. abhi shelat

variables
Variables
  • A variable has three parts:
    • Name (e.g., “x”)
    • Type (e.g., int, double, String)
    • Value
  • 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;
built in data types
Built-in Data Types
  • Data type. A set of values and operations defined on those values.

type

set of values

literal values

operations

char

characters

'A'

'@'

compare

String

sequences of characters

"Hello World"

"CS is fun"

concatenate

int

integers

17

12345

add, subtract, multiply, divide

double

floating point numbers

3.1415

6.022e23

add, subtract, multiply, divide

boolean

truth values

true

false

and, or, not

type conversion
Type Conversion
  • Type conversion. Convert from one type of data to another.
    • Automatic: no loss of precision; or with strings.
    • Explicit: cast; or method.
control flow summary
Control Flow Summary
  • Control flow.
    • Sequence of statements that are actually executed in a program.
    • Conditionals and loops: enables us to choreograph the control flow.

Control Flow

Description

Examples

Straight-lineprograms

All statements areexecuted in the order given.

Conditionals

Certain statements areexecuted depending on thevalues of certain variables.

if

if-else

Loops

Certain statements areexecuted repeatedly untilcertain conditions are met.

while

for

do-while

nesting conditionals and loops
Nesting Conditionals and Loops
  • Nest conditionals within conditionals.
  • Nest loops within loops.
  • Nest conditionals within loops within loops.
monte carlo simulation
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;

}

arrays in java
Arrays in Java

Java has special language support for arrays.

  • 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.

  • Declare, create, and initialize in one statement.
  • Default initialization: all numbers automatically set to zero.

intN =10;

double[] a; // declare the array

a =newdouble[N]; // create the array

for(int i =0; i < N; i++) // initialize the array

a[i]=0.0; // all to 0.0

intN =10;

double[] a =newdouble[N]; // declare, create, init

array layout in memory
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

0 1 2 . . . N-2 N-1

Addresses

0 1 2 3 4 5 N-2 N-1

a[0] a[1] a[2]

5610

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

Auto-increment and auto-decrement operators used with arrays.

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

Y=0; x = y; y = y+1;

Y=0; y = y+1; z = y;

two dimensional arrays in java
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 =newdouble[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

memory layout 2 d arrays
Memory Layout 2-D Arrays

array[0]

array[0][0]

Row

array[1][2]

array[1]

array[2]

array[3]

ragged arrays
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("");

}

Number of rows

Number of columns for a given row

flow control call by value
Flow Control – Call by Value
  • Call by reference – For reference types (arrays, objects)
things to remember about functions
Things to Remember About Functions
  • Functions can be overloaded
    • Different argument types
    • Different number of arguments
    • Different return value is NOT overloading
  • Scoping Rules for functions and conditional and loop code-blocks
recursion1
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,converges to base case

public staticint gcd(int p,int q) {

if(q ==0)return p;

elsereturn gcd(q, p % q);

}

base case

reduction step

26

how to s on writing recursive functions
How-To’s on Writing Recursive Functions

Base Case:

You must check if we’ve reached the base case before doing another level of recursion!

Make Progress Towards Base Case:

Your recursive calls must be on a smaller or simpler input.

Eventually this must reach the base case (and not miss it).

Multiple recursive calls:

Sometimes more than one recursive call.

H-Tree, Towers of Hanoi

Are their return values chosen, combined?

27

objects1
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.

Data Type

Set of Values

Operations

Color

24 bits

get red component, brighten

Picture

2D array of colors

get/set color of pixel (i, j)

String

sequence of characters

length, substring, compare

29

things to remember about objects
Things to Remember About Objects
  • Class API
    • Constructor
    • Instance Methods
  • Difference between constructors and methods
objects are reference types
Assigning one object/array to another object/array results in an alias

Cannot use == operator to check the equality of objects

Use instance method equals(). Can define this method for any class.

Mutable vs. Immutable Objects

Immutable – Can’t change the value of an object after its created

Aliases to immutable objects are less problematic

Objects are Reference Types

31

principles of object oriented programming
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
    • Declare instance variables to be “private”
      • Use getter methods to read data within objects
    • Any object should be able to invoke the instance methods
      • Declare instance methods to be “public”
data structures1
Data Structures
  • Lists
    • A collection of a variable number of items
  • Typical Operations on Lists
    • Add an item to the list
    • Remove an item from the list
    • Read an item from the list
    • Check whether the list is empty
    • Get the current size of the list
  • All of these are provided via the Java ArrayList class
generics
Generics. Parameterize the datatype used in the data structure.

You need to import the library: import java.util.ArrayList;

Generics

ArrayList<Apple> list= new ArrayList<Apple>();

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

36

autoboxing
Autoboxing

Generic ArrayList implementation. Only permits reference types.

Wrapper type.

Each primitive type has a wrapper reference type.

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<Integer> list= newArrayList<Integer>();

list.add(17);// autobox (int -> Integer)

int a = list.get(i); // autounbox (Integer -> int)

37

lists can be organized in different ways
Lists Can Be Organized in Different Ways
  • Linked List
    • Linear sequence of elements
  • Queue
    • Remove the item least recently added.
    • First-In, First-Out (FIFO)
  • Stack
    • Remove the item most recently added.
    • Last-In, First-Out (LIFO)
  • Array Implementation vs. ArrayList Implementation
guest speaker cryptography1

Guest Speaker - Cryptography

Wednesday (Apr. 22) – Prof. abhi shelat