Emil Sekerinski, McMaster University, Winter Term 16/17 COMP SCI 1MD3 Introduction to Programming
|
|
- Shanna Robinson
- 5 years ago
- Views:
Transcription
1 Emil Sekerinski, McMaster University, Winter Term 16/17 COMP SCI 1MD3 Introduction to Programming
2 In Python, variables are names of objects base 5 >>> base = 5 >>> height = 4 >>> area = base*height/2 >>> base = 7 height area 10 4 Variables can contain uppercase and lowercase letter, digits, and _ Variables must not start with a digit and must not be one of the reserved words (keywords) like def, if, while, return, base height area
3 Python uses indentation for bracketing of nested statements S T S T if B: S B + S while B: S B + S if B: S else: T + B S T
4 n! = 1 if n = 0 0! = 1, 1! = 1, 2! = 2, n * (n 1)! if n > 0 3! = 6, 4! = 24, 5! = 120 A: B: Variables used within a function are local to the function def factorial(n): i, f = 0, 1 while i < n: i, f = i+1, f*(i+1) return f >>> factorial(5) >>> f # error Trace for input n = 5: Statement i f A 0 1 B 1 1 B 2 2 B 3 6 B 4 24 B 5 120
5 All the expressions on the right are evaluated before the values are simultaneously assigned to the variables on the left >>> x, y = y, x # swaps x, y! Different from a sequence of single assignments >>> x = y # x, y now name the same object! >>> y = x Factorial without multiple assignments: def factorial2(n): i = 0; f = 1 while i < n: i = i+1 f = f*i return f A sequence of statements may also be placed on a single line when separated by ;
6 The decision to start multiplying with 1, 2, 3,... is arbitrary; we can start equally well with n, n-1, A: B: def factorial3(n): f = 1 while n > 1: f, n = f*n, n-1 return f >>> x = 5 >>> factorial3(x) >>> x Statement n f A 5 1 B 4 5 B 3 20 B 2 60 B The actual parameter x is assigned to the formal parameter n.
7 All iterative implementations of factorial use an auxiliary counter variable and an accumulator variable, which becomes the result Counting can go up, from the lower to the upper bound, or down, from the upper to the lower bound The accumulator has to be initialized to a value that is the correct result if the loop is not executed at all a most common error!
8 A: B: C: Using indentation for nesting ensures that the visual appearance corresponds to the structure of the program. Short statements don t need to go on a separate line def gcd(x, y): u, v = x, y while u!= v: if u > v: u = u-v else: v = v-u return u u, v := x, y u v + + u > v u := u - v v := v - u Statement u v A 21 6 B 15 6 B 9 6 B 3 6 C 3 3
9 As a%b = (a+b)%b = (a-b)%b for any b 0, successive subtractions can be replaced by a single modulo operation A: B: def gcd2(x, y): u, v = x, y while v!= 0: u, v = v, u%v return u Statement u v A 21 6 B 6 3 B 3 0
10 A: B: def gcd2(x, y): u, v = x, y while v!= 0: u, v = v, u%v return u Statement u v A 6 21??? Statement u v A 6 21 B 21 6 B 6 3 B 3 0
11 Operator symbols, like +, *, are overloaded: they used for different, unrelated purposes, depending on the types of the operands. Python resolves the meaning dynamically (at runtime) def double(x): return 2*x >>> double(7) >>> double('?') Note: some languages resolve overloading statically (at compile-time)
12 Integer 17 is different from the string '17'. Objects can be explicitly converted from one type to another >>> int('17'), int(3.14) >>> int('nope'), int('3.14'), int((3, 4)) >>> float(17), float('3.14') >>> float('nope'), float((3, 4)) >>> str(17), str(3.14), str('yep'), str((3, 4)) >>> tuple('yep') >>> tuple(17), tuple(3, 4) Python also implicitly converts int to float >>> 2*3.14 danger >>> int( *2.0) loss of precision! >>> *2
13 The return statement specifies the result of a function and jumps to the end of the enclosing function f(): return def evenorodd(x): if x%2 == 0: return str(x) + " is even" else: return str(x) + " is odd"
14 * * * *10 0 1*2 3 +1*2 2 +0*2 1 +1*2 0 = ((2*10+0)*10+5)*10+3 = ((1*2+1)*2+0)*2+1 = 2053 = 13 Starting with the leftmost digit, the accumulator is multiplied by the base and the next digit is added (Horner's Rule) def binarytoint(b: "string of 0's and 1's"): n, i = 0, 0 while i < len(b): n, i = 2*n+int(b[i]), i+1 return n
15 For converting a number into a series a digits, the remainder of the division with the base gives the least digit; this is repeated with the quotient, until the number fits into a single digit 2053%10 = 3 13%2 = 1 205%10 = 5 6%2 = 0 20%10 = 0 3%2 = 1 2 %10 = 2 1%2 = 1 The resulting string can be constructed by concatenating to the left def inttobinary(n)-> "string of 0's and 1's": s = str(n%2) while n > 1: n = n//2 ; s = str(n%2)+s return s
16 The task is to check if property P(i) holds for some i where a <= i < b: i = a while i < b and not P(i): i = i+1 Testing if a character is present in a string involves linear search: i := a i < b and not P(i) + i := i + 1 (i < b P(i)) (i = b "not found") def hasundefinedbase2(s): i = 0 while i < len(s) and s[i]!= 'n': i = i+1 return i < len(s)
17 The task is again to check if property P(i) holds for some i where a <= i < b: i = a while i < b: if P(i): return "found at i" i = i+1 return "not found" This scheme involves returning from inside a repetition: def hasundefinedbase3(s): i = 0 while i < len(s): if s[i]=='n': return True i = i+1 return False i := a i < b + P(i) i := i + 1 return not found + return found
18 def hasundefinedbase(s): i = 0 while s[i]!= 'n' and i < len(s): i = i+1 return i < len(s) >>> hasundefinedbase('an') >>> hasundefinedbase('aaa') No, and and or are evaluated conditionally! Recall B and C = C if B else False B or C = True if B else C They are equivalent to and only if the operands are defined. Thus and are commutative, and and or are not.
19 For-loops iterate over all elements of a tuple, string, Unlike in while loops, in for loops the number of iterations is always bound. def n_count(seq): x = 0 for c in seq: if c == 'n': x = x+1 return x def binarytoint2(b): n = 0 for c in b: n = 2*n+int(c) return n In general: i = 0 for x in s: = while i < len(s): S x = s[i] S i = i+1 body S should not modify s loop variable x is undefined after the loop
20 range(a, b) can be used for iterating from integer a to b-1 if a is left out, it is taken to be 0 def factorial4(n): f = 1 for i in range(n): f = f*(i+1) return f i takes the values 0 to n-1 Note: range returns an "iterable" object. Its "values" can be inspected by converting to a list >>> list(range(3, 7))
21 The for statement can be used with the second pattern for i in range(a, b) if P(i): return "found at i" return "not found" A palindrome is a sequence that reads the same backward and forward. We take P(i) = s[i]!=s[-i-1] def ispalindrome(s): for i in range(len(s)//2): if s[i]!= s[-i-1]: return False return True >>> ispalindrome('pool') >>> ispalindrome('racecar')
22 def ispalindrome(s): for i in range(len(s)//2): if s[i]!= s[-i-1]: return False return True >>> ispalindrome('pool') >>> ispalindrome('racecar')
23 incorrect initialization, particularly that of accumulators incorrect termination condition of the loop, e.g. < vs. <= infinite loops by incorrectly updating the loop variable index calculation is "one off" improper bracketing/indentation of nested structures
24 missing x = 0 <= should be < def bad_n_count(seq): "number of 'n' in seq" i = 0 while i <= len(seq): if seq[i] == 'n': x = x+1 i = i+1 return x too much indentation
25 should be len(seq)-1 1 > should be >= 2 def bad_last_n_index(seq): "last index of 'n' in seq" i = len(seq) while i > 0: if seq[i] == 'n': return i i = i-1 missing return : alternatively i = i-1 before if
26 for loops automatically initialize and increment the loop variable, thus avoid certain class of errors for loops may necessitate jumps out of the loop by return or break, thus having multiple exits; while loops allow a single exit and make the termination condition explicit... while i<b and s[i]!='n':... i = i+1... # i>=b or s[i]=='n' for i in range(len(s)):... if s[i]!='n': break... #?... for this reason, we avoid break and prefer a single return at the end of a function
27 A function is recursive if it is defined in terms of itself. For it to be well-defined, there has to be a base case. For factorial: 1 if n = 0 n! = or n * (n 1)! if n > 0 def factorial(n): return 1 if n == 0 else n*factorial(n-1) >>> factorial(3) (1) (8) 6 return 1 if 3 == 0 else 3*factorial(2) (2) (7) 2 0! = 1 n! = n * (n 1)! if n > 0 return 1 if 2 == 0 else 2*factorial(1) (3) (6) 1 return 1 if 1 == 0 else 1*factorial(0) (4) (5) 1 return 1 if 0 == 0 else... leads to 3 recursive calls
28 "A certain man put a pair of rabbits in a place surrounded on all sides by a wall. How many pairs of rabbits can be produced from that pair in a year if it is supposed that every month each pair begets a new pair which from the second month on becomes productive?" month number of pairs Leonardo of Pisa, later known as Fibonacci, introduced in Liber Abaci, 1202, Hindu-Arabic numerals to Western culture. The excerpt above shows the growing Fibonacci sequence. producing
29 Besides being of mathematical interest, Fibonacci numbers have applications in biology, computing, art, design, In a colony of honeybees there are male bees, the drone bees, female bees, who do not produce eggs, and one female bee, the queen, who produces eggs. Males are produced by the queen's unfertilized eggs, so males only have a mother but no father. Females are produced when the queen mates with a male, so have two parents. Some females are fed with "royal jelly" which makes them grow into queens, ready to start a new colony when the bees form a swarm and leave their hive. How many ancestors do male bees have? parents 1 grandparents 2 great-grandparents 3 great-greatgrandparents great-great-greatgrandparents 5 8
30 Fibonacci numbers are recursively defined: fib(n) = 0 if n = 0 1 if n = 1 fib(n 1) + fib(n 2) if n > 1 def fib(n): return 0 if n == 0 else \ 1 if n == 1 else fib(n-1)+fib(n 2) fib(3) fib(3) leads to 4 recursive calls fib(1) fib(2) fib(0) fib(1) Recursion leads to "tree"-like calling structures P Q: P calls Q
31 Bad documentation repeats what the program does x = 0 # initialize x n = n+1 # increment n by 1 Good documentation consists of declarative descriptions (vs the imperative description of the program): explains the program in terms of the problem domain, summarizes what is happening next, justifies the design, e.g. choice of algorithm or data structure (e.g. linear search vs binary search), asserts conditions that must hold at certain places.
32 Python supports one-line comments, parameter comments, and multi-line documentation strings: def change(a, d): """ Computes the least number of coins or bills needed for amount a, a non-negative integer; available denominations have to be in d in ascending order. """ # r: remaining amount, initialized to a # c: array of same length as d with amount of each # denomination, initialized to all zeros i, r, c = len(d)-1, a, len(d)*[0] while i >= 0: c[i], r = divmod(r, d[i]) i = i-1 return c
33 Without documentation in natural language programs are difficult to understand and maintain even by the author! Self-explaining programs and programming languages don t work, cf COBOL! IDENTIFICATION DIVISION. PROGRAM-ID. Iteration-If. AUTHOR. Michael Coughlan. DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS. 01 Operator PIC X VALUE SPACE. PROCEDURE DIVISION. Calculator. PERFORM 3 TIMES DISPLAY "Enter First Number : " WITH NO ADVANCING ACCEPT Num1 DISPLAY "Enter Second Number : " WITH NO ADVANCING ACCEPT Num2 DISPLAY "Enter operator (+ or *) : " WITH NO ADVANCING ACCEPT Operator IF Operator = "+" THEN ADD Num1, Num2 GIVING Result END-IF IF Operator = "*" THEN MULTIPLY Num1 BY Num2 GIVING Result END-IF DISPLAY "Result is = ", Result END-PERFORM. STOP RUN.
34 Donald Knuth, 1984, see also literateprogramming.com: Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do. "among the 100 books that shaped the 20 th century" American Scientist Knuth created WEB for supporting literate programming for programming languages at that time. Modern languages have documentation features inspired by WEB
35 jupyter notebooks intertwine Python code with output of that code and explanations in one document: This allows explanations of code to be kept in proximity to the code, supporting understandability and maintenance.
Identify recursive algorithms Write simple recursive algorithms Understand recursive function calling
Recursion Identify recursive algorithms Write simple recursive algorithms Understand recursive function calling With reference to the call stack Compute the result of simple recursive algorithms Understand
More informationOVERVIEW. Recursion is an algorithmic technique where a function calls itself directly or indirectly. Why learn recursion?
CH. 5 RECURSION ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN JAVA, GOODRICH, TAMASSIA AND GOLDWASSER (WILEY 2016) OVERVIEW Recursion is an algorithmic
More informationIntroduction to Python Programming
advances IN SYSTEMS AND SYNTHETIC BIOLOGY 2018 Anna Matuszyńska Oliver Ebenhöh oliver.ebenhoeh@hhu.de Ovidiu Popa ovidiu.popa@hhu.de Our goal Learning outcomes You are familiar with simple mathematical
More informationDivide and Conquer Strategy. (Page#27)
MUHAMMAD FAISAL MIT 4 th Semester Al-Barq Campus (VGJW01) Gujranwala faisalgrw123@gmail.com Reference Short Questions for MID TERM EXAMS CS502 Design and Analysis of Algorithms Divide and Conquer Strategy
More informationFibonacci Numbers. An Exercise in Assembly Language Programming. Andreas Klappenecker. September 7, 2004
Fibonacci Numbers An Exercise in Assembly Language Programming Andreas Klappenecker September 7, 2004 1 Introduction Leonardo Pisano (1170 1250) was a scholar born in Pisa in Italy, who is probably better
More information\n is used in a string to indicate the newline character. An expression produces data. The simplest expression
Chapter 1 Summary Comments are indicated by a hash sign # (also known as the pound or number sign). Text to the right of the hash sign is ignored. (But, hash loses its special meaning if it is part of
More informationENGR 101 Engineering Design Workshop
ENGR 101 Engineering Design Workshop Lecture 2: Variables, Statements/Expressions, if-else Edgardo Molina City College of New York Literals, Variables, Data Types, Statements and Expressions Python as
More informationIntro to Programming. Unit 7. What is Programming? What is Programming? Intro to Programming
Intro to Programming Unit 7 Intro to Programming 1 What is Programming? 1. Programming Languages 2. Markup vs. Programming 1. Introduction 2. Print Statement 3. Strings 4. Types and Values 5. Math Externals
More informationIntroduction. C provides two styles of flow control:
Introduction C provides two styles of flow control: Branching Looping Branching is deciding what actions to take and looping is deciding how many times to take a certain action. Branching constructs: if
More informationLecture Numbers. Richard E Sarkis CSC 161: The Art of Programming
Lecture Numbers Richard E Sarkis CSC 161: The Art of Programming Class Administrivia Agenda To understand the concept of data types To be familiar with the basic numeric data types in Python To be able
More informationisinstance and While Loops
CS 1110: Introduction to Computing Using Python Lecture 20 isinstance and While Loops [Andersen, Gries, Lee, Marschner, Van Loan, White] Announcements A4: Due 4/20 at 11:59pm Should only use our str method
More informationTHE AUSTRALIAN NATIONAL UNIVERSITY Mid Semester Examination September COMP1730 / COMP6730 Programming for Scientists
THE AUSTRALIAN NATIONAL UNIVERSITY Mid Semester Examination September 2016 COMP1730 / COMP6730 Programming for Scientists Study Period: 15 minutes Time Allowed: 2 hours Permitted Materials: One A4 page
More informationData and Variables. Data Types Expressions. String Concatenation Variables Declaration Assignment Shorthand operators. Operators Precedence
Data and Variables Data Types Expressions Operators Precedence String Concatenation Variables Declaration Assignment Shorthand operators Review class All code in a java file is written in a class public
More informationRecursion: Recursion: repeated curses
Recursion: Programming can be viewed as the process of breaking a whole into parts, properly. This can be done in many ways. Recursion, is a special process of programming, where A whole is broken into
More informationChapter 1 Summary. Chapter 2 Summary. end of a string, in which case the string can span multiple lines.
Chapter 1 Summary Comments are indicated by a hash sign # (also known as the pound or number sign). Text to the right of the hash sign is ignored. (But, hash loses its special meaning if it is part of
More informationCSI33 Data Structures
Outline Department of Mathematics and Computer Science Bronx Community College October 24, 2018 Outline Outline 1 Chapter 8: A C++ Introduction For Python Programmers Expressions and Operator Precedence
More informationThese are reserved words of the C language. For example int, float, if, else, for, while etc.
Tokens in C Keywords These are reserved words of the C language. For example int, float, if, else, for, while etc. Identifiers An Identifier is a sequence of letters and digits, but must start with a letter.
More informationLanguage Reference Manual simplicity
Language Reference Manual simplicity Course: COMS S4115 Professor: Dr. Stephen Edwards TA: Graham Gobieski Date: July 20, 2016 Group members Rui Gu rg2970 Adam Hadar anh2130 Zachary Moffitt znm2104 Suzanna
More informationTwo Approaches to Algorithms An Example (1) Iteration (2) Recursion
2. Recursion Algorithm Two Approaches to Algorithms (1) Iteration It exploits while-loop, for-loop, repeat-until etc. Classical, conventional, and general approach (2) Recursion Self-function call It exploits
More informationFunctional Programming Languages (FPL)
Functional Programming Languages (FPL) 1. Definitions... 2 2. Applications... 2 3. Examples... 3 4. FPL Characteristics:... 3 5. Lambda calculus (LC)... 4 6. Functions in FPLs... 7 7. Modern functional
More informationDatatypes, Variables, and Operations
Datatypes, Variables, and Operations 1 Primitive Type Classification 2 Numerical Data Types Name Range Storage Size byte 2 7 to 2 7 1 (-128 to 127) 8-bit signed short 2 15 to 2 15 1 (-32768 to 32767) 16-bit
More informationCITS 1401 Problem Solving & Programming
CITS 1401 Problem Solving & Programming Tim French Lecture 03 Numeric Data Processing (These slides are based on John Zelle s powerpoint slides for lectures accompanied with the text book) Objectives of
More informationFunctions. CS10001: Programming & Data Structures. Sudeshna Sarkar Professor, Dept. of Computer Sc. & Engg., Indian Institute of Technology Kharagpur
Functions CS10001: Programming & Data Structures Sudeshna Sarkar Professor, Dept. of Computer Sc. & Engg., Indian Institute of Technology Kharagpur 1 Recursion A process by which a function calls itself
More informationChapter 5: Recursion
Chapter 5: Recursion Objectives Looking ahead in this chapter, we ll consider Recursive Definitions Function Calls and Recursive Implementation Anatomy of a Recursive Call Tail Recursion Nontail Recursion
More informationAnnouncements. Lab Friday, 1-2:30 and 3-4:30 in Boot your laptop and start Forte, if you brought your laptop
Announcements Lab Friday, 1-2:30 and 3-4:30 in 26-152 Boot your laptop and start Forte, if you brought your laptop Create an empty file called Lecture4 and create an empty main() method in a class: 1.00
More informationModule 05: Types of recursion
Module 05: Types of recursion Topics: Review of purely structural recursion Accumulative recursion Generative recursion Readings:ThinkP 5.8-5.10, 6.5-6.7 1 Review: Structural Recursion Template for code
More informationBriefly describe the purpose of the lexical and syntax analysis phases in a compiler.
Name: Midterm Exam PID: This is a closed-book exam; you may not use any tools besides a pen. You have 75 minutes to answer all questions. There are a total of 75 points available. Please write legibly;
More informationSCHEME 10 COMPUTER SCIENCE 61A. July 26, Warm Up: Conditional Expressions. 1. What does Scheme print? scm> (if (or #t (/ 1 0)) 1 (/ 1 0))
SCHEME 0 COMPUTER SCIENCE 6A July 26, 206 0. Warm Up: Conditional Expressions. What does Scheme print? scm> (if (or #t (/ 0 (/ 0 scm> (if (> 4 3 (+ 2 3 4 (+ 3 4 (* 3 2 scm> ((if (< 4 3 + - 4 00 scm> (if
More informationCSI 32. Lecture 15. Chapter 11 Recursion Functional Recursion 11.4 Binary Search
Lecture 15 Chapter 11 Recursion 11.3 Functional Recursion 11.4 Binary Search 11.3 Functional Recursion Functional recursion is a method of defining functions in which the function being defined is applied
More informationVariable and Data Type I
Islamic University Of Gaza Faculty of Engineering Computer Engineering Department Lab 2 Variable and Data Type I Eng. Ibraheem Lubbad September 24, 2016 Variable is reserved a location in memory to store
More informationAdmin. How's the project coming? After these slides, read chapter 13 in your book. Quizzes will return
Recursion CS 1 Admin How's the project coming? After these slides, read chapter 13 in your book Yes that is out of order, but we can read it stand alone Quizzes will return Tuesday Nov 29 th see calendar
More informationComputer System and programming in C
1 Basic Data Types Integral Types Integers are stored in various sizes. They can be signed or unsigned. Example Suppose an integer is represented by a byte (8 bits). Leftmost bit is sign bit. If the sign
More informationHere n is a variable name. The value of that variable is 176.
UNIT II DATA, EXPRESSIONS, STATEMENTS 9 Python interpreter and interactive mode; values and types: int, float, boolean, string, and list; variables, expressions, statements, tuple assignment, precedence
More informationLoops. CSE 114, Computer Science 1 Stony Brook University
Loops CSE 114, Computer Science 1 Stony Brook University http://www.cs.stonybrook.edu/~cse114 1 Motivation Suppose that you need to print a string (e.g., "Welcome to Java!") a user-defined times N: N?
More information15. Pointers, Algorithms, Iterators and Containers II
498 Recall: Pointers running over the Array 499 Beispiel 15. Pointers, Algorithms, Iterators and Containers II int a[5] = 3, 4, 6, 1, 2; for (int p = a; p < a+5; ++p) std::cout
More informationChapter 2, Part III Arithmetic Operators and Decision Making
Chapter 2, Part III Arithmetic Operators and Decision Making C How to Program, 8/e, GE 2016 Pearson Education, Ltd. All rights reserved. 1 2016 Pearson Education, Ltd. All rights reserved. 2 2016 Pearson
More informationCS116 - Module 5 - Accumulative Recursion
CS116 - Module 5 - Accumulative Recursion Cameron Morland Winter 2018 1 Cameron Morland CS116 - Module 5 - Accumulative Recursion Types of Recursion Structural Recursion Generative Recursion Accumulative
More informationCOMP 111. Introduction to Computer Science and Object-Oriented Programming
COMP 111 Introduction to Computer Science and Object-Oriented Programming 5 Feeling Out of the Loop? Methods - So Far Execute a sequence of statements Declarations Assignment statements Return Maybe an
More informationPython Programming: An Introduction to Computer Science
Python Programming: An Introduction to Computer Science Chapter 3 Computing with Numbers Python Programming, 2/e 1 Objectives n To understand the concept of data types. n To be familiar with the basic
More informationThe SPL Programming Language Reference Manual
The SPL Programming Language Reference Manual Leonidas Fegaras University of Texas at Arlington Arlington, TX 76019 fegaras@cse.uta.edu February 27, 2018 1 Introduction The SPL language is a Small Programming
More informationCOMP322 - Introduction to C++ Lecture 02 - Basics of C++
COMP322 - Introduction to C++ Lecture 02 - Basics of C++ School of Computer Science 16 January 2012 C++ basics - Arithmetic operators Where possible, C++ will automatically convert among the basic types.
More informationBBM 101. Introduction to Programming I. Lecture #06 Recursion
BBM 101 Introduction to Programming I Lecture #06 Recursion Aykut Erdem, Fuat Akal & Aydın Kaya // Fall 2018 Last time Collections, File I/O Lists a = [ 3, 2*2, 10-1 ] b = [ 5, 3, 'hi' ] c = [ 4, 'a',
More informationChapter 4: Control Structures I (Selection) Objectives. Objectives (cont d.) Control Structures. Control Structures (cont d.
Chapter 4: Control Structures I (Selection) In this chapter, you will: Objectives Learn about control structures Examine relational and logical operators Explore how to form and evaluate logical (Boolean)
More informationDM502 Programming A. Peter Schneider-Kamp.
DM502 Programming A Peter Schneider-Kamp petersk@imada.sdu.dk! http://imada.sdu.dk/~petersk/dm502/! Python & Linux Install Party Tomorrow (Tuesday, September 12) from 10 14 Fredagsbar (area south of Kantine
More information06/11/2014. Subjects. CS Applied Robotics Lab Gerardo Carmona :: makeroboticsprojects.com June / ) Beginning with Python
CS95003 - Applied Robotics Lab Gerardo Carmona :: makeroboticsprojects.com June / 2014 Subjects 1) Beginning with Python 2) Variables 3) Strings 4) Basic arithmetic operators 5) Flow control 6) Comparison
More informationConditionals and Loops
Conditionals and Loops Conditionals and Loops Now we will examine programming statements that allow us to: make decisions repeat processing steps in a loop Chapter 5 focuses on: boolean expressions conditional
More informationRecursion: The Mirrors. (Walls & Mirrors - Chapter 2)
Recursion: The Mirrors (Walls & Mirrors - Chapter 2) 1 To iterate is human, to recurse, divine. - L. Peter Deutsch It seems very pretty but it s rather hard to understand! - Lewis Carroll 2 A recursive
More informationAll about Fibonacci: A python approach
World Applied Programming, Vol (1), No (1), April 2011. 72-76 ISSN: 2222-2510 2011 WAP journal. www.waprogramming.com All about Fibonacci: A python approach C. Canaan * M. S. Garai M. Daya Information
More informationLecture 2. Examples of Software. Programming and Data Structure. Programming Languages. Operating Systems. Sudeshna Sarkar
Examples of Software Programming and Data Structure Lecture 2 Sudeshna Sarkar Read an integer and determine if it is a prime number. A Palindrome recognizer Read in airline route information as a matrix
More informationAlgorithms and Programming I. Lecture#12 Spring 2015
Algorithms and Programming I Lecture#12 Spring 2015 Think Python How to Think Like a Computer Scientist By :Allen Downey Installing Python Follow the instructions on installing Python and IDLE on your
More information4.2 Function definitions the basics
4.2. FUNCTION DEFINITIONS THE BASICS 89 4.2 Function definitions the basics There are three questions you must answer before you can write a function definition: What will the function do? What inputs
More informationPace University. Fundamental Concepts of CS121 1
Pace University Fundamental Concepts of CS121 1 Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University October 12, 2005 This document complements my tutorial Introduction
More informationControl Flow. COMS W1007 Introduction to Computer Science. Christopher Conway 3 June 2003
Control Flow COMS W1007 Introduction to Computer Science Christopher Conway 3 June 2003 Overflow from Last Time: Why Types? Assembly code is typeless. You can take any 32 bits in memory, say this is an
More informationPROGRAMMING IN C AND C++:
PROGRAMMING IN C AND C++: Week 1 1. Introductions 2. Using Dos commands, make a directory: C:\users\YearOfJoining\Sectionx\USERNAME\CS101 3. Getting started with Visual C++. 4. Write a program to print
More informationCMPT 125: Lecture 3 Data and Expressions
CMPT 125: Lecture 3 Data and Expressions Tamara Smyth, tamaras@cs.sfu.ca School of Computing Science, Simon Fraser University January 3, 2009 1 Character Strings A character string is an object in Java,
More informationCOMP-520 GoLite Tutorial
COMP-520 GoLite Tutorial Alexander Krolik Sable Lab McGill University Winter 2019 Plan Target languages Language constructs, emphasis on special cases General execution semantics Declarations Types Statements
More informationExpressions and Casting. Data Manipulation. Simple Program 11/5/2013
Expressions and Casting C# Programming Rob Miles Data Manipulation We know that programs use data storage (variables) to hold values and statements to process the data The statements are obeyed in sequence
More informationBabu Madhav Institute of Information Technology, UTU 2015
Five years Integrated M.Sc.(IT)(Semester 5) Question Bank 060010502:Programming in Python Unit-1:Introduction To Python Q-1 Answer the following Questions in short. 1. Which operator is used for slicing?
More informationEmil Sekerinski, McMaster University, Winter Term 16/17 COMP SCI 1MD3 Introduction to Programming
Emil Sekerinski, McMaster University, Winter Term 16/17 COMP SCI 1MD3 Introduction to Programming Games: HiLo, Entertainment: "random quote of the day", recommendations, Simulation: traffic, queues (supermarket,
More informationBasic Concepts. Computer Science. Programming history Algorithms Pseudo code. Computer - Science Andrew Case 2
Basic Concepts Computer Science Computer - Science - Programming history Algorithms Pseudo code 2013 Andrew Case 2 Basic Concepts Computer Science Computer a machine for performing calculations Science
More information1 Lexical Considerations
Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Spring 2013 Handout Decaf Language Thursday, Feb 7 The project for the course is to write a compiler
More informationThe PCAT Programming Language Reference Manual
The PCAT Programming Language Reference Manual Andrew Tolmach and Jingke Li Dept. of Computer Science Portland State University September 27, 1995 (revised October 15, 2002) 1 Introduction The PCAT language
More informationCS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University
CS 112 Introduction to Computing II Wayne Snyder Department Boston University Today: Java basics: Compilation vs Interpretation Program structure Statements Values Variables Types Operators and Expressions
More informationDM536 / DM550 Part 1 Introduction to Programming. Peter Schneider-Kamp.
DM536 / DM550 Part 1 Introduction to Programming Peter Schneider-Kamp petersk@imada.sdu.dk! http://imada.sdu.dk/~petersk/dm536/! RECURSION 2 Recursion a function can call other functions a function can
More informationPython Programming: An Introduction to Computer Science
Python Programming: An Introduction to Computer Science Chapter 3 Computing with Numbers Python Programming, 3/e 1 Objectives n To understand the concept of data types. n To be familiar with the basic
More information6.00 Notes On Big-O Notation
6.00 Notes On Big-O Notation April 13, 2011 Sarina Canelake See also http://en.wikipedia.org/wiki/big O notation We use big-o notation in the analysis of algorithms to describe an algorithm s usage of
More informationAbout the Final. Saturday, 7-10pm in Science Center 101. Closed book, closed notes. Not on the final: graphics, file I/O, vim, unix
CS 21 Final Review About the Final Saturday, 7-10pm in Science Center 101 Closed book, closed notes Not on the final: graphics, file I/O, vim, unix Expect Questions That Ask You To: Evaluate Python expressions
More informationSummer 2017 Discussion 10: July 25, Introduction. 2 Primitives and Define
CS 6A Scheme Summer 207 Discussion 0: July 25, 207 Introduction In the next part of the course, we will be working with the Scheme programming language. In addition to learning how to write Scheme programs,
More informationVariable and Data Type I
The Islamic University of Gaza Faculty of Engineering Dept. of Computer Engineering Intro. To Computers (LNGG 1003) Lab 2 Variable and Data Type I Eng. Ibraheem Lubbad February 18, 2017 Variable is reserved
More informationLoops / Repetition Statements
Loops / Repetition Statements Repetition statements allow us to execute a statement multiple times Often they are referred to as loops C has three kinds of repetition statements: the while loop the for
More informationExpressions and Casting
Expressions and Casting C# Programming Rob Miles Data Manipulation We know that programs use data storage (variables) to hold values and statements to process the data The statements are obeyed in sequence
More information14. Pointers, Algorithms, Iterators and Containers II
Recall: Pointers running over the Array Beispiel 14. Pointers, Algorithms, Iterators and Containers II Iterations with Pointers, Arrays: Indices vs. Pointers, Arrays and Functions, Pointers and const,
More informationChapter 1. Fundamentals of Higher Order Programming
Chapter 1 Fundamentals of Higher Order Programming 1 The Elements of Programming Any powerful language features: so does Scheme primitive data procedures combinations abstraction We will see that Scheme
More informationThere are four numeric types: 1. Integers, represented as a 32 bit (or longer) quantity. Digits sequences (possibly) signed are integer literals:
Numeric Types There are four numeric types: 1. Integers, represented as a 32 bit (or longer) quantity. Digits sequences (possibly) signed are integer literals: 1-123 +456 2. Long integers, of unlimited
More informationCSCA08 Winter 2018 Week 2: Variables & Functions. Marzieh Ahmadzadeh, Brian Harrington University of Toronto Scarborough
CSCA08 Winter 2018 Week 2: Variables & Functions Marzieh Ahmadzadeh, Brian Harrington University of Toronto Scarborough Administrative Detail Tutorials and practicals start this week Inverted lecture starts
More informationAn introduction to Scheme
An introduction to Scheme Introduction A powerful programming language is more than just a means for instructing a computer to perform tasks. The language also serves as a framework within which we organize
More informationCOMP 202 Java in one week
CONTENTS: Basics of Programming Variables and Assignment Data Types: int, float, (string) Example: Implementing a calculator COMP 202 Java in one week The Java Programming Language A programming language
More informationFundamentals of Programming Session 13
Fundamentals of Programming Session 13 Instructor: Reza Entezari-Maleki Email: entezari@ce.sharif.edu 1 Fall 2014 These slides have been created using Deitel s slides Sharif University of Technology Outlines
More informationThere are three questions on this exam. You have 2 hours to complete it. Please indent your program so that it is easy for the grader to read.
There are three questions on this exam. You have 2 hours to complete it. Please indent your program so that it is easy for the grader to read. 1. Write a function named largestadjacentsum that iterates
More informationCSC312 Principles of Programming Languages : Functional Programming Language. Copyright 2006 The McGraw-Hill Companies, Inc.
CSC312 Principles of Programming Languages : Functional Programming Language Overview of Functional Languages They emerged in the 1960 s with Lisp Functional programming mirrors mathematical functions:
More informationMirage. Language Reference Manual. Image drawn using Mirage 1.1. Columbia University COMS W4115 Programming Languages and Translators Fall 2006
Mirage Language Reference Manual Image drawn using Mirage 1.1 Columbia University COMS W4115 Programming Languages and Translators Fall 2006 Prof. Stephen Edwards Team Members: Abhilash I ai2160@columbia.edu
More informationLecture 22. While Loops
Lecture 22 While Loops Announcements for This Lecture Assignments Prelim 2 A5 is now graded Will be returned in lab Mean: 52 Median: 53 Std Dev: 5.5 Passing Grade: 30 A6 due next Tuesday Dataset should
More information(f) d={ alchemist :( a, t ), shaman : ( s, n ), wizard : ( w, z )} d[ shaman ][1]
CSCI1101 Final Exam December 18, 2018 Solutions 1. Determine the value and type of each of the expressions below. If the question has two lines, assume that the statement in the first line is executed,
More informationWEEK 4 OPERATORS, EXPRESSIONS AND STATEMENTS
WEEK 4 OPERATORS, EXPRESSIONS AND STATEMENTS OPERATORS Review: Data values can appear as literals or be stored in variables/constants Data values can be returned by method calls Operators: special symbols
More informationc) Comments do not cause any machine language object code to be generated. d) Lengthy comments can cause poor execution-time performance.
2.1 Introduction (No questions.) 2.2 A Simple Program: Printing a Line of Text 2.1 Which of the following must every C program have? (a) main (b) #include (c) /* (d) 2.2 Every statement in C
More informationDM550/DM857 Introduction to Programming. Peter Schneider-Kamp
DM550/DM857 Introduction to Programming Peter Schneider-Kamp petersk@imada.sdu.dk http://imada.sdu.dk/~petersk/dm550/ http://imada.sdu.dk/~petersk/dm857/ Project Qualification Assessment first assessment
More informationControl Structures. Lecture 4 COP 3014 Fall September 18, 2017
Control Structures Lecture 4 COP 3014 Fall 2017 September 18, 2017 Control Flow Control flow refers to the specification of the order in which the individual statements, instructions or function calls
More informationAssoc. Prof. Dr. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved.
Assoc. Prof. Dr. Marenglen Biba (C) 2010 Pearson Education, Inc. All for repetition statement do while repetition statement switch multiple-selection statement break statement continue statement Logical
More informationCS 31: Intro to Systems Binary Arithmetic. Martin Gagné Swarthmore College January 24, 2016
CS 31: Intro to Systems Binary Arithmetic Martin Gagné Swarthmore College January 24, 2016 Unsigned Integers Suppose we had one byte Can represent 2 8 (256) values If unsigned (strictly non-negative):
More informationComputing with Numbers
Computing with Numbers Example output: Numeric Data Types Numeric Data Types Whole numbers are represented using the integer data type (int for short).values of type int can be positive or negative whole
More informationControl Structures in Java if-else and switch
Control Structures in Java if-else and switch Lecture 4 CGS 3416 Spring 2017 January 23, 2017 Lecture 4CGS 3416 Spring 2017 Selection January 23, 2017 1 / 26 Control Flow Control flow refers to the specification
More informationP1 Engineering Computation
1EC 2001 1 / 1 P1 Engineering Computation David Murray david.murray@eng.ox.ac.uk www.robots.ox.ac.uk/ dwm/courses/1ec Hilary 2001 1EC 2001 2 / 1 Algorithms: Design, Constructs and Correctness 1EC 2001
More informationCONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17
List of Programs xxv List of Figures xxix List of Tables xxxiii Preface to second version xxxv PART 1 Structured Programming 1 1 Getting started 3 1.1 Programming 3 1.2 Editing source code 5 Source code
More information3. Java - Language Constructs I
Educational Objectives 3. Java - Language Constructs I Names and Identifiers, Variables, Assignments, Constants, Datatypes, Operations, Evaluation of Expressions, Type Conversions You know the basic blocks
More informationMICROPROCESSOR SYSTEMS INTRODUCTION TO PYTHON
MICROPROCESSOR SYSTEMS INTRODUCTION TO PYTHON Table of contents 2 1. Learning Outcomes 2. Introduction 3. The first program: hello world! 4. The second program: hello (your name)! 5. More data types 6.
More informationSTUDENT LESSON A12 Iterations
STUDENT LESSON A12 Iterations Java Curriculum for AP Computer Science, Student Lesson A12 1 STUDENT LESSON A12 Iterations INTRODUCTION: Solving problems on a computer very often requires a repetition of
More informationCS313D: ADVANCED PROGRAMMING LANGUAGE
CS313D: ADVANCED PROGRAMMING LANGUAGE Computer Science department Lecture 2 : C# Language Basics Lecture Contents 2 The C# language First program Variables and constants Input/output Expressions and casting
More informationRepetition Structures
Repetition Structures Chapter 5 Fall 2016, CSUS Introduction to Repetition Structures Chapter 5.1 1 Introduction to Repetition Structures A repetition structure causes a statement or set of statements
More informationModule 2 - Part 2 DATA TYPES AND EXPRESSIONS 1/15/19 CSE 1321 MODULE 2 1
Module 2 - Part 2 DATA TYPES AND EXPRESSIONS 1/15/19 CSE 1321 MODULE 2 1 Topics 1. Expressions 2. Operator precedence 3. Shorthand operators 4. Data/Type Conversion 1/15/19 CSE 1321 MODULE 2 2 Expressions
More informationCondition-Controlled Loop. Condition-Controlled Loop. If Statement. Various Forms. Conditional-Controlled Loop. Loop Caution.
Repetition Structures Introduction to Repetition Structures Chapter 5 Spring 2016, CSUS Chapter 5.1 Introduction to Repetition Structures The Problems with Duplicate Code A repetition structure causes
More information