How To Program In Scheme (Prolog)
|
|
|
- Alannah Kelly
- 5 years ago
- Views:
Transcription
1 The current topic: Scheme! Introduction! Object-oriented programming: Python Functional programming: Scheme! Introduction Next up: Numeric operators, REPL, quotes, functions, conditionals Types and values Syntax and semantics Exceptions Logic programming: Prolog Announcements Reminder: Term Test 1 is on Monday in GB405, not in the regular lecture room. 50 minutes (11:10 12:00. You're allowed to have one double-sided aid sheet for the test. You must use standard letter-sized (that is, 8.5" x 11" paper. The aid sheet can be produced however you like (typed or handwritten. Bring your TCard. What's covered? Everything from the first seven lectures (that is, everything up to and including September 26th. Lab 1. An old Term Test 1 has been posted. The exercises at the end of each lecture are also good practice. Solutions to Lab 1 are available from the directory ~ajuma/share/326/lab1 on ECF. 1 2 Review: car, cdr, and cons Numeric operators car returns the first element of a list: > (car '((a b (c d (a cdr returns the rest of a list: > (cdr '((a b (c d (b (c d cons adds an element to the front of a list: The numeric operators +, -, *, / are used just like any function, in parenthesized prefix form. > ( > ( > (* > (/ 5 3 ; returns a fraction! 5/3 > (cons '(a b '((c d ((a b (c d 3 4
2 More examples: > (* (+ 5 3 (/ > ( > ( > (/ Numeric operators > (* ( (* (+ 1 2 ( Number comparisons Number comparisons are performed using the functions =, <, >, <=, and >=. > (= 4 5 > (>= 4 4 > (= (+ 2 1 (- 4 1 (/ 6 2 > (< ; checks if 5 < 6 < Type-checking functions The functions number?, symbol?, and list? check the type of the given argument and return boolean values ( or. > (number? 5 > (number? 'sam > (symbol? 'sam > (symbol? 5 > (list? '(a b > (list? (+ 3 4 > (list? '(+ 3 4 > (list? 7 Other useful functions The function zero? returns true iff given the number 0. > (zero? 0 > (zero? (- 3 3 > (zero? (* 3 1 > (zero? '(- 3 3 zero?: expects argument of type <number>; given (
3 Other useful functions The function null? returns true iff given an empty list. > (null? '( > (null? '(a > (null? (car '(a > (null? (cdr '(a The empty list, or nil Some Schemes treat ( as equivalent to. mzscheme does not. The Scheme standard says you should quote (: '( mzscheme is more relaxed. > ( ( > '( ( 9 10 Boolean operations: and, or, not Like the and and or operators in Python, the and and or operators in Scheme are short-circuited: they evaluate only as much as needed. and stops at the first false condition. or stops at the first true condition. > (and (zero? 0 (number? 2 (eq? 1 1 > (and (zero? 0 (number? 'x (eq? 1 2 > (or (symbol? 'x (symbol? 3 Boolean operations: and, or, not As in Python, the and and or operators in Scheme return the last thing they evaluate. Everything except is treated as "true". > (or (symbol? 1 "no" "other" "no" > (or 3 3 > (and 3 4 "hi" "bye" 11 12
4 Boolean operations: and, or, not The not operation always returns or. READ-EVAL-PRINT Loop (REPL The Scheme interpreter runs in a Read-Evaluate-Print Loop (REPL. > (not (null? '(1 2 > (not 3 Since Scheme doesn't have a numeric "not equals" operator (like the!= operator in C/Java/Python, we have to combine not and = in order to evaluate "not equals". > (not (= 3 4 > (not (= (+ 4 5 (* 3 3 READ: Read input from user. e.g. The user enters a function application EVAL: Evaluate input: (f arg1 arg2 argn. 1. Evaluate f to obtain a function. 2. Evaluate each argi to obtain a value. 3. Apply function to argument values. PRINT: Print resulting value. e.g. Print the result of the function application And then READ the next input from the user READ-EVAL-PRINT Loop Example READ-EVAL-PRINT Loop Example Let's go through the REPL for the following interaction. > (cons 'a (cons 'b '(c d (a b c d 1. Read the function application: (cons 'a (cons 'b '(c d 2. Evaluate cons to obtain a function cons evaluates to a built-in function 3. Evaluate 'a to obtain a itself. 4. Evaluate (cons 'b '(c d:! (a Evaluate cons to obtain a function.! (b Evaluate 'b to obtain b itself! (c Evaluate '(c d to obtain (c d itself! (d Apply the cons function to b and (c d to obtain!! (b c d 5. Apply the cons function to a and (b c d to obtain (a b c d 6. Print the result of the application: (a b c d 7. Display the prompt in order to read the next input from the user. > 15 16
5 The quote issue The quote issue (list? (a b undefined identifier: a > (list? (quote (a b > (list? '(a b > (hi undefined identifier: hi > (quote hi hi > 'hi hi In the context of REPL, quote inhibits evaluation. > (cons 'a (cons 'b '(c d (a b c d > (cons 'a '(cons 'b '(c d ; quote before 2nd arg (a cons 'b '(c d > (cons a (cons 'b '(c d ; no quote before 1st arg reference to undefined identifier: a Observe that 'x means the same thing as (quote x The quote issue REPL and function definition Some things evaluate to themselves. For these things, quoting has no effect (and is unnecessary. > (list '1 '42 ' ' '( (1 42 ( > (list 1 42 ( (1 42 ( Note that the list function constructs a list that consists of the arguments it's given. The basics are still the same when you're defining a function, but the interpretation is a little different. READ: Read input from user. This time the input is a symbol definition rather than a function application. EVAL: Evaluate input. Store the function definition PRINT: Print resulting value. The symbol defined, or perhaps nothing. mzscheme prints nothing for a function definition. > (define (square x (* x x > 19 20
6 Function definition syntax 1 (define (<function-name> <function-parameters>! <expression> Function definition syntax 2 (define <function-name> <function-value> > (define (square x (* x x > (square 2 4 > (define (mean x y (/ (+ x y 2 > (mean > (mean procedure mean: expects 2 arguments, given 3: The "function value" is a created using a lambda expression. A lambda expression evaluates to an unnamed function. "evaluates to an unnamed function": just like an arithmetic expression (like (+ 5 3 evaluates to an unnamed number. > (define square (lambda (x (* x x > (define mean (lambda (x y (/ (+ x y 2 In the examples above, we use define to give a name to the unnamed functions produced by the lambda expressions Lambda calculus Conditional Execution: if A formal system for defining functions and their properties. Equivalent to Turing machines. That is, equivalent to any general computing machine. Since a lambda expression evaluates to a function, we can (if we want to evaluate this function immediately, without ever giving it a name. > ((lambda (x x 'a a > ((lambda (x (* x x 2 4 > ((lambda (x y (+ x y (if <condition> <result1> <result2> Semantics: 1. Evaluate <condition>. 2. If result is true (non-, then evaluate and return <result1>. 3. Otherwise, evaluate and return <result2>. > (define (abs-val x (if (>= x 0 x (- x > (abs-val -4 4 > (abs-val (- (*
7 Conditional Execution: cond Examples with cond (cond (<condition1> <result1> (<condition2> <resultt2> (<conditionn> <resultn> (else <else-result> ;optional else clause Semantics: 1. Evaluate conditions in order until one of them returns a true value. 2. Evaluate and return the corresponding result. 3. If none of the conditions return a true value, evaluate and return <else-result>. 4. If none of the conditions return a true vale and there is no else clause, the result of the cond expression is unspecified. > (define (abs-val x (cond ((>= x 0 x (else (- x > (define (grade n (cond ((>= n 80 'A > (grade 75 b > (grade 45 f ((>= n 70 'B ((>= n 60 'C ((>= n 50 'D (else 'F if vs cond if vs cond Let's define atom?, a function that takes a parameter x and returns if x is an atom, and otherwise. First, we use cond: (define (atom? x (cond ((symbol? x ((number? x ((char? x ((string? x ((null? x (else Now we write atom? using if: (define (atom? x (if (symbol? x (if (number? x (if (char? x (if (string? x (if (null? x 27 28
8 Better atom? functions An atom is anything except a non-empty list. (define (atom? x (if (null? x (if (list? x (define (atom? x (if (list? x (null? x Even better atom? functions (define (atom? x (or (null? x (not (list? x (define (atom? x (cond ((null? x ((list? x (else Exercises Define a function f that takes two numbers x and y as input, and returns a list containing the numbers x+y, x-y, x/y, and x*y. Define a function g that takes two lists L1 and L2 as input, and returns a new list formed by adding the first two elements of L2 to the beginning of L1. Define a function everyothersum that takes a list L of numbers as input, and returns the sum of every second number in the list, starting with the first number. 31
Basic Lisp Operations
Basic Lisp Operations BLO-1 Function invocation It is an S-expression just another list! ( function arg1 arg2... argn) First list item is the function prefix notation The other list items are the arguments
Chapter 15 Functional Programming Languages
Chapter 15 Functional Programming Languages Introduction - The design of the imperative languages is based directly on the von Neumann architecture Efficiency (at least at first) is the primary concern,
Functional Programming
FP 2005 1.1 3 Functional Programming WOLFRAM KAHL [email protected] Department of Computing and Software McMaster University FP 2005 1.2 4 What Kinds of Programming Languages are There? Imperative telling
Functional Programming. Functional Programming Languages. Chapter 14. Introduction
Functional Programming Languages Chapter 14 Introduction Functional programming paradigm History Features and concepts Examples: Lisp ML 1 2 Functional Programming Functional Programming Languages The
We will learn the Python programming language. Why? Because it is easy to learn and many people write programs in Python so we can share.
LING115 Lecture Note Session #4 Python (1) 1. Introduction As we have seen in previous sessions, we can use Linux shell commands to do simple text processing. We now know, for example, how to count words.
Bash shell programming Part II Control statements
Bash shell programming Part II Control statements Deniz Savas and Michael Griffiths 2005-2011 Corporate Information and Computing Services The University of Sheffield Email [email protected]
The C Programming Language course syllabus associate level
TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming
Programming Languages CIS 443
Course Objectives Programming Languages CIS 443 0.1 Lexical analysis Syntax Semantics Functional programming Variable lifetime and scoping Parameter passing Object-oriented programming Continuations Exception
Moving from CS 61A Scheme to CS 61B Java
Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you
Programming Languages in Artificial Intelligence
Programming Languages in Artificial Intelligence Günter Neumann, German Research Center for Artificial Intelligence (LT Lab, DFKI) I. AI programming languages II. Functional programming III. Functional
Introduction to Python
Caltech/LEAD Summer 2012 Computer Science Lecture 2: July 10, 2012 Introduction to Python The Python shell Outline Python as a calculator Arithmetic expressions Operator precedence Variables and assignment
Party Time! Computer Science I. Signature Examples PAIR OBJ. The Signature of a Procedure. Building a Set. Testing for Membership in a Set
Computer Science I Professor Tom Ellman Lecture 21 Party Time! Whom shall you invite? We will write the Party Planner program. It will select SETS of guests. By reasoning with RELATIONS. Before we party,
Writing Functions in Scheme. Writing Functions in Scheme. Checking My Answer: Empty List. Checking My Answer: Empty List
Writing Functions in Scheme Writing Functions in Scheme Suppose we want a function ct which takes a list of symbols and returns the number of symbols in the list (ct (a b c)) 3 (ct ()) 0 (ct (x y z w t))
CS1102: Adding Error Checking to Macros
CS1102: Adding Error Checking to Macros Kathi Fisler, WPI October 6, 2008 1 Typos in State Machines The point of creating macros for state machines is to hide language details from the programmer. Ideally,
Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson
list functions TDDC65 Artificial intelligence and Lisp Lecture 2 in Lisp Recursion, symbols and lists (chapter 4, 5, 6 Haraldssons book) local variables and local functions recursion over sequences * patterns
Example of a Java program
Example of a Java program class SomeNumbers static int square (int x) return x*x; public static void main (String[] args) int n=20; if (args.length > 0) // change default n = Integer.parseInt(args[0]);
SIMPLIFYING ALGEBRAIC FRACTIONS
Tallahassee Community College 5 SIMPLIFYING ALGEBRAIC FRACTIONS In arithmetic, you learned that a fraction is in simplest form if the Greatest Common Factor (GCF) of the numerator and the denominator is
Programming Languages
Programming Languages Qing Yi Course web site: www.cs.utsa.edu/~qingyi/cs3723 cs3723 1 A little about myself Qing Yi Ph.D. Rice University, USA. Assistant Professor, Department of Computer Science Office:
7.1 Our Current Model
Chapter 7 The Stack In this chapter we examine what is arguably the most important abstract data type in computer science, the stack. We will see that the stack ADT and its implementation are very simple.
PROG0101 Fundamentals of Programming PROG0101 FUNDAMENTALS OF PROGRAMMING. Chapter 3 Algorithms
PROG0101 FUNDAMENTALS OF PROGRAMMING Chapter 3 1 Introduction to A sequence of instructions. A procedure or formula for solving a problem. It was created mathematician, Mohammed ibn-musa al-khwarizmi.
CS 106 Introduction to Computer Science I
CS 106 Introduction to Computer Science I 01 / 21 / 2014 Instructor: Michael Eckmann Today s Topics Introduction Homework assignment Review the syllabus Review the policies on academic dishonesty and improper
CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013
Oct 4, 2013, p 1 Name: CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013 1. (max 18) 4. (max 16) 2. (max 12) 5. (max 12) 3. (max 24) 6. (max 18) Total: (max 100)
Logic in general. Inference rules and theorem proving
Logical Agents Knowledge-based agents Logic in general Propositional logic Inference rules and theorem proving First order logic Knowledge-based agents Inference engine Knowledge base Domain-independent
Classes and Objects in Java Constructors. In creating objects of the type Fraction, we have used statements similar to the following:
In creating objects of the type, we have used statements similar to the following: f = new (); The parentheses in the expression () makes it look like a method, yet we never created such a method in our
Computers. An Introduction to Programming with Python. Programming Languages. Programs and Programming. CCHSG Visit June 2014. Dr.-Ing.
Computers An Introduction to Programming with Python CCHSG Visit June 2014 Dr.-Ing. Norbert Völker Many computing devices are embedded Can you think of computers/ computing devices you may have in your
Visual Basic Programming. An Introduction
Visual Basic Programming An Introduction Why Visual Basic? Programming for the Windows User Interface is extremely complicated. Other Graphical User Interfaces (GUI) are no better. Visual Basic provides
Unix Scripts and Job Scheduling
Unix Scripts and Job Scheduling Michael B. Spring Department of Information Science and Telecommunications University of Pittsburgh [email protected] http://www.sis.pitt.edu/~spring Overview Shell Scripts
ESCI 386 IDL Programming for Advanced Earth Science Applications Lesson 6 Program Control
ESCI 386 IDL Programming for Advanced Earth Science Applications Lesson 6 Program Control Reading: Bowman, Chapters 16 CODE BLOCKS A code block consists of several lines of code contained between a BEGIN
CMPSCI 250: Introduction to Computation. Lecture #19: Regular Expressions and Their Languages David Mix Barrington 11 April 2013
CMPSCI 250: Introduction to Computation Lecture #19: Regular Expressions and Their Languages David Mix Barrington 11 April 2013 Regular Expressions and Their Languages Alphabets, Strings and Languages
J a v a Quiz (Unit 3, Test 0 Practice)
Computer Science S-111a: Intensive Introduction to Computer Science Using Java Handout #11 Your Name Teaching Fellow J a v a Quiz (Unit 3, Test 0 Practice) Multiple-choice questions are worth 2 points
Computer Programming I
Computer Programming I COP 2210 Syllabus Spring Semester 2012 Instructor: Greg Shaw Office: ECS 313 (Engineering and Computer Science Bldg) Office Hours: Tuesday: 2:50 4:50, 7:45 8:30 Thursday: 2:50 4:50,
University of Toronto Department of Electrical and Computer Engineering. Midterm Examination. CSC467 Compilers and Interpreters Fall Semester, 2005
University of Toronto Department of Electrical and Computer Engineering Midterm Examination CSC467 Compilers and Interpreters Fall Semester, 2005 Time and date: TBA Location: TBA Print your name and ID
First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science
First Java Programs V. Paúl Pauca Department of Computer Science Wake Forest University CSC 111D Fall, 2015 Hello World revisited / 8/23/15 The f i r s t o b l i g a t o r y Java program @author Paul Pauca
1.00 Lecture 1. Course information Course staff (TA, instructor names on syllabus/faq): 2 instructors, 4 TAs, 2 Lab TAs, graders
1.00 Lecture 1 Course Overview Introduction to Java Reading for next time: Big Java: 1.1-1.7 Course information Course staff (TA, instructor names on syllabus/faq): 2 instructors, 4 TAs, 2 Lab TAs, graders
CSE 135: Introduction to Theory of Computation Decidability and Recognizability
CSE 135: Introduction to Theory of Computation Decidability and Recognizability Sungjin Im University of California, Merced 04-28, 30-2014 High-Level Descriptions of Computation Instead of giving a Turing
CS 1133, LAB 2: FUNCTIONS AND TESTING http://www.cs.cornell.edu/courses/cs1133/2015fa/labs/lab02.pdf
CS 1133, LAB 2: FUNCTIONS AND TESTING http://www.cs.cornell.edu/courses/cs1133/2015fa/labs/lab02.pdf First Name: Last Name: NetID: The purpose of this lab is to help you to better understand functions:
Exercise 1: Python Language Basics
Exercise 1: Python Language Basics In this exercise we will cover the basic principles of the Python language. All languages have a standard set of functionality including the ability to comment code,
Introduction to Java Applications. 2005 Pearson Education, Inc. All rights reserved.
1 2 Introduction to Java Applications 2.2 First Program in Java: Printing a Line of Text 2 Application Executes when you use the java command to launch the Java Virtual Machine (JVM) Sample program Displays
Eventia Log Parsing Editor 1.0 Administration Guide
Eventia Log Parsing Editor 1.0 Administration Guide Revised: November 28, 2007 In This Document Overview page 2 Installation and Supported Platforms page 4 Menus and Main Window page 5 Creating Parsing
Compiler I: Syntax Analysis Human Thought
Course map Compiler I: Syntax Analysis Human Thought Abstract design Chapters 9, 12 H.L. Language & Operating Sys. Compiler Chapters 10-11 Virtual Machine Software hierarchy Translator Chapters 7-8 Assembly
Appendix... B. The Object Constraint
UML 2.0 in a Nutshell Appendix B. The Object Constraint Pub Date: June 2005 Language The Object Constraint Language 2.0 (OCL) is an addition to the UML 2.0 specification that provides you with a way to
High-Level Programming Languages. Nell Dale & John Lewis (adaptation by Michael Goldwasser)
High-Level Programming Languages Nell Dale & John Lewis (adaptation by Michael Goldwasser) Low-Level Languages What are disadvantages of low-level languages? (e.g., machine code or assembly code) Programming
Lecture 1: Introduction
Programming Languages Lecture 1: Introduction Benjamin J. Keller Department of Computer Science, Virginia Tech Programming Languages Lecture 1 Introduction 2 Lecture Outline Preview History of Programming
COMPUTER SCIENCE TRIPOS
CST.98.5.1 COMPUTER SCIENCE TRIPOS Part IB Wednesday 3 June 1998 1.30 to 4.30 Paper 5 Answer five questions. No more than two questions from any one section are to be answered. Submit the answers in five
High-Level Language. Building a Modern Computer From First Principles. www.nand2tetris.org
High-Level Language Building a Modern Computer From First Principles www.nand2tetris.org Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 9: High-Level Language
How To Understand The Theory Of Computer Science
Theory of Computation Lecture Notes Abhijat Vichare August 2005 Contents 1 Introduction 2 What is Computation? 3 The λ Calculus 3.1 Conversions: 3.2 The calculus in use 3.3 Few Important Theorems 3.4 Worked
Introduction to Java
Introduction to Java The HelloWorld program Primitive data types Assignment and arithmetic operations User input Conditional statements Looping Arrays CSA0011 Matthew Xuereb 2008 1 Java Overview A high
CIS 500 Software Foundations Midterm I, Review Questions
CIS 500 Software Foundations Midterm I, Review Questions Untyped lambda calculus 1. (2 points) We have seen that a linear expression likeλx.λy.xyx is shorthand for an abstract syntax tree that can be drawn
The Halting Problem is Undecidable
185 Corollary G = { M, w w L(M) } is not Turing-recognizable. Proof. = ERR, where ERR is the easy to decide language: ERR = { x { 0, 1 }* x does not have a prefix that is a valid code for a Turing machine
Management Information Systems 260 Web Programming Fall 2006 (CRN: 42459)
Management Information Systems 260 Web Programming Fall 2006 (CRN: 42459) Class Time: 6:00 8:05 p.m. (T,Th) Venue: WSL 5 Web Site: www.pbvusd.net/mis260 Instructor Name: Terrell Tucker Office: BDC 127
Selection Statements
Chapter 5 Selection Statements 1 Statements So far, we ve used return statements and expression ess statements. e ts. Most of C s remaining statements fall into three categories: Selection statements:
Crash Course in Java
Crash Course in Java Based on notes from D. Hollinger Based in part on notes from J.J. Johns also: Java in a Nutshell Java Network Programming and Distributed Computing Netprog 2002 Java Intro 1 What is
R Language Definition
R Language Definition Version 3.2.3 (2015-12-10) DRAFT R Core Team This manual is for R, version 3.2.3 (2015-12-10). Copyright c 2000 2015 R Core Team Permission is granted to make and distribute verbatim
2. Abstract State Machines
2. Abstract State Machines The notion of Abstract State Machines (ASMs), defined in [20], captures in mathematically rigorous yet transparent form some fundamental operational intuitions of computing,
Sources: On the Web: Slides will be available on:
C programming Introduction The basics of algorithms Structure of a C code, compilation step Constant, variable type, variable scope Expression and operators: assignment, arithmetic operators, comparison,
Visual Logic Instructions and Assignments
Visual Logic Instructions and Assignments Visual Logic can be installed from the CD that accompanies our textbook. It is a nifty tool for creating program flowcharts, but that is only half of the story.
Invitation to Ezhil : A Tamil Programming Language for Early Computer-Science Education 07/10/13
Invitation to Ezhil: A Tamil Programming Language for Early Computer-Science Education Abstract: Muthiah Annamalai, Ph.D. Boston, USA. Ezhil is a Tamil programming language with support for imperative
CSCI 1100 Computer Science 1 Homework 1 Calculations and Functions
CSCI 1100 Computer Science 1 Homework 1 Calculations and Functions Overview This homework is a combination of what was supposed to be Homeworks 1 and 2, and is worth 70 points toward your overall homework
JavaScript: Control Statements I
1 7 JavaScript: Control Statements I 7.1 Introduction 2 The techniques you will learn here are applicable to most high-level languages, including JavaScript 1 7.2 Algorithms 3 Any computable problem can
Introduction to formal semantics -
Introduction to formal semantics - Introduction to formal semantics 1 / 25 structure Motivation - Philosophy paradox antinomy division in object und Meta language Semiotics syntax semantics Pragmatics
CISC 181 Project 3 Designing Classes for Bank Accounts
CISC 181 Project 3 Designing Classes for Bank Accounts Code Due: On or before 12 Midnight, Monday, Dec 8; hardcopy due at beginning of lecture, Tues, Dec 9 What You Need to Know This project is based on
Form Validation. Server-side Web Development and Programming. What to Validate. Error Prevention. Lecture 7: Input Validation and Error Handling
Form Validation Server-side Web Development and Programming Lecture 7: Input Validation and Error Handling Detecting user error Invalid form information Inconsistencies of forms to other entities Enter
Introduction to Matlab
Introduction to Matlab Social Science Research Lab American University, Washington, D.C. Web. www.american.edu/provost/ctrl/pclabs.cfm Tel. x3862 Email. [email protected] Course Objective This course provides
Microsoft Access 3: Understanding and Creating Queries
Microsoft Access 3: Understanding and Creating Queries In Access Level 2, we learned how to perform basic data retrievals by using Search & Replace functions and Sort & Filter functions. For more complex
Notes on Complexity Theory Last updated: August, 2011. Lecture 1
Notes on Complexity Theory Last updated: August, 2011 Jonathan Katz Lecture 1 1 Turing Machines I assume that most students have encountered Turing machines before. (Students who have not may want to look
CSC 221: Computer Programming I. Fall 2011
CSC 221: Computer Programming I Fall 2011 Python control statements operator precedence importing modules random, math conditional execution: if, if-else, if-elif-else counter-driven repetition: for conditional
CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014
CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages Nicki Dell Spring 2014 What is a Programming Language? A set of symbols and associated tools that translate (if necessary) collections
COLLEGE ALGEBRA 10 TH EDITION LIAL HORNSBY SCHNEIDER 1.1-1
10 TH EDITION COLLEGE ALGEBRA LIAL HORNSBY SCHNEIDER 1.1-1 1.1 Linear Equations Basic Terminology of Equations Solving Linear Equations Identities 1.1-2 Equations An equation is a statement that two expressions
CHAPTER 7 GENERAL PROOF SYSTEMS
CHAPTER 7 GENERAL PROOF SYSTEMS 1 Introduction Proof systems are built to prove statements. They can be thought as an inference machine with special statements, called provable statements, or sometimes
Compilers. Introduction to Compilers. Lecture 1. Spring term. Mick O Donnell: [email protected] Alfonso Ortega: alfonso.ortega@uam.
Compilers Spring term Mick O Donnell: [email protected] Alfonso Ortega: [email protected] Lecture 1 to Compilers 1 Topic 1: What is a Compiler? 3 What is a Compiler? A compiler is a computer
PHP Tutorial From beginner to master
PHP Tutorial From beginner to master PHP is a powerful tool for making dynamic and interactive Web pages. PHP is the widely-used, free, and efficient alternative to competitors such as Microsoft's ASP.
THE SET ANALYSIS. Summary
THE SET ANALYSIS Summary 1 Why use the sets... 3 2 The identifier... 4 3 The operators... 4 4 The modifiers... 5 4.1 All members... 5 4.2 Known members... 6 4.3 Search string... 7 4.4 Using a boundary
Java Basics: Data Types, Variables, and Loops
Java Basics: Data Types, Variables, and Loops If debugging is the process of removing software bugs, then programming must be the process of putting them in. - Edsger Dijkstra Plan for the Day Variables
Web Programming Step by Step
Web Programming Step by Step Lecture 13 Introduction to JavaScript Reading: 7.1-7.4 Except where otherwise noted, the contents of this presentation are Copyright 2009 Marty Stepp and Jessica Miller. Client-side
Chapter 6: Programming Languages
Chapter 6: Programming Languages Computer Science: An Overview Eleventh Edition by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc. Chapter 6: Programming Languages 6.1 Historical Perspective
Lecture 4: Writing shell scripts
Handout 5 06/03/03 1 Your rst shell script Lecture 4: Writing shell scripts Shell scripts are nothing other than les that contain shell commands that are run when you type the le at the command line. That
MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question.
Exam Name MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. 1) The JDK command to compile a class in the file Test.java is A) java Test.java B) java
Introduction to Python
WEEK ONE Introduction to Python Python is such a simple language to learn that we can throw away the manual and start with an example. Traditionally, the first program to write in any programming language
MATLAB Programming. Problem 1: Sequential
Division of Engineering Fundamentals, Copyright 1999 by J.C. Malzahn Kampe 1 / 21 MATLAB Programming When we use the phrase computer solution, it should be understood that a computer will only follow directions;
ECE 122. Engineering Problem Solving with Java
ECE 122 Engineering Problem Solving with Java Introduction to Electrical and Computer Engineering II Lecture 1 Course Overview Welcome! What is this class about? Java programming somewhat software somewhat
The Classes P and NP
The Classes P and NP We now shift gears slightly and restrict our attention to the examination of two families of problems which are very important to computer scientists. These families constitute the
Compiler Construction
Compiler Construction Regular expressions Scanning Görel Hedin Reviderad 2013 01 23.a 2013 Compiler Construction 2013 F02-1 Compiler overview source code lexical analysis tokens intermediate code generation
Outline. Conditional Statements. Logical Data in C. Logical Expressions. Relational Examples. Relational Operators
Conditional Statements For computer to make decisions, must be able to test CONDITIONS IF it is raining THEN I will not go outside IF Count is not zero THEN the Average is Sum divided by Count Conditions
BASH Scripting. A bash script may consist of nothing but a series of command lines, e.g. The following helloworld.sh script simply does an echo.
BASH Scripting bash is great for simple scripts that automate things you would otherwise by typing on the command line. Your command line skills will carry over to bash scripting and vice versa. bash comments
Some programming experience in a high-level structured programming language is recommended.
Python Programming Course Description This course is an introduction to the Python programming language. Programming techniques covered by this course include modularity, abstraction, top-down design,
The previous chapter provided a definition of the semantics of a programming
Chapter 7 TRANSLATIONAL SEMANTICS The previous chapter provided a definition of the semantics of a programming language in terms of the programming language itself. The primary example was based on a Lisp
GCF/ Factor by Grouping (Student notes)
GCF/ Factor by Grouping (Student notes) Factoring is to write an expression as a product of factors. For example, we can write 10 as (5)(2), where 5 and 2 are called factors of 10. We can also do this
C A R I B B E A N E X A M I N A T I O N S REPORT ON CANDIDATES S WORK IN THE CARIBBEAN SECONDARY EDUCATION CERTIFICATE EXAMINATION MAY/JUNE 2012
C A R I B B E A N E X A M I N A T I O N S COUNCIL REPORT ON CANDIDATES S WORK IN THE CARIBBEAN SECONDARY EDUCATION CERTIFICATE EXAMINATION MAY/JUNE 2012 INFORMATION TECHNOLOGY GENERAL PROFICIENCY EXAMINATION
Python Evaluation Rules
Python Evaluation Rules UW CSE 160 http://tinyurl.com/dataprogramming Michael Ernst and Isaac Reynolds [email protected] August 2, 2016 Contents 1 Introduction 2 1.1 The Structure of a Python Program................................
02-201: Programming for Scientists
1. Course Information 1.1 Course description 02-201: Programming for Scientists Carl Kingsford Fall 2015 Provides a practical introduction to programming for students with little or no prior programming
Boolean Algebra Part 1
Boolean Algebra Part 1 Page 1 Boolean Algebra Objectives Understand Basic Boolean Algebra Relate Boolean Algebra to Logic Networks Prove Laws using Truth Tables Understand and Use First Basic Theorems
Sample CSE8A midterm Multiple Choice (circle one)
Sample midterm Multiple Choice (circle one) (2 pts) Evaluate the following Boolean expressions and indicate whether short-circuiting happened during evaluation: Assume variables with the following names
Translating to Java. Translation. Input. Many Level Translations. read, get, input, ask, request. Requirements Design Algorithm Java Machine Language
Translation Translating to Java Introduction to Computer Programming The job of a programmer is to translate a problem description into a computer language. You need to be able to convert a problem description
Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007
Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007 The Java Type System By now, you have seen a fair amount of Java. Time to study in more depth the foundations of the language,
Certified PHP Developer VS-1054
Certified PHP Developer VS-1054 Certification Code VS-1054 Certified PHP Developer Vskills certification for PHP Developers assesses the candidate for developing PHP based applications. The certification
Lecture 2 Notes: Flow of Control
6.096 Introduction to C++ January, 2011 Massachusetts Institute of Technology John Marrero Lecture 2 Notes: Flow of Control 1 Motivation Normally, a program executes statements from first to last. The
