Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date:...
Transcript of Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date:...
![Page 1: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/1.jpg)
CSE 115Introduction to Computer Science I
![Page 2: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/2.jpg)
Note about posted slides
The slides we post will sometimes contain additional slides/content, beyond what
was presented in any one lecture.
We do this so the slides more accurately reflect the content presented in all lecture sections, including questions that came up during lecture, and content that was
presented on the board.
![Page 3: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/3.jpg)
Announcements
No required labs this week: Baldy 21 not staffed.
No required labs next week, but Baldy 21 will be staffed. You are invited to come in to meet TAs and do
some preliminary set-up.
Required labs start the week of September 10.
![Page 4: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/4.jpg)
Road map
▶︎ Ground rules ◀
Expressions
Demo: expressions in Python
![Page 5: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/5.jpg)
Ground rules
![Page 6: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/6.jpg)
Ground rules
• Programming languages come and go
• Programmers adapt to survive and thrive
Change is inevitable
![Page 7: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/7.jpg)
Ground rules
• General principles common to all programming languages
• Specific details differ between programming languages
Programming fundamentals
![Page 8: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/8.jpg)
Ground rules
• Code in the Python programming language will be identified using this logo:
• Code in the JavaScript programming language will be identified using this logo:
• Either logo may be placed next to the code segment whose language it identifies, or in the bottom right corner of the slide to apply to all code on the slide, as shown below:
Identification
![Page 9: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/9.jpg)
Ground rules
• Everything we tell you should be correct*
• We will not tell you everything
* but remember: to err is human
Correct not complete
![Page 10: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/10.jpg)
Ground rules
• We will revisit topics and add to our knowledge over time
• Your skill will develop with practice
Knowledge and skill will grow
![Page 11: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/11.jpg)
Road map
Ground rules
▶︎ Expressions ◀
Demo: expressions in Python
![Page 12: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/12.jpg)
ExpressionsAn expression is a part of a program that has a value.
![Page 13: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/13.jpg)
ExpressionsAn expression is a part of a program that has a value.
Examples:
3 3 + 5
![Page 14: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/14.jpg)
ExpressionsAn expression is a part of a program that has a value.
Examples:
3 3 + 5
3 is a (simple) expression
3 is a (simple) expression
5 is a (simple) expression
![Page 15: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/15.jpg)
ExpressionsAn expression is a part of a program that has a value.
3 3 + 5
3 is a (simple) expression
3 is a (simple) expression
5 is a (simple) expression
3 + 5 is a compound expression in which
the + operator applies to two smaller
expressions, 3 and 5, to create a larger
expression.
![Page 16: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/16.jpg)
ExpressionsAn expression is a part of a program that has a value.
3 5
We can visualize/draw a compound expression as a "tree":
+
![Page 17: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/17.jpg)
Expressions
Simple expressions are atomic (cannot be decomposed)
Examples:
3
17
Simple or Compound
Compound expressions consist of subexpressions (can be decomposed)
Examples:
3 + 5
-12 * 17
![Page 18: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/18.jpg)
Simple Expressions• Numeric literals
int (eg 4037, 4_037)
float (eg 3.1415, 6.022140857e23, 6.022_140_857e23)
• Boolean literals (False and True)
• Text literals
string (eg "This is some text", 'This is also some text')
![Page 19: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/19.jpg)
Compound Expressions
A compound expression consists of one or more expressions AND one operator.
unary negation operator (-) applied to an integer: -17
binary subtraction operator (-) applied to two integers: 43 - 5
![Page 20: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/20.jpg)
Q: can an expression have more than one operator?
For example, is 3 + 4 * 5 a valid expression?
![Page 21: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/21.jpg)
Q: can an expression have more than one operator?
For example, is 3 + 4 * 5 a valid expression?
Yes, 3 + 4 * 5 is a valid expression, but like any compound expression is has a basic structure:
expression
operator
expression
![Page 22: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/22.jpg)
Q: can an expression have more than one operator?
For example, is 3 + 4 * 5 a valid expression?
In this example the expression on the right is itself a compound expression:
expression
operator
expression
operator
expression
![Page 23: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/23.jpg)
Q: can an expression have more than one operator?
For example, is 3 + 4 * 5 a valid expression?
Yes, 3 + 4 * 5 is a valid expression, but like any compound expression is has a certain structure:
3
+
4 5
*
The "top level" expression adds the values of two smaller expressions, 3 and 4 * 5.
The product of 4 and 5 is 20.
The sum of 3 and 20 is 23.
![Page 24: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/24.jpg)
Expressions
Follows Mathematic rules
Multiplication and Division and before Addition and Subtraction
Inside Parentheses first
6 - 3 + (1 + 4 * 5) resolves to 24
Order of Operations
![Page 25: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/25.jpg)
Most languages interpret arithmetic expressions by applying "order of operations", or precedence rules, that we're familiar with from ordinary arithmetic.
Without assuming those rules, there's another possible interpretation:
3
+
4
5
*
The "top level" expression multiplies the values of two
smaller expressions, 3 + 4 and 5.
The sum of 3 + 4 and 7.
The product of 7 and 5 is 35.
![Page 26: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/26.jpg)
Compound ExpressionsAddition (+)
Subtraction (-)
Multiplication (*)
Division (/ and //)
Modulo (%)
Comparisons (<, <=, >, >=, ==, !=)
Binary operators
![Page 27: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/27.jpg)
Expressions
Expressions are evaluated to produce their values.
The expression “hello” has value “hello”.
The expression “hello ” + “world” has value “hello world”.
Note the space at the end of “hello ”
String (str) Expressions
![Page 28: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/28.jpg)
Expressions
Expressions are evaluated to produce their values.
The expression “hello” has value “hello”.
The expression “hello ” + “world” has value “hello world”.
String (str) Expressions
The + operator in this context refers to the string concatenation operator.
![Page 29: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/29.jpg)
Expressions
Expressions are evaluated to produce their values.
The expression 3 has value 3.
The expression 3 + 5 has value 8.
Evaluation
![Page 30: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/30.jpg)
TopHat
Before we dive into our LiveCoding demo, let's try out some TopHat questions!
![Page 31: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/31.jpg)
Road map
Ground rules
Expressions
▶︎ Demo: expressions in Python ◀
![Page 32: Day02-expressions-literals - University at Buffalo · Day02-expressions-literals.key Created Date: 8/30/2018 2:27:22 AM ...](https://reader033.fdocuments.net/reader033/viewer/2022060303/5f08d4a07e708231d423edef/html5/thumbnails/32.jpg)
Demo: expressions in Python
• Show how to set up Che
• Live Coding demo