University of Maine School of Computing and Information Science COS 470/570
|
|
- Adam Foster
- 5 years ago
- Views:
Transcription
1 University of Maine School of Computing and Information Science COS 470/570 Assignment 1: Lisp and Robot Familiarization Assigned 8/28 Due 9/13 This assignment is meant to familiarize you with the tools you ll need in other assignments this semester. There are two parts, a Lisp assignment and a robot assignment. 1 Lisp Lisp is one of the primary languages used in AI, and most things you will do in this class will be in Lisp. Aside from this, there are other reasons to learn (or review) Lisp. For one thing, it is one of the most rapidly-growing languages in terms of use. In addition, many programs and other languages use concepts and, more often, syntax from Lisp, and some programs use Lisp itself. Also, learning different languages, especially ones that are quite different from ones they know, is a very good thing for computer science majors and it s required for accreditation. And, finally, if past experience is any guide, some of you might find that you fall in love with the language and want to keep using it. What others have said about Lisp: 1 Lisp is a programmable programming language. John Foderaro One of the most important and fascinating of all computer languages is Lisp... Douglas Hofstadter, Gödel, Escher, Bach: an Eternal Golden Braid The greatest single programming language ever designed. Alan Kay Lisp isn t a language, its a building material. Alan Kay Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot. Eric S. Raymond, How to Become a Hacker Emacs is written in Lisp, which is the only computer language that is beautiful. Neal Stephenson, In the Beginning was the Command Line 1 From wikiquote 2 via CLiki.
2 Greenspun s Tenth Rule: Any sufficiently complicated C or Fortran program contains an ad hoc informally-specified bug-ridden slow implementation of half of Common Lisp. 1.1 Getting started The first hurdle to using Lisp is finding and installing a Lisp interpreter. While the School has Lisp installed on the cluster in Neville Hall, you will probably want Lisp running on your own computer. Luckily, Lisp is very easy to find and install, whether you use Linux, a Mac, or Windows. The very simplest thing to do is to go to common-lisp.net 3 and download Lispbox 4, a free, preconfigured Lisp environment. This includes the Steel Bank Common Lisp interpreter (SBCL), the Emacs editor, the SLIME Emacs Lisp interface, a library manager (Quicklisp), and a compiler (Clozure). If you are more of a do-it-yourselfer, then you can download a Lisp interpreter and use it with whatever editor you want. (I strongly suggest Emacs, since it is an extraordinarily powerful editor that has a long history of playing nice with Lisp in fact, most of Emacs is written in Lisp.) I use SBCL on my Mac and Allegro Common Lisp on both Mac and Linux. SBCL is free and available from Allegro Common Lisp is an industrial-strength commercial Lisp, but the folks who sell it, Franz, Inc., have been gracious enough to provide a free version. You can get it at Franz s web site 5. I will also pass out a packet of information about using Emacs and Lisp. It is tailored, primarily for historical reasons, toward using Allegro CL. However, much of its information also applies to SBCL. With respect to programming in Lisp, early in the semester, I will have a two-hour Lisp review to help you become familiar (or refamiliarize yourself) with the language. The recommended textbook can also teach you Lisp rather quickly. In addition, there are many on-line resources for learning Lisp. A good place to look for these, and many other things Lisp-related, is at the Common Lisp Wiki, CLiki 6 or at Common-Lisp.net. 1.2 The Assignment For this assignment, you will do each of the following exercises. You will need to format and comment your code as described in the Lisp packet I will pass out. You will turn in your code and examples of it running electronically to cos470@umcs.maine.edu 1. first2: Simple list manipulation. Write a function, first2, that takes a list as its argument and returns the first two elements of that list as a new list. Note: this should return a list, not a dotted pair. For example, > (first2 (a b c d e f)) (a b) In this example and those to follow, the > sign means a Lisp interpreter prompt, with the line after being the result of evaluating the Lisp expression after the prompt
3 2. add1: Simple math. Write a function, add1, that takes an integer as an argument and returns that integer plus listadd: Recursion and iteration. (a) Write a function, listadd1, that will add 1 to each element in a list of integers: > (listadd1 ( )) ( ) This function should use recursion to do this. (b) Write another function, listadd2, that uses mapcar to do the same thing. (c) Write another function, listadd3, that uses one of Lisp s loop constructs (e.g., dolist, dotimes, or loop) to do the same thing. 4. flatten: Complex recursion. Write a recursive function, flatten, that takes as an argument a list that can include embedded lists and returns a list in which the embedded parentheses have been removed i.e., a list whose elements are all of the elements of all of the embedded lists. For example, > (flatten (a (b c) d (e (f (g (h) i))) j)) (A B C D E F G H I J) 5. last2: More complex list manipulation. Write a function, last2, that takes a list as its argument and returns the last two elements, e.g.: > (last2 (a b c d e)) (D E) 6. my-reverse: More complex list manipulation and recursion. Write a function, reverse, that reverses the order of the elements in a list: > (my-reverse (a b c 1 2 3)) (3 2 1 C B A) You must use recursion, and you may not use the built-in reverse function! 7. printlist: Using formatted output. Lisp has a function, format, for producing formatted output that is similar to C s printf facility. Use this function to write a function, printlist, that takes a list as an argument and produces the following output: > (printlist ( )) ;; "..." here replaces First element: 1 ;; the actual elements Second element: 2 Third element: 3 Fourth element: 4 Fifth element: 5 Sixth element: 6 Seventh element: 7 Eighth element: 8 Ninth element: 9 Tenth element: 10 Eleventh element: 11 ;;... etc.... Ninety-ninth element: 99 One hundredth element: 100 NIL CL-USER(15): 3
4 This should work for any list, with any number of elements (which need not be numeric). Note: the words first, second, etc., are ordinal numbers generated by format. Also note that format should be used to automatically capitalize the ordinal numbers. In order to do this problem, you ll need documentation for the format statement. The definitive source is Common Lisp: The Language, 2nd ed. 7, by Guy Steele. 8. copyfile: File IO. Write a function, copyfile, that takes two file names as arguments and copies the contents of the first file to the second. You cannot simply use Lisp s shell interface to get the operating system to do it for you. As in any programming language, you ll need to open and close the files. In Lisp, the easy way to do this is with the with-open-file special form; for example, to open a file foo and read all its contents, you could do: (with-open-file (in "foo" :direction :input) (loop with line with i = 1 until (eql :eof (setq line (read-line in nil :eof))) do (format t "Read line ~s~%" i) (incf i))) In this, in is a stream variable (which doesn t have to have the name in ) that is read from. This form is also used to write to files, with some slight changes, e.g.: (with-open-file (out "bar" :direction :output :if-exists :supersede :if-does-not-exist :create)...) You can use read to read an entire Lisp expression and write or print to write such an expression. You can read a line at a time with read-line and write an entire line with write-line. 2 Robots There are some very simple robots available for the class. Later, we will use them at least as simple agents, and hopefully for more as the semester progresses. This assignment will familiarize you with the robot Scribbler/Fluke robots. The robots we have were developed by Georgia Robotics (associated with Georgia Tech and Bryn Mawr College) for teaching introductory computer science. They are based on a very simple robot body, Parallax s Scribbler. By itself, the Scribbler robot from Parallax 8, has a very simple on-board computer, a BASIC Stamp. This is a microcontroller that is programmed using PBASIC. It has several sensors, including light sensors, IR (infrared) detectors, and a line detector (for line-following behavior). Effectors are primarily the wheels, but also some LEDs and a speaker. To this, Georgia Robotics added an IPRE (Institute for Personal Robots in Education) Fluke 9 board. This adds some additional IR sensors for object detection, some additional LEDs, and a color camera. Due to the configuration of the robot, the Fluke board mounts on the back, which means that the back of the robot now becomes the front. A benefit of this is that the robot + board now has IR sensors on the front and back. However, the biggest benefit of the board is that it adds Bluetooth communication. This is used to enable communication with an off-robot computer, such as a laptop, that can then remotely wiki.roboteducation.org 4
5 control the robot. The user can write programs in Python to control the robot, using the Myro robot control software 10. In this assignment, you will use Python to control the robot. However, I am currently in the process of writing a Lisp-to-Python interface that will allow your AI programs in future, written (of course) in Lisp, to interface with the robot directly. (If you choose to use a robot for your final project, then for that you may control it using either language.) 2.1 Getting Started First, you will need to check out a robot from me. It is likely, given the size of the class, that you will have a robot all to yourself. Otherwise, you may be asked to share. Your primary on-line resource for setting up and using the robot is the Wiki created by Institute for Personal Robots in Education 11 (IPRE), a joint project of Georgia Tech, Bryn Mawr College, and Microsoft research. The URL for this Wiki is: wiki.roboteducation.org In particular, you will find information on the Wiki about how to install Myro on your computer. There are instructions for Windows, Mac OS, and Linux. You will also find a version of the Myro reference manual that comes in print form with the robots. 2.2 The Assignment Your assignment is simple: set up and get familiar with a Scribbler/Fluke robot. Since we have only a few robots that are not in use already, you will need to share a robot with a partner. You may choose to work on the assignment together, or work individually, sharing the robot. The parts of this assignment are: 1. Check out a robot from me. 2. Install the Myro software on your computer. 3. Upgrade the firmware of the robot, if needed. (Instructions about how to do this are provided in the installation instructions.) 4. Make the robot execute the following algorithm: Begin: For i from 1 to 4 do: Take a picture and display it. Move 2 meters forward. Turn 90 degrees right. end for; end. 5. Make the robot do something cool. There s not much to turn in for this: just a short ( 1 page, probably) write-up noting any problems you had and telling me what cool thing you got the robot to do. Turn this in electronically. If you want, you can also turn in (via or by posting on a Web site) a video of the cool assignment. 10 wiki.roboteducation.org/myro_reference_manual 11 wiki.roboteduction.org/institute_for_personal_robots_in_education 5
INF4820: Algorithms for Artificial Intelligence and Natural Language Processing. Common Lisp Fundamentals
INF4820: Algorithms for Artificial Intelligence and Natural Language Processing Common Lisp Fundamentals Stephan Oepen & Murhaf Fares Language Technology Group (LTG) August 30, 2017 Last Week: What is
More informationINF4820: Algorithms for Artificial Intelligence and Natural Language Processing. More Common Lisp
INF4820: Algorithms for Artificial Intelligence and Natural Language Processing More Common Lisp Stephan Oepen & Murhaf Fares Language Technology Group (LTG) September 6, 2017 Agenda 2 Previously Common
More informationGene Kim 9/9/2016 CSC 2/444 Lisp Tutorial
Gene Kim 9/9/2016 CSC 2/444 Lisp Tutorial About this Document This document was written to accompany an in-person Lisp tutorial. Therefore, the information on this document alone is not likely to be sufficient
More informationWeek - 01 Lecture - 04 Downloading and installing Python
Programming, Data Structures and Algorithms in Python Prof. Madhavan Mukund Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 01 Lecture - 04 Downloading and
More informationDepartment of Computer and information Science Norwegian University of Science and Technology
Department of Computer and information Science Norwegian University of Science and Technology http://www.idi.ntnu.no/ A Crash Course in LISP MNFIT272 2002 Anders Kofod-Petersen anderpe@idi.ntnu.no Introduction
More informationA little bit of Lisp
B.Y. Choueiry 1 Instructor s notes #3 A little bit of Lisp Introduction to Artificial Intelligence CSCE 476-876, Fall 2017 www.cse.unl.edu/~choueiry/f17-476-876 Read LWH: Chapters 1, 2, 3, and 4. Every
More informationSymbolic Computation and Common Lisp
Symbolic Computation and Common Lisp Dr. Neil T. Dantam CSCI-56, Colorado School of Mines Fall 28 Dantam (Mines CSCI-56) Lisp Fall 28 / 92 Why? Symbolic Computing: Much of this course deals with processing
More informationLecture Notes on Lisp A Brief Introduction
Why Lisp? Lecture Notes on Lisp A Brief Introduction Because it s the most widely used AI programming language Because Prof Peng likes using it Because it s good for writing production software (Graham
More informationSymbolic Programming. Dr. Zoran Duric () Symbolic Programming 1/ 89 August 28, / 89
Symbolic Programming Symbols: +, -, 1, 2 etc. Symbolic expressions: (+ 1 2), (+ (* 3 4) 2) Symbolic programs are programs that manipulate symbolic expressions. Symbolic manipulation: you do it all the
More informationn! = 1 * 2 * 3 * 4 * * (n-1) * n
The Beauty and Joy of Computing 1 Lab Exercise 9: Problem self-similarity and recursion Objectives By completing this lab exercise, you should learn to Recognize simple self-similar problems which are
More informationIntro. Scheme Basics. scm> 5 5. scm>
Intro Let s take some time to talk about LISP. It stands for LISt Processing a way of coding using only lists! It sounds pretty radical, and it is. There are lots of cool things to know about LISP; if
More informationComputer Science 322 Operating Systems Mount Holyoke College Spring Topic Notes: C and Unix Overview
Computer Science 322 Operating Systems Mount Holyoke College Spring 2010 Topic Notes: C and Unix Overview This course is about operating systems, but since most of our upcoming programming is in C on a
More informationScripted Components: Problem. Scripted Components. Problems with Components. Single-Language Assumption. Dr. James A. Bednar
Scripted Components: Problem Scripted Components Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar (Cf. Reuse-Oriented Development; Sommerville 2004 Chapter 4, 18) A longstanding
More informationScripted Components Dr. James A. Bednar
Scripted Components Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar SAPM Spring 2012: Scripted Components 1 Scripted Components: Problem (Cf. Reuse-Oriented Development;
More informationSCHEME AND CALCULATOR 5b
SCHEME AND CALCULATOR 5b COMPUTER SCIENCE 6A July 25, 203 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 informationCSCE476/876 Fall Homework 3: Programming Assignment Using Emacs and Common Lisp. 1 Exercises (15 Points) 2. 2 Find (6 points) 4
CSCE476/876 Fall 2018 Homework 3: Programming Assignment Using Emacs and Common Lisp Assigned on: Monday, September 10 th, 2018. Due: Monday, September 24 th, 2018. Contents 1 Eercises (15 Points) 2 2
More informationCommon Lisp. In Practical Usage
Common Lisp In Practical Usage Contents A walk through Lisp history What the man in the street seems to think Some highlights of Common Lisp Lisp in production History The Beginnings Lisp grew from a
More informationUMaine COS 470/570: Emacs & Lisp Information
UMaine COS 470/570: Emacs & Lisp Information Roy M. Turner Spring 2017 Contents 1 What is Lisp, anyway? 4 2 Getting the software 5 2.1 Pre-packaged Lisp+Emacs................................. 5 2.2 Installing
More informationA Brief Introduction to Scheme (I)
A Brief Introduction to Scheme (I) Philip W. L. Fong pwlfong@cs.uregina.ca Department of Computer Science University of Regina Regina, Saskatchewan, Canada Scheme Scheme I p.1/44 Scheme: Feature Set A
More informationIntroduction to Lisp
Last update: February 16, 2010 Introduction to Lisp Dana Nau Dana Nau 1 Outline I assume you know enough about computer languages that you can learn new ones quickly, so I ll go pretty fast If I go too
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 informationSCHEME The Scheme Interpreter. 2 Primitives COMPUTER SCIENCE 61A. October 29th, 2012
SCHEME COMPUTER SCIENCE 6A October 29th, 202 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, we will eventually
More informationSCHEME 7. 1 Introduction. 2 Primitives COMPUTER SCIENCE 61A. October 29, 2015
SCHEME 7 COMPUTER SCIENCE 61A October 29, 2015 1 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 informationCSCI 2041: Advanced Language Processing
CSCI 2041: Advanced Language Processing Chris Kauffman Last Updated: Wed Nov 28 13:25:47 CST 2018 1 Logistics Reading OSM: Ch 17 The Debugger OSM: Ch 13 Lexer and Parser Generators (optional) Practical
More informationRobot Programming with Lisp
2. Imperative Programming Institute for Artificial University of Bremen Lisp the Language LISP LISt Processing language 2 Lisp the Language LISP LISt Processing language (LISP Lots of Irritating Superfluous
More informationCS 480. Lisp J. Kosecka George Mason University. Lisp Slides
CS 480 Lisp J. Kosecka George Mason University Lisp Slides Symbolic Programming Symbols: +, -, 1, 2 etc. Symbolic expressions: (+ 1 2), (+ (* 3 4) 2) Symbolic programs are programs that manipulate symbolic
More informationCommon LISP Tutorial 1 (Basic)
Common LISP Tutorial 1 (Basic) CLISP Download https://sourceforge.net/projects/clisp/ IPPL Course Materials (UST sir only) Download https://silp.iiita.ac.in/wordpress/?page_id=494 Introduction Lisp (1958)
More informationAP Computer Science Unit 1. Writing Programs Using BlueJ
AP Computer Science Unit 1. Writing Programs Using BlueJ 1. Open up BlueJ. Click on the Project menu and select New Project. You should see the window on the right. Navigate to wherever you plan to save
More informationComputer Vision With Scribbler Robots
Computer Vision With Scribbler Robots Jillian Pyle And Clark Rinker The Evergreen State College June 3, 2010 1 Introduction For the last five months we have been working on our project involving the scribbler
More informationHomework 1. Notes. What To Turn In. Unix Accounts. Reading. Handout 3 CSCI 334: Spring, 2017
Homework 1 Due 14 February Handout 3 CSCI 334: Spring, 2017 Notes This homework has three types of problems: Self Check: You are strongly encouraged to think about and work through these questions, but
More informationA Basic Guide to Using Matlab in Econ 201FS
A Basic Guide to Using Matlab in Econ 201FS Matthew Rognlie February 1, 2010 Contents 1 Finding Matlab 2 2 Getting Started 2 3 Basic Data Manipulation 3 4 Plotting and Finding Returns 4 4.1 Basic Price
More informationImperative, OO and Functional Languages A C program is
Imperative, OO and Functional Languages A C program is a web of assignment statements, interconnected by control constructs which describe the time sequence in which they are to be executed. In Java programming,
More informationComputer Science 2500 Computer Organization Rensselaer Polytechnic Institute Spring Topic Notes: C and Unix Overview
Computer Science 2500 Computer Organization Rensselaer Polytechnic Institute Spring 2009 Topic Notes: C and Unix Overview This course is about computer organization, but since most of our programming is
More informationDebugging in LISP. trace causes a trace to be printed for a function when it is called
trace causes a trace to be printed for a function when it is called ;;; a function that works like reverse (defun rev (list) (cons (first (last list)) (rev (butlast list)))) USER: (trace rev) ; note trace
More informationArtificial Intelligence. Section Notes: Week 1 September 2, 2010
Artificial Intelligence Section Notes: Week 1 September 2, 2010 1 About the TA and Section Dwight Bell DwightBell@gmail.com (617) 752-2311 (google) (508) 740-0469 (cell) Section Website http://www.fas.harvard.edu/~lib220
More informationReversing. Time to get with the program
Reversing Time to get with the program This guide is a brief introduction to C, Assembly Language, and Python that will be helpful for solving Reversing challenges. Writing a C Program C is one of the
More informationLISP. Everything in a computer is a string of binary digits, ones and zeros, which everyone calls bits.
LISP Everything in a computer is a string of binary digits, ones and zeros, which everyone calls bits. From one perspective, sequences of bits can be interpreted as a code for ordinary decimal digits,
More informationCS1 Lecture 3 Jan. 22, 2018
CS1 Lecture 3 Jan. 22, 2018 Office hours for me and for TAs have been posted, locations will change check class website regularly First homework available, due Mon., 9:00am. Discussion sections tomorrow
More informationGetting Started with Python
Getting Started with Python Python is a general purpose, high level programming language that is used in a variety of application domains. The Python language has a very clear and expressive syntax as
More informationLecture #2 Kenneth W. Flynn RPI CS
Outline Programming in Lisp Lecture #2 Kenneth W. Flynn RPI CS Items from last time Recursion, briefly How to run Lisp I/O, Variables and other miscellany Lists Arrays Other data structures Jin Li lij3@rpi.edu
More informationAnnouncement. Overview. LISP: A Quick Overview. Outline of Writing and Running Lisp.
Overview Announcement Announcement Lisp Basics CMUCL to be available on sun.cs. You may use GNU Common List (GCL http://www.gnu.org/software/gcl/ which is available on most Linux platforms. There is also
More informationHello Button. An Introduction to Tcl/Tk
Hello Button An Introduction to Tcl/Tk Peter D. Hiscocks, James Gaston Syscomp Electronic Design Limited www.syscompdesign.com phiscock@ee.ryerson.ca May 16, 2006 Revised April 28, 2007 Abstract This paper
More informationCommon Lisp: The Language By Guy L. Steele
Common Lisp: The Language By Guy L. Steele Common LISP. The Language. Second Edition [Guy Steele] on Amazon.com. *FREE* shipping on qualifying offers. The defacto standard - a must-have for all LISP programmers.
More informationCommunicating with the BOE-BOT
ME 1030 Name: Due date: Introduction to Mechanical Engineering BOE BOT Collected Assignment #1 Communicating with the BOE-BOT Reading Assignment: 1. Refer to the following sections in the BOE BOT Textbook
More informationIntroduction to the Emacs Editor
Introduction to the Emacs Editor Scott D. Anderson Wellesley College Scott.Anderson@acm.org c Fall 2004 1 What is Emacs? Emacs is an editor: a program that allows you to modify files. Many of you have
More informationSymbolic Reasoning. Dr. Neil T. Dantam. Spring CSCI-561, Colorado School of Mines. Dantam (Mines CSCI-561) Symbolic Reasoning Spring / 86
Symbolic Reasoning Dr. Neil T. Dantam CSCI-561, Colorado School of Mines Spring 2019 Dantam (Mines CSCI-561) Symbolic Reasoning Spring 2019 1 / 86 Introduction Definition: Symbolic Reasoning Inference
More informationCMSC131. Hardware and Software. Hardware
CMSC131 Hardware and Software Hardware Hardware is what makes up the physical machine. Two of the same type of machines can have different brands of hardware used to build them. eg : Hayes Modem -vs- US
More informationCMSC131. Hardware and Software
CMSC131 Hardware and Software Hardware Hardware is what makes up the physical machine. Two of the same type of machines can have different brands of hardware used to build them. eg : Hayes Modem -vs- US
More informationPython is available at: https://www.python.org/ Why Python is awesome: https://www.python.org/about/success/
The Python IDLE: Introduction This tutorial assumes you have a PYTHON 3 version of the programming language installed. (Current version at of this writing is Python 3.6) Python is available at: https://www.python.org/
More informationLecture #24: Programming Languages and Programs
Lecture #24: Programming Languages and Programs A programming language is a notation for describing computations or processes. These range from low-level notations, such as machine language or simple hardware
More information5. Control Statements
5. Control Statements This section of the course will introduce you to the major control statements in C++. These control statements are used to specify the branching in an algorithm/recipe. Control statements
More informationIntroduction To 64 Bit Windows Assembly Programming Epub Gratuit
Introduction To 64 Bit Windows Assembly Programming Epub Gratuit This book introduces programmers to 64 bit Intel assembly language using the Microsoft Windows operating system. The book also discusses
More informationINF4820. Common Lisp: Closures and Macros
INF4820 Common Lisp: Closures and Macros Erik Velldal University of Oslo Oct. 19, 2010 Erik Velldal INF4820 1 / 22 Topics for Today More Common Lisp A quick reminder: Scope, binding and shadowing Closures
More informationCS1 Lecture 3 Jan. 18, 2019
CS1 Lecture 3 Jan. 18, 2019 Office hours for Prof. Cremer and for TAs have been posted. Locations will change check class website regularly First homework assignment will be available Monday evening, due
More informationFunctional Languages. CSE 307 Principles of Programming Languages Stony Brook University
Functional Languages CSE 307 Principles of Programming Languages Stony Brook University http://www.cs.stonybrook.edu/~cse307 1 Historical Origins 2 The imperative and functional models grew out of work
More informationSenthil Kumaran S
Senthil Kumaran S http://www.stylesen.org/ Agenda History Basics Control Flow Functions Modules History What is Python? Python is a general purpose, object-oriented, high level, interpreted language Created
More informationPreface A Brief History Pilot Test Results
Preface A Brief History In Fall, 2005, Wanda Dann and Steve Cooper, originators of the Alice approach for introductory programming (in collaboration with Randy Pausch), met with Barb Ericson and Mark Guzdial,
More informationAllegro CL Certification Program
Allegro CL Certification Program Lisp Programming Series Level I Presented by 1 About David Margolies Manager, Documentation, Franz Inc Been working with Lisp since 1984 dm@franz.com 2 About Franz Inc.
More informationArtificial Intelligence Lecture 1
Artificial Intelligence Lecture 1 istrative Matters Webpage: www.aass.oru.se/~ali/ai2008 Teacher: Amy Loutfi Hours: Fridays 10 12 Lab Assistant: Marcello Cirillo 2 istrative Matters Course book: Alison
More information61A Lecture 28. Friday, November 4
61A Lecture 28 Friday, November 4 The Logo Programming Language A teaching language: designed for introductory programming One syntactic form for all purposes: invoking a procedure Only two data types:
More informationAP Computer Science Unit 1. Writing Programs Using BlueJ
AP Computer Science Unit 1. Writing Programs Using BlueJ 1. Open up BlueJ. Click on the Project menu and select New Project. You should see the window on the right. Navigate to wherever you plan to save
More information_CH17_525_10/31/06 CAL 101
1-59863-307-4_CH17_525_10/31/06 17 One advantage that SONAR has over any other music-sequencing product I ve worked with is that it enables the user to extend its functionality. If you find yourself in
More informationCS251 Programming Languages Handout # 47 Prof. Lyn Turbak May 22, 2005 Wellesley College. Scheme
CS251 Programming Languages Handout # 47 Prof. Lyn Turbak May 22, 2005 Wellesley College 1 Scheme Overview Scheme Scheme is a block-structured, lexically-scoped, properly tail-recursive dialect of Lisp
More informationnotice the '' you must have those around character values, they are not needed for integers or decimals.
C programming for the complete newbie Hello there im Krisis you may have seen me on irc.hackersclub.com. Well I thought it was about time to write an article like everyone else. But unlike many others
More informationAl al-bayt University Prince Hussein Bin Abdullah College for Information Technology Computer Science Department
Al al-bayt University Prince Hussein Bin Abdullah College for Information Technology Computer Science Department 0901212 Python Programming 1 st Semester 2014/2015 Course Catalog This course introduces
More informationMathematics. Name: Class: Transforming Life chances
Mathematics Name: Class: Transforming Life chances Children first- Aspire- Challenge- Achieve Aspire: To be the best I can be in everything that I try to do. To use the adults and resources available both
More informationCharacteristic of the Proposed System. Characteristic of the Proposed System DFD. ER Diagram. Functions used DISADVANTAGES OF PRESENT WORKING SYSTEM
Table of contents:- Project Description Functions used Project Vision Feasibility Study Working Of Present System DISADVANTAGES OF PRESENT WORKING SYSTEM Characteristic of the Proposed System Characteristic
More informationChris Simpkins (Georgia Tech) CS 2316 Data Manipulation for Engineers Python Overview 1 / 9
http://xkcd.com/353/ Chris Simpkins (Georgia Tech) CS 2316 Data Manipulation for Engineers Python Overview 1 / 9 Python Python is a general-purpose programming language, meaning you can write any kind
More informationThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
Simple Robot Simulator 2010 (SRS10) Written by Walter O. Krawec Copyright (c) 2013 Walter O. Krawec Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
More informationAllegro CL Certification Program
Allegro CL Certification Program Lisp Programming Series Level I Review David Margolies 1 Summary 1 A lisp session contains a large number of objects which is typically increased by user-created lisp objects
More informationComputer Science 21b: Structure and Interpretation of Computer Programs (Spring Term, 2004)
Computer Science 21b: Structure and Interpretation of Computer Programs (Spring Term, 2004) There are only 5 ideas in Computer Science, and by the end of this course, you ll know 3 of them --Harry Mairson
More informationENVIRONMENT MODEL: FUNCTIONS, DATA 18
ENVIRONMENT MODEL: FUNCTIONS, DATA 18 COMPUTER SCIENCE 61A Jon Kotker and Tom Magrino July 18, 2012 1 Motivation Yesterday, we introduced the environment model of computation as an alternative to the earlier
More informationCOP 3275: Chapter 04. Jonathan C.L. Liu, Ph.D. CISE Department University of Florida, USA
COP 3275: Chapter 04 Jonathan C.L. Liu, Ph.D. CISE Department University of Florida, USA Operators C emphasizes expressions rather than statements. Expressions are built from variables, constants, and
More informationFractions and their Equivalent Forms
Fractions Fractions and their Equivalent Forms Little kids use the concept of a fraction long before we ever formalize their knowledge in school. Watching little kids share a candy bar or a bottle of soda
More informationCMPE 8 Lab 3: Introduction to the Scribbler 2 and SPIN
CMPE 8 Lab 3: Introduction to the Scribbler 2 and SPIN Lab Objectives By the end of this lab you should be able to: 1. Identify the key components of the Scribbler 2 robot. 2. Use the Propeller Tool IDE
More informationLaboratory 1: Eclipse and Karel the Robot
Math 121: Introduction to Computing Handout #2 Laboratory 1: Eclipse and Karel the Robot Your first laboratory task is to use the Eclipse IDE framework ( integrated development environment, and the d also
More informationag.el Documentation Release 0.45 Wilfred Hughes
ag.el Documentation Release 0.45 Wilfred Hughes Feb 25, 2018 Contents 1 Installation 3 1.1 Operating System............................................ 3 1.2 Emacs..................................................
More informationCS 106 Winter 2016 Craig S. Kaplan. Module 07 Recursion and fractals Topics. Recursion as an extension of hierarchical modelling Simple fractals
CS 106 Winter 2016 Craig S. Kaplan Module 07 Recursion and fractals Topics Recursion as an extension of hierarchical modelling Simple fractals Readings Learning Processing, Section 13.11 Nature of Code,
More informationIntroduction to MATLAB
Introduction to MATLAB Aapo Nummenmaa, PhD Athinoula A. Martinos Center for Biomedical Imaging, Massachusetts General Hospital, Harvard Medical School, Boston Background Overview! What is MATLAB?! MATLAB=(MATrix
More informationECE 2036 Lab 1: Introduction to Software Objects
ECE 2036 Lab 1: Introduction to Software Objects Assigned: Aug 24/25 2015 Due: September 1, 2015 by 11:59 PM Reading: Deitel& Deitel Chapter 2-4 Student Name: Check Off/Score Part 1: Check Off/Score Part
More informationHello World! Computer Programming for Kids and Other Beginners. Chapter 1. by Warren Sande and Carter Sande. Copyright 2009 Manning Publications
Hello World! Computer Programming for Kids and Other Beginners by Warren Sande and Carter Sande Chapter 1 Copyright 2009 Manning Publications brief contents Preface xiii Acknowledgments xix About this
More informationReading: Chapter 17 Homework: All exercises from Chapter 17 Due: 10/27 Correction: Chapter 16 homework is due 10/25
Homework Reading: Chapter 17 Homework: All exercises from Chapter 17 Due: 10/27 Correction: Chapter 16 homework is due 10/25 Copyright c 2002 2017 UMaine School of Computing and Information S 1 / 33 COS
More informationCS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 2: SEP. 8TH INSTRUCTOR: JIAYIN WANG
CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 2: SEP. 8TH INSTRUCTOR: JIAYIN WANG 1 Notice Class Website http://www.cs.umb.edu/~jane/cs114/ Reading Assignment Chapter 1: Introduction to Java Programming
More informationCSI Lab 02. Tuesday, January 21st
CSI Lab 02 Tuesday, January 21st Objectives: Explore some basic functionality of python Introduction Last week we talked about the fact that a computer is, among other things, a tool to perform high speed
More informationMath 395 Homework #1 Due Wednesday, April 12
Math 395 Homework #1 Due Wednesday, April 12 LaTex is a typesetting system that is widely used by mathematicians. It has the ability to typeset just about any mathematical notation, as well as complex
More informationCSCI 121: Anatomy of a Python Script
CSCI 121: Anatomy of a Python Script Python Scripts We start by a Python script: A text file containing lines of Python code. Each line is a Python statement. The Python interpreter (the python3 command)
More informationIntroduction to Java Unit 1. Using BlueJ to Write Programs
Introduction to Java Unit 1. Using BlueJ to Write Programs 1. Open up BlueJ. Click on the Project menu and select New Project. You should see the window on the right. Navigate to wherever you plan to save
More informationA beginner s guide to (GNU) Emacs 24
A beginner s guide to (GNU) Emacs 24 Matthew Chan, themattchan.com, last updated November 2014 Part 0: Getting started Why Emacs? Emacs is the One True Editor. Emacs can do anything you can possibly think
More informationTry typing the following in the Python shell and press return after each calculation. Write the answer the program displays next to the sums below.
Name: Date: Instructions: PYTHON - INTRODUCTORY TASKS Open Idle (the program we will be using to write our Python codes). We can use the following code in Python to work out numeracy calculations. Try
More informationComputer and Programming: Lab 1
01204111 Computer and Programming: Lab 1 Name ID Section Goals To get familiar with Wing IDE and learn common mistakes with programming in Python To practice using Python interactively through Python Shell
More informationLP/LispLite: Trivial Lisp Org Mode Conversion
LP/LispLite: Trivial Lisp Org Mode Conversion Roy M. Turner Spring 2016 Contents 1 Introduction 3 2 Using the tool 3 3 Header/miscellaneous 3 4 Variables/parameters 4 4.1 Variable: =*short-comment-start-regexp*........................
More informationFUNKCIONÁLNÍ A LOGICKÉ PROGRAMOVÁNÍ 2. ÚVOD DO LISPU: ATOMY, SEZNAMY, FUNKCE,
FUNKCIONÁLNÍ A LOGICKÉ PROGRAMOVÁNÍ 2. ÚVOD DO LISPU: ATOMY, SEZNAMY, FUNKCE, 2011 Jan Janoušek MI-FLP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti L I S P - Introduction L I S P
More informationCS2900 Introductory Programming with Python and C++ Kevin Squire LtCol Joel Young Fall 2007
CS2900 Introductory Programming with Python and C++ Kevin Squire LtCol Joel Young Fall 2007 Course Web Site http://www.nps.navy.mil/cs/facultypages/squire/cs2900 All course related materials will be posted
More informationProgramming Fundamentals and Python
Chapter 2 Programming Fundamentals and Python This chapter provides a non-technical overview of Python and will cover the basic programming knowledge needed for the rest of the chapters in Part 1. It contains
More informationIntroduction to Linux
Introduction to Linux The command-line interface A command-line interface (CLI) is a type of interface, that is, a way to interact with a computer. Window systems, punched cards or a bunch of dials, buttons
More informationAMS 200: Working on Linux/Unix Machines
AMS 200, Oct 20, 2014 AMS 200: Working on Linux/Unix Machines Profs. Nic Brummell (brummell@soe.ucsc.edu) & Dongwook Lee (dlee79@ucsc.edu) Department of Applied Mathematics and Statistics University of
More informationMidterm 1 Review Document
Midterm 1 Review Document CS61B Fall 2016 Antares Chen Introduction This document is meant to provide you supplementary practice questions for the upcoming midterm. It reflects all material that you will
More informationWelcome to CS61A! Last modified: Thu Jan 23 03:58: CS61A: Lecture #1 1
Welcome to CS61A! This is a course about programming, which is the art and science of constructing artifacts ( programs ) that perform computations or interact with the physical world. To do this, we have
More informationHomework. Reading: Chapter 17 Homework: All exercises from Chapter 17 Due: 10/27 Correction: Chapter 16 homework is due 10/25
Homework Reading: Chapter 17 Homework: All exercises from Chapter 17 Due: 10/27 Correction: Chapter 16 homework is due 10/25 Copyright c 2002 2017 UMaine Computer Science Department 1 / 33 1 COS 140: Foundations
More informationby the evening of Tuesday, Feb 6
Homework 1 Due 14 February Handout 6 CSCI 334: Spring 2018 Notes This homework has three types of problems: Self Check: You are strongly encouraged to think about and work through these questions, and
More information