Presentation is loading. Please wait.

Presentation is loading. Please wait.

Ben Stanley for gAlpha gALPHA free, four-week venture-creation workshop designed to help entrepreneurially-minded students and technologists create high-growth.

Similar presentations


Presentation on theme: "Ben Stanley for gAlpha gALPHA free, four-week venture-creation workshop designed to help entrepreneurially-minded students and technologists create high-growth."— Presentation transcript:

1 Ben Stanley for gAlpha gALPHA free, four-week venture-creation workshop designed to help entrepreneurially-minded students and technologists create high-growth startups Partnership UW - Computer Science department WARF (Wisconsin Alumni Research Foundation) Extension of the UW-CS NEST program

2 CS 200 Primitives and Expressions
Jim Williams, PhD

3 This Week Chap 1 Programs - 3 parts (P1)
Due Thursday Team Lab 1: Tuesday or Wednesday Piazza: Don't post code Unless you post only to "Instructors" which makes it private. Lecture: Primitive Data Types, Process, Expressions and Methods

4 Team Labs First meeting this week. 1350 cs and 1370 cs Meet Assistants
1st floor, around corner from elevators Meet Assistants Work in pairs and small groups Discuss Terms, Trace & Explain code Edit-Compile-Run Cycle on the command-line

5 Pair Programming 2 people working together on 1 computer.
One person types, the other provides direction and reviews. Many report more confidence in solution and more enjoyment programming. Important to switch roles (who has the keyboard). Provide respectful, honest and friendly feedback.

6 Edit-Compile-Run Cycle
Users Editor (Virtual) Machine Compiler Hello.java Hello.class Computer Files Programmer

7 Edit-Compile-Run Cycle
From the command-line: notepad (Editor) javac (Compiler) java (Virtual Machine)

8 Demo In team lab 1

9 File name For the class named Cat, what is the name of the file that the compiler creates and is provided to the Java Virtual Machine to run? Cat.txt Cat.java Cat.class Cat Cat.class

10 Compile on Command Line
For the class named Cat, what command would compile the class? notepad Cat.java javac Cat.java java Cat.java java Cat javac Cat.java

11 Edit-Compile-Run Cycle
Users Editor (Virtual) Machine Compiler Hello.java Hello.class Computer Files Programmer

12 Various Errors Naming/Saving Syntax/Compile time Runtime & Logic Files
Editor (Virtual) Machine Compiler Hello.java Hello.class Computer Files Programmer

13 Names for Numbers of Bits
Memory Names for Numbers of Bits bit nibble (4 bits) byte (8 bits) 2 bytes (16)

14 Infinite Numbers How do we represent and do calculations on a finite machine?

15 Integer Data Types -192, 0, 42, 2000000000 byte short int long
Bytes in Memory

16 Floating Point Data Types
, 2.0, -5.2, float double Bytes in Memory

17 All 8 Primitive Data Types
char single character (2 bytes) boolean true or false value (>= 1 bit) Integer byte, short, int, long Floating Point float, double

18 Primitive Data Types How many can you list?

19 Literals Data literally typed into a program. 2 2.3 12l 12L 2.4F true
double long float boolean char String

20 Today Primitives & Expressions Process Methods

21 Variable Declaration & Assignment
int j; j = 5; int k = 4; j 5 k 4 a variable is a name for an area of memory = is "assignment" operator, Not equals (==) value on right copied into variable on left "initialization" is assigning the first value

22 What are the values in a, b & c?
int a = 5; int b = 7; int c = a; b = c; a = b; a: 5 b: 7 c: 5 b: 5 c: 7 try it in Java Visualizer

23 What are the values in a, b & c?
int a = 2; int b = 1; int c = a + b; a = b; a = c; a: 2 b: 1 c: 3 a: 3 c: 2 try it in Java Visualizer

24 Programming Process Study the Problem Design an Algorithm (pseudocode)
Write Java Compile the Code Run the code Repeat

25 Problem Obtain 3 numbers from the user.
IF the 3 numbers could be lengths of the sides of a triangle, output "COULD be lengths of sides of a triangle" OTHERWISE output "Cannot be lengths of sides of a triangle" import java.util.Scanner; public class ClassNameHere { public static void main(String[] args) { Scanner input = new Scanner(System.in); double one = input.nextDouble(); double two = input.nextDouble(); double three = input.nextDouble(); if ( one + two > three && one + three > two && two + three > one) { System.out.println("COULD be the lengths of the sides of a triangle."); } else { System.out.println("Cannot be the lengths of the sides of a triangle."); } Reference: Frank Ackerman

26 Study the Problem What are the goals of the problem?
What are the inputs, outputs, relationship? Can you solve a small example by hand? Can you describe the algorithm in words (pseudocode)?

27 Evaluating Java Expressions
Apply Precedence and Associativity rules by Parenthesizing expressions. Evaluate expressions Left-to-Right.

28 Precedence Evaluate higher precedence operators first. 1 + 2 * 3
Effectively: (1 + (2 * 3))

29 What is the result? 2 * 3 + 1 * 4 + 2 Effectively:
((2 * 3) + (1 * 4) )+ 2

30 Associativity If same precedence, which first? 2 + 3 + 4 "A" + 2 + 3
Since + associativity is left-to-right, effectively: ((2 + 3) + 4) (("A" + 2) + 3)

31 What is result?

32 Operator Precedence & Associativity

33 What are the values of a, b & c?
int a = 1; int b = 2; int c = a = b = 3;

34 What are the values of d & e?
int d = 4; int e = d / (d = 2)

35 Application: Temperature Conversion
(Degrees Fahrenheit – 32) x 5 / 9 = Degrees Celsius What symbols have different meanings in Java? What changes must be made to implement this equation in Java? public class TemperatureConversion { public static void main(String[] args) { //testFahrenheitToCelsius(); //comment out when tests are all passing //method call; the result is a double value double result = fahrenheitToCelsius( 212.0); //212.0 is the argument } //test method with a set of test cases. Run to test initially or //after changing the method to verify the method is still working //correctly. If a bug is found in the method being tested, then //create a different test case to demostrate the bug. Fix your code //then run all the tests to make sure all work correctly. public static void testFahrenheitToCelsius() { System.out.println( fahrenheitToCelsius( 212.0) + " expect 100.0"); System.out.println( fahrenheitToCelsius( 0.0) + " expect "); System.out.println( fahrenheitToCelsius( 98.6) + " expect 37"); System.out.println( fahrenheitToCelsius( -20) + " expect "); //method definition //for most of this course, methods you create will be public static //return type method name (parameter list) public static double fahrenheitToCelsius(double degreesFahrenheit) { //the parameter degreesFahrenheit (a variable) is initialized to //the argument passed when the method is called. //the equation we are converting to Java //(Degrees Fahrenheit – 32) x 5 / 9 = Degrees Celsius double degreesCelsius; degreesCelsius = (degreesFahrenheit ) * (5.0 / 9); return degreesCelsius; //the value return as a result of the method

36 My List X vs * equals (==) vs assignment (=)
value is stored on the left hand side of assignment (=) operator Variables: name areas of computer memory, declare before use, declare type of data, initialize Variable names: start with letter, include letters numbers and _, but no spaces Conventions: camelCasing, spell out names Semicolon at the end of statements

37 Java Visualizer Implement Equation Create and call a method

38 CS Core Principles: Algorithms: A step-by-step set of operations to be performed. Analogy: Recipe, Instructions Abstraction: a technique for managing complexity. Analogy: Automobile, CS200 Computer View

39 Methods A named section of code that can be "called" from other code.
Lots of existing methods that you can use rather than writing yourself. To use, "call the method". The method executes (runs) and may return a value.

40 Calling Class (static) Methods
double numInts = Math.pow( 2, 32); double root = Math.sqrt( 16); int num1 = 16; int num2 = 3; double result; result = num2 + Math.sqrt( num1);

41 mPrint - which is Call, Definition?
mPrint call then mPrint definition static void mPrint() { System.out.println("my print"); } public static void main(String []args) { mPrint(); B is the correct answer

42 Defining Methods public class M { //method definition
static void mPrint() { System.out.println("my print"); } public static void main(String []args) { mPrint(); // method call. B is the correct answer

43 Is count: Argument or Parameter?
public static void main(String []args) { int num = 10; printCount( 23); printCount( num+3); } static void printCount(int count) { System.out.println("count:" + count); argument parameter count is a parameter (zyBooks) or formal parameter the number 23, for example is an argument (also called an actual parameter).

44 Returning a Value from a Method
static int triple(int num) { return num * 3; } public static void main(String []args) { int value = 5; int result = triple( value);

45 What prints out? static void calc(int num) { num = 3; }
5 35 error static void calc(int num) { num = 3; } public static void main(String []args) { int n = 5; calc( n); System.out.println( n); try it.

46 Which is called first: calc or println?
error static int calc(int num) { num -= 33; return num; } public static void main(String []args) { int n = 55; System.out.println( calc( n)); put a print statement within the calc method to see if it is called before the println method.

47 Testing Methods Methods written to run test cases to help validate and debug your code.

48 Magic Numbers (bad practice)
Numbers with unexplained meaning: public class H { public static void main(String []args) { double s = 71 / ; }

49 Variable Names Useful variable names can help with code readability.
public class H { public static void main(String []args) { double height = 71; height = height / ; }

50 Constants Constants (final variables) can help with readability.
public class H { public static void main(String []args) { final double INCHES_IN_METER = ; double heightInInches = 71; double heightInMeters = heightInInches / INCHES_IN_METER; }


Download ppt "Ben Stanley for gAlpha gALPHA free, four-week venture-creation workshop designed to help entrepreneurially-minded students and technologists create high-growth."

Similar presentations


Ads by Google