Teaching CS1 with Karel the Robot in Java
|
|
- Juniper McLaughlin
- 5 years ago
- Views:
Transcription
1 Teaching CS1 with Kare the Robot in Java Byron Weber Becker Department of Computer Science University of Wateroo Wateroo, Ontario, Canada N2L 3G1 Abstract Most current Java textbooks for CS (and thus most current courses) begin either with fundamentas from the procedura paradigm (assignment, iteration, seection) or with a brief introduction to using objects foowed quicky with writing objects. We have found a third way to be most satisfying for both teachers and students: using interesting predefined casses to introduce the fundamentas of object-oriented programming (object instantiation, method cas, inheritance) foowed quicky by the traditiona fundamentas of iteration and seection, aso taught using the same predefined casses. Kare the Robot, deveoped by Richard Pattis [6] and weknown to many computer science educators, has aged gracefuy and is a vita part of our CS 1 curricuum. This paper expains how Kare may be used and the advantages of doing so. 1 Introduction We began the deveopment of our Java-based introductory programming course for CS majors and Math students in At the outset we reaized the obvious: we woud have to make a paradigm shift from procedura programming to object-oriented programming. What surprised us was the second paradigm shift required - the paradigm for teaching an OO anguage (Java) is different from teaching a procedura anguage such as Pasca, C or even C++. The first time we taught the course we used a textbook which was very we-written but paced objects reativey ate - about where a Pasca text woud pace records. We were uneasy with this, feeing that objects reay ought to be introduced and used from day 1, but as we coud not find a satisfactory text which supported this we made an attempt to provide our own exampes parae to the text. Permission to make digita or hard copies of a or part of this work for persona or cassroom use is granted without fee provided that copies are not made or distributed for profit or commercia advantage and that copies bear this notice and the fu citation on the first page. 'To copy otherwise, to repubish, to post on servers or to redistribute to ists, requires prior specific permission and/or a fee. SIGCSE /01 Charotte, NC, USA 2001 ACM ISBN /01/ $5.00 It was a disaster. The fundamenta object-oriented concepts (object instantiation, method cas, inheritance) came too ate in the course. Students didn't have enough time to master the topics. This was worsened by the fact that most of our students come with some (procedura) programming experience from high schoo. When the eary part of the course focused on iteration and seection (without objects, except for the itte we provided ourseves), most students thought they aready knew it a. After reviewing textbooks again, our standard rant went ike this: "Textbooks start with a vague, airy-fairy descriptions of objects (Java is an object-oriented anguage after a), but then go into primitive types. No objects. Chapter 3 is seection using payro as an exampe. No objects. Chapter 4 is iteration - no objects. Suddeny, in chapter 5, students are expected to use and write objects. And they say, 'Remind me what an object is... What are they good for? How do I use them? What are the characteristics of a good object?'." Shorty thereafter we discovered Kare the Robot in Kare++: A Gente Introduction to the Art of Object- Oriented Programming [2], the most recent incarnation of Rich Pattis' idea from the eary 1980's. It was a reveation to us. This was how we wanted to teach Java. There were just two probems. First, the book is reay oriented towards C++ rather than Java. Second, it's ony the introduction to an introductory course, covering the first 4-5 weeks. After convincing the pubisher to aow us to transate Kare++ to Java, adding a second textbook, writing software to support Kare, and rewriting a our ectures, we have a course we are very happy with. The remainder of this paper discusses Kare the Robot and the advantages we see in starting the course by using an interesting object. 2 Kare and Karers Word Kare inhabits a very simpe word. There are avenues running north and south numbered one to infinity and streets running east and west, aso numbered one to infinity. Was may bock avenues or streets. Beepers may be paced on the intersections of the avenues and streets. Severa robots may exist within the same word. Within this word, robots may move forward from one intersection to an adjacent intersection uness the way is bocked by a wa. They may turn eft 90 degrees to face a 50
2 different direction. Robots may pick up a beeper from their current intersection (if one or more are present), or pace a beeper on their current intersection (provided they are carrying at east one beeper). Robots may carry beepers between intersections in their "beeper bag" and may detect whether or not their beeper bag is empty. Robots may aso determine if they are facing north (or any of the other 3 compass positions), if there is a beeper on the current intersection or if there is another robot on the current intersection. The word and the actions of any robots within it are shown visuay on the computer monitor. A sampe is shown in Figure 1. If the goa of the robot is to pick up a of the beepers, then one possibe soution is shown in Figure 2. This exampe may be seen running as an appet at 01/sampes.htm. A second on-ine exampe shows four robots soving the same probem. A third exampe uses threads so that four robots work simutaneousy (instead of taking turns) to sove the probem. ' Fast package HarvestSquare; import cslib.kare.robot; import cslib.kare.word; pubic cass Main extends Object { pubic static void main (String[] args) { //Instantiate a new word, initiaized with was and //beepers as specified in a fie. Word square = new Wor 1 d ("HarvestAroundSquare.txt") ; E Instanti~e a new Robot and add it to the word E the corner of 2nd avenue and 3~ street facing east. HarvesterRobot kare = new HarvesterRobot(); square.addrobot(kare, 2, 3, Word.EAST); H Moveintotheintiaposition, then pickthe beepe~ H and turnoff. kare.move(); kare.pickboundedrectange(); kare.turnoff(); f + eeeet ' I. T /** A new kind of robot which knows how to harvest beepers aid out in a rectange with a wa marking the end of each side. */ cass HarvesterRobot extends Robot { /** Pick the beepers in a rectange where the end of each side is bounded by a wa. */ pubic void pickboundedrectange() { for(int side=0; side<4; side++) { this.pickuntiwa () ; this.turnleft () ; } : i* I ri fi it i i Z. Avenues Sow Figure 1: An initia situation with one robot (an arrowhead), tweve beepers (circes) and ten was (rectanges). 3 Differences from Previous Work Our impementation of Kare differs from Kare++ and the origina Kare in a number of significant ways. The most obvious is that we use Java whie the previous two use their own anguages. Kare uses a Pasca-ike anguage whie Kare++ uses a anguage simiar to C++. Neither anguage, however, supports parameters or non-robot variabes whie /** Pick one beeper from each intersection between the current ocation and the nearest wa in the direction faced by the robot. */ private void pickuntiwa() { whie (this.frontscear()) { this.move(); this.pickbeeper () ; Figure 2: One soution to pick up a the beepers in the word shown in Figure 1. our approach aows the fu power of the Java programming anguage - incuding objects which do not extend Robot, oca and instance variabes of any type and threads. The previous impementations were programs which integrated a deveopment environment with a simuator. 51
3 The robot and word casses were buit right into the combined program. Our approach uses a standard Java deveopment environment. When students write a robot program they simpy import the required casses from a ibrary. This removes the need to switch environments mid-way through the course, but is somewhat more compex at the beginning. Because the previous impementations buit the definition of the robot's word into the simuator, the behaviors of the word coudn't change. In our impementation the word is a fuy extendabe cass. We encourage students to extend it with new behaviors for pacing was and beepers, for instance. 4 Course Outine A typica CS 1 course woud use Kare for the first four to five weeks to introduce objects, inheritance, seection, iteration, and reated concepts. After this introduction, robots woud be eft behind in favor of a wide range of exampes. 4.1 Week 01 : Instantiating and Using Objects In the first week we describe robots and the word they inhabit. After reviewing severa simpe programs, students understand how to instantiate objects, invoke an object's methods and that it is possibe to have severa objects beonging to the same cass, each with its own state. A typica homework probem is to instruct one or more robots to perform a fixed task such as retrieve a beeper from a given intersection. 4.2 Week 02: Extending Existing Casses During the first week students often ask "Can a robot turn right?" (or move forward more than one intersection at a time or...) - which they can't. This is the perfect opportunity to extend the Robot cass with new behaviors. For instance, to create a new cass of robots capabe of turning right, we write import cslib.kare.robot; pubic cass RightRobot extends Robot { pubic void turnright() { this.turnleft (); this.turnleft(); this.turnleft () ; } This basic idea is quicky expanded into step-wise refinement to sove a more compex probem such as picking up a the beepers in a fixed-size rectanguar area. A natura extension, parameterized methods, is deferred to eave sufficient time for discussing inheritance and stepwise refinement thoroughy. 4.3 Week 03: Seection and Iteration In the third week we tacke seection and iteration. The Robot cass incudes severa methods which return Booean vaues, incuding frontiscear (is there a wa immediatey in front of the robot?), nexttoabeeper (is there a beeper on the same intersection as the robot?), facingnorth (is the robot facing North?), and anybeepersinbeeperbag (is the robot carrying one or more beepers?). These aow a number of interesting probems such as the one shown in Figure 1, constructing a histogram out of beepers, or having the robot run a hurdes race where hurdes are represented by was. Vauereturning methods and Booean expressions fit naturay with the discussion of the provided predicates. 4.4 Week 04: Methods with Parameters Methods can be made much more genera, of course, with parameters. Simper probems incude a move method which takes an integer distance parameter or a harvestpot method which coects a the beepers from an area defined by the parameters. A more compex exampe is a contractor robot which has severa subcontractors to hep buid a house. The subcontractors are passed via parameters and give a good opportunity to compare passing primitive types with passing reference types. 4.5 Week 05: Instance Variabes In the ast week spent with robots, we extend the Robot cass with additiona instance variabes. We start with a DeiveryRobot which keeps track of how many moves it makes so that a customer can be charged for its services. After this reativey brief exampe we quicky move to other, non-robot, exampes such as a date or bank account cass. After introducing the fundamentas of object-oriented programming, the remainder of the course focuses on a wide range of topics incuding arrays, graphica user interfaces, and object-oriented design. 4.6 Discussion Taking five weeks to cover these topics seems sow, but it's not. Topics such as procedura decomposition, parameters, iteration and seection are hard for most beginners. They were hard back in the days of Pasca - and that hasn't changed just because we have moved to object-oriented anguages. In the Pasca predecessor to this course we spent two weeks on contro structures, two weeks on subprograms, and another week on records. Many courses may be abe to move faster. In fact, we do. By 1995 we observed that most of our incoming students had some previous programming experience. After making this a prerequisite for our "first" course (and providing a remedia course for those who didn't have it) we shaved a week off the schedue suggested above. Some peope assume robots are over-used and that students soon tire of them. This is not the case. We coud not use them onger, but just over four weeks is not too ong. Students enjoy the visua aspects and the anthropomorphism they make possibe. In the course evauations many students say they thoroughy enjoyed the robots; few mention them negativey. 52
4 We do need to mention often in cass that we are ony using robots as a too to earn about programming. It's not a course about robots - it's a course about programming! We reinforce this with frequent ausions to other possibe casses such as Empoyee or Date or Account, indicating that the concept under discussion appies to those situations, too. 5 Advantages There are a number of advantages to using Kare the Robot to introduce objects. A number have been auded to aready. They are more carefuy enumerated here. 5.1 Object-Oriented Fundamentas First Kare the Robot emphasizes the fundamenta concepts in OO programming (instantiating objects, invoking methods, extending existing casses) from the beginning. It's important that students be abe to practice these concepts as ong as possibe and that they not be eft to the midde or end of the course where they might be skimmed over ighty if time is tight. Of course the foundations of procedura programming (seection, iteration, procedura decomposition) are aso very important. The Robot cass aows them to be naturay introduced with the OO fundamentas so that they, too, can be practiced throughout the course. Many courses reverse these sets of fundamentas - introducing seection and iteration before using objects, sometimes treating objects as fancy Pasca records. There are at east two probems with this approach: a paradigm shift and missed opportunities. Students are often asked to write programs typica of those in chapter 3 of [4]. These are programs which count, sum or generate comments based on user input. None of these programs use objects except for System. out, strings, and (once or twice) an instance of NumberFormat. Later, the students must shift from a "do it a mysef right here" paradigm to a "find/buid some objects to cooperate in getting the job done" paradigm. The missed opportunities of this approach are in the richness of tasks that can be done with existing objects. Why shoud students be summing numbers when they coud be doing more interesting things which are pedagogicay just as vaid? Another common approach in existing textbooks is to make extensive use of System.out and the String cass as exampe objects. These programs use objects but the object creation is hidden by the run-time system (in the case of System. out) or specia anguage support (strings). Creating objects - incuding mutipe instances from the same cass - is an important part of students understanding what objects are and how they work. By using a sufficienty compex and interesting predefined cass such as Robot students can begin using the OO fundamentas from the beginning and avoid a paradigm shift ater on. 5.2 Robots are Visua The fact that robot words have a visua representation provides a number of benefits. Many probems can be specified using a picture of the initia situation and another of the fina situation, pus a few ines of text. We find that students have fewer questions about homework probems specified this way. The animation provides visua feedback on the correctness of an agorithm. If the student's program doesn't resut in the same image as the probem statement, there must be a bug (of course, just because it ooks the same doesn't mean it was done right...). Students can often see where their program goes wrong simpy by watching the animation. Because the human brain is highy optimized to process visua input this is faster and easier than, say, scanning a ist of numbers from a consoe program. Because robots provide output visuay, traditiona input and output can be deayed. This is p~ticuary attractive in Java where I/O is cumbersome, at best. 5.3 Robots are Fun Robots are fun! This is, perhaps, the biggest advantage of the approach. Students enjoy directing robots to do various tasks. Acting out a program in cass is more fun than tracing a isting. Visua output is more fun than textua output. 6 Reated Work Since we deveoped this course textbooks have, in genera, moved objects earier. Most, however, use a scattering of Java casses such as String or Random (which we find inferior to the approach recommended here) or expect students to write their own casses amost as soon as they earn about objects. See [1] for a more thorough treatment. A few textbooks come coser. Sack [9] uses turte graphics rather than a robot but uses a spira approach. Chapter 2 is a difficut chapter, packed with concepts iustrated with turte graphics. Chapters 4, 5, 7 and parts of 10 then come back to cover the concepts in more depth. Morei [5] uses a "CyberPet" as an interesting exampe to iustrate object-oriented fundamentas as we as iteration and seection. The difference is that it is not a pre-defined cass, as are the robots. Instead students deveop it as they go aong. Wu [10] gives a we-crafted rationae for using objects eary. The objects his students use, however, are a simpified interactive I/O ibrary used in the context of other probems. Otterbein Coege uses Kare the Robot as an introduction to programming. They have a sophisticated environment deveoped by Duane Buck which supports a Java-ike syntax (as we as Pasca and Lisp) and has an integrated compier and execution environment. Differences from our approach is that our students use a Java deveopment 53
5 environment, importing the necessary casses. Their students use one environment for Kare and a different one for other programs. In the Otterbein environment ony a singe robot can be used in any given program. The environment is avaiabe at JKareRobot/. Their arger approach is discussed in [3]. Joseph Bergin has made his own transation of Kare++ to Java avaiabe on the web, aong with casses impementing the robot. It may be found at KareJava/Kare++JavaEdition.htrn. Our own work is at Rich Pattis, the originator of Kare the Robot, has extended the idea into artificia ife simuations. The resut is a much more compex set of casses for students to master, but one that aso affords many more possibiities [7]. 7 Future Directions The argest difficuty we have encountered is that Kare++, and thus our transation of that book, is ony an introduction to object-oriented programming. It doesn't cover numerous topics expected in a CS1 course and so we jump to a standard text after severa weeks. Students often compain of this discontinuity. To overcome this I am writing a fu CS1 textbook which starts with Kare but aso incudes a the expected CS1 topics. This text wi aso incude a number of innovations beyond those discussed here. First, we currenty discuss attributes of an object (instance variabes) quite ate. After stressing in week 1 that an object has both behavior and attributes, it seems wrong to focus on behavior for so ong without mentioning attributes. In the text I wi cover object usage, extending objects (behaviors), seection, and then attributes, bringing two core object-oriented concepts into a much coser reationship. Second, there wi be a richer coection of casses. In addition to the current Robot and word (renamed city) wi be a CigyBock - the immediate environment of a robot. Students wi be abe to extend the CityBock cass and robots wi be abe to interact with CityBock objects. Picking up and putting down beepers then becomes just one exampe of possibe interactions. After studying how casses interact to impement beepers, students might go on to impement a robot that rakes eaves into pies or spreads pies of sat onto the streets or city bocks that dispay a different coor after being visited by a robot. Many of these projects make good use of instance variabes. This aso aows simuations inspired by artificia ife [7, 8]. Third, I am introducing a parae track which reinforces concepts using non-robot objects. Currenty too many students don't recognize that they are earning genera concepts via Kare the robot. Incuding other exampes shoud aeviate this. Since students ove graphics and GUI appications, I wi foow [4] and others in providing a "GUI Suppement." In chapter 1 we wi instantiate and invoke methods on a robot object foowed by instantiating and invoking methods on a JFrame object. In chapter 2 students wi extend robots to do new things and aso extend JFramo to do something new - paint a scene. Other chapters wi foow a simiar structure. 8 Concusions We have been extremey peased with using interesting predefined casses (Kare the Robot and its word) to teach object-oriented fundamentas (object instantiation, method cas, inheritance) and traditiona procedura fundamentas (iteration, seection) eary in the course. The resut has been a course that is fun for both students and instructors, and where students understand the fundamenta concepts eary, aowing them to approach advanced topics with confidence. References [1] Becker, Byron Weber. Pedagogiesfor Teaching CS1 in Java. papers/sigcse2001/iavapedagogies/index.htm. [2] Bergin, Joseph, Mark Stehik, Jim Roberts, and Richard Pattis. Kare++: A Gente Introduction to the Art of Object-Oriented Programming. John Wiey & Sons, [3] Buck, Duane and David J. Stucki. Design Eary Considered Ha~fu: Graduated Exposure to Compexity and Structure Based on Leves of Cognitive Deveopment. SIGCSE Buetin 1 (2000), p [4] Lewis, Johia and Wiiam Loftus. Java Software Soutions. Addison-Wesey, [5] Morei, Raph. Java, Java, Java: Object-Oriented Probem Soving. Prentice-Ha, [6] Patfis, Richard E.. Kare the Robot: A Gente Introduction to the Art of Programming, John Wiey & Sons, [7] Pattis, Richard E. Teaching top in C++ Using an Artificia Life Framework. SIGCSE Buetin 1 (1997), p [8] Resnick, Mitche. Turtes, termites, and traffic jams: exporations in massivey parae microwords. The MIT Press, [9] Sack, James M. Programming and Probem Soving with Java. Brooks/Coe, [10]Wu, C. Thomas. An Introduction to Object-Oriented Programming with Java. WCB/McGraw-HiI1,
Intro to Programming & C Why Program? 1.2 Computer Systems: Hardware and Software. Why Learn to Program?
Intro to Programming & C++ Unit 1 Sections 1.1-3 and 2.1-10, 2.12-13, 2.15-17 CS 1428 Spring 2018 Ji Seaman 1.1 Why Program? Computer programmabe machine designed to foow instructions Program a set of
More informationIntro to Programming & C Why Program? 1.2 Computer Systems: Hardware and Software. Hardware Components Illustrated
Intro to Programming & C++ Unit 1 Sections 1.1-3 and 2.1-10, 2.12-13, 2.15-17 CS 1428 Fa 2017 Ji Seaman 1.1 Why Program? Computer programmabe machine designed to foow instructions Program instructions
More informationfile://j:\macmillancomputerpublishing\chapters\in073.html 3/22/01
Page 1 of 15 Chapter 9 Chapter 9: Deveoping the Logica Data Mode The information requirements and business rues provide the information to produce the entities, attributes, and reationships in ogica mode.
More informationNavigating and searching theweb
Navigating and searching theweb Contents Introduction 3 1 The Word Wide Web 3 2 Navigating the web 4 3 Hyperinks 5 4 Searching the web 7 5 Improving your searches 8 6 Activities 9 6.1 Navigating the web
More informationSpecial Edition Using Microsoft Excel Selecting and Naming Cells and Ranges
Specia Edition Using Microsoft Exce 2000 - Lesson 3 - Seecting and Naming Ces and.. Page 1 of 8 [Figures are not incuded in this sampe chapter] Specia Edition Using Microsoft Exce 2000-3 - Seecting and
More informationMobile App Recommendation: Maximize the Total App Downloads
Mobie App Recommendation: Maximize the Tota App Downoads Zhuohua Chen Schoo of Economics and Management Tsinghua University chenzhh3.12@sem.tsinghua.edu.cn Yinghui (Catherine) Yang Graduate Schoo of Management
More informationSection 3: Exploring 3D shapes
Section 3: Exporing 3D shapes Contents Section 3: Exporing 3D shapes 3 1. Using practica work 3 2. A cross-curricuar approach 5 3. Using practica work to consoidate earning 6 Resource 1: Coecting and making
More informationSample of a training manual for a software tool
Sampe of a training manua for a software too We use FogBugz for tracking bugs discovered in RAPPID. I wrote this manua as a training too for instructing the programmers and engineers in the use of FogBugz.
More informationA METHOD FOR GRIDLESS ROUTING OF PRINTED CIRCUIT BOARDS. A. C. Finch, K. J. Mackenzie, G. J. Balsdon, G. Symonds
A METHOD FOR GRIDLESS ROUTING OF PRINTED CIRCUIT BOARDS A C Finch K J Mackenzie G J Basdon G Symonds Raca-Redac Ltd Newtown Tewkesbury Gos Engand ABSTRACT The introduction of fine-ine technoogies to printed
More informationSection 3 : Exploring 3D shapes
Section 3 : Exporing 3D shapes Copyright 2016 The Open University Contents Section 3: Exporing 3D shapes 3 1. Using practica work 3 2. A cross-curricuar approach 4 3. Using practica work to consoidate
More informationFunctions. 6.1 Modular Programming. 6.2 Defining and Calling Functions. Gaddis: 6.1-5,7-10,13,15-16 and 7.7
Functions Unit 6 Gaddis: 6.1-5,7-10,13,15-16 and 7.7 CS 1428 Spring 2018 Ji Seaman 6.1 Moduar Programming Moduar programming: breaking a program up into smaer, manageabe components (modues) Function: a
More informationAs Michi Henning and Steve Vinoski showed 1, calling a remote
Reducing CORBA Ca Latency by Caching and Prefetching Bernd Brügge and Christoph Vismeier Technische Universität München Method ca atency is a major probem in approaches based on object-oriented middeware
More informationLecture outline Graphics and Interaction Scan Converting Polygons and Lines. Inside or outside a polygon? Scan conversion.
Lecture outine 433-324 Graphics and Interaction Scan Converting Poygons and Lines Department of Computer Science and Software Engineering The Introduction Scan conversion Scan-ine agorithm Edge coherence
More informationChapter 3: Introduction to the Flash Workspace
Chapter 3: Introduction to the Fash Workspace Page 1 of 10 Chapter 3: Introduction to the Fash Workspace In This Chapter Features and Functionaity of the Timeine Features and Functionaity of the Stage
More informationindex.pdf March 17,
index.pdf March 17, 2013 1 ITI 1121. Introduction to omputing II Marce Turcotte Schoo of Eectrica Engineering and omputer Science Linked List (Part 2) Tai pointer ouby inked ist ummy node Version of March
More informationA Memory Grouping Method for Sharing Memory BIST Logic
A Memory Grouping Method for Sharing Memory BIST Logic Masahide Miyazai, Tomoazu Yoneda, and Hideo Fuiwara Graduate Schoo of Information Science, Nara Institute of Science and Technoogy (NAIST), 8916-5
More informationLanguage Identification for Texts Written in Transliteration
Language Identification for Texts Written in Transiteration Andrey Chepovskiy, Sergey Gusev, Margarita Kurbatova Higher Schoo of Economics, Data Anaysis and Artificia Inteigence Department, Pokrovskiy
More informationNeural Network Enhancement of the Los Alamos Force Deployment Estimator
Missouri University of Science and Technoogy Schoars' Mine Eectrica and Computer Engineering Facuty Research & Creative Works Eectrica and Computer Engineering 1-1-1994 Neura Network Enhancement of the
More informationNearest Neighbor Learning
Nearest Neighbor Learning Cassify based on oca simiarity Ranges from simpe nearest neighbor to case-based and anaogica reasoning Use oca information near the current query instance to decide the cassification
More informationMCSE Training Guide: Windows Architecture and Memory
MCSE Training Guide: Windows 95 -- Ch 2 -- Architecture and Memory Page 1 of 13 MCSE Training Guide: Windows 95-2 - Architecture and Memory This chapter wi hep you prepare for the exam by covering the
More informationAN EVOLUTIONARY APPROACH TO OPTIMIZATION OF A LAYOUT CHART
13 AN EVOLUTIONARY APPROACH TO OPTIMIZATION OF A LAYOUT CHART Eva Vona University of Ostrava, 30th dubna st. 22, Ostrava, Czech Repubic e-mai: Eva.Vona@osu.cz Abstract: This artice presents the use of
More informationStraight-line code (or IPO: Input-Process-Output) If/else & switch. Relational Expressions. Decisions. Sections 4.1-6, , 4.
If/ese & switch Unit 3 Sections 4.1-6, 4.8-12, 4.14-15 CS 1428 Spring 2018 Ji Seaman Straight-ine code (or IPO: Input-Process-Output) So far a of our programs have foowed this basic format: Input some
More informationSolutions to the Final Exam
CS/Math 24: Intro to Discrete Math 5//2 Instructor: Dieter van Mekebeek Soutions to the Fina Exam Probem Let D be the set of a peope. From the definition of R we see that (x, y) R if and ony if x is a
More informationunderstood as processors that match AST patterns of the source language and translate them into patterns in the target language.
A Basic Compier At a fundamenta eve compiers can be understood as processors that match AST patterns of the source anguage and transate them into patterns in the target anguage. Here we wi ook at a basic
More informationRDF Objects 1. Alex Barnell Information Infrastructure Laboratory HP Laboratories Bristol HPL November 27 th, 2002*
RDF Objects 1 Aex Barne Information Infrastructure Laboratory HP Laboratories Bristo HPL-2002-315 November 27 th, 2002* E-mai: Andy_Seaborne@hp.hp.com RDF, semantic web, ontoogy, object-oriented datastructures
More informationData Management Updates
Data Management Updates Jenny Darcy Data Management Aiance CRP Meeting, Thursday, November 1st, 2018 Presentation Objectives New staff Update on Ingres (JCCS) conversion project Fina IRB cosure at study
More informationProfessor: Alvin Chao
Professor: Avin Chao Anatomy of a Java Program: Comments Javadoc comments: /** * Appication that converts inches to centimeters. * * @author Chris Mayfied * @version 01/21/2014 */ Everything between /**
More informationCSE120 Principles of Operating Systems. Prof Yuanyuan (YY) Zhou Scheduling
CSE120 Principes of Operating Systems Prof Yuanyuan (YY) Zhou Scheduing Announcement Homework 2 due on October 25th Project 1 due on October 26th 2 CSE 120 Scheduing and Deadock Scheduing Overview In discussing
More informationA Comparison of a Second-Order versus a Fourth- Order Laplacian Operator in the Multigrid Algorithm
A Comparison of a Second-Order versus a Fourth- Order Lapacian Operator in the Mutigrid Agorithm Kaushik Datta (kdatta@cs.berkeey.edu Math Project May 9, 003 Abstract In this paper, the mutigrid agorithm
More informationRegister Allocation. Consider the following assignment statement: x = (a*b)+((c*d)+(e*f)); In posfix notation: ab*cd*ef*++x
Register Aocation Consider the foowing assignment statement: x = (a*b)+((c*d)+(e*f)); In posfix notation: ab*cd*ef*++x Assume that two registers are avaiabe. Starting from the eft a compier woud generate
More informationDETERMINING INTUITIONISTIC FUZZY DEGREE OF OVERLAPPING OF COMPUTATION AND COMMUNICATION IN PARALLEL APPLICATIONS USING GENERALIZED NETS
DETERMINING INTUITIONISTIC FUZZY DEGREE OF OVERLAPPING OF COMPUTATION AND COMMUNICATION IN PARALLEL APPLICATIONS USING GENERALIZED NETS Pave Tchesmedjiev, Peter Vassiev Centre for Biomedica Engineering,
More informationCSE120 Principles of Operating Systems. Prof Yuanyuan (YY) Zhou Lecture 4: Threads
CSE120 Principes of Operating Systems Prof Yuanyuan (YY) Zhou Lecture 4: Threads Announcement Project 0 Due Project 1 out Homework 1 due on Thursday Submit it to Gradescope onine 2 Processes Reca that
More informationMay 13, Mark Lutz Boulder, Colorado (303) [work] (303) [home]
"Using Python": a Book Preview May 13, 1995 Mark Lutz Bouder, Coorado utz@kapre.com (303) 546-8848 [work] (303) 684-9565 [home] Introduction. This paper is a brief overview of the upcoming Python O'Reiy
More informationThe Big Picture WELCOME TO ESIGNAL
2 The Big Picture HERE S SOME GOOD NEWS. You don t have to be a rocket scientist to harness the power of esigna. That s exciting because we re certain that most of you view your PC and esigna as toos for
More informationSpecial Edition Using Microsoft Office Sharing Documents Within a Workgroup
Specia Edition Using Microsoft Office 2000 - Chapter 7 - Sharing Documents Within a.. Page 1 of 8 [Figures are not incuded in this sampe chapter] Specia Edition Using Microsoft Office 2000-7 - Sharing
More informationECEn 528 Prof. Archibald Lab: Dynamic Scheduling Part A: due Nov. 6, 2018 Part B: due Nov. 13, 2018
ECEn 528 Prof. Archibad Lab: Dynamic Scheduing Part A: due Nov. 6, 2018 Part B: due Nov. 13, 2018 Overview This ab's purpose is to expore issues invoved in the design of out-of-order issue processors.
More informationA Petrel Plugin for Surface Modeling
A Petre Pugin for Surface Modeing R. M. Hassanpour, S. H. Derakhshan and C. V. Deutsch Structure and thickness uncertainty are important components of any uncertainty study. The exact ocations of the geoogica
More informationUnixWare 7 System Administration UnixWare 7 System Configuration
UnixWare 7 System Administration - CH 3 - UnixWare 7 System Configuration Page 1 of 8 [Figures are not incuded in this sampe chapter] UnixWare 7 System Administration - 3 - UnixWare 7 System Configuration
More informationRelational Model. Lecture #6 Autumn, Fall, 2001, LRX
Reationa Mode Lecture #6 Autumn, 2001 #06 Reationa Mode HUST,Wuhan,China 121 Reationa Mode Tabe = reation. Coumn headers = attributes. Row = tupe Reation schema = name(attributes). Exampe: Beers(name,
More informationWindows NT, Terminal Server and Citrix MetaFrame Terminal Server Architecture
Windows NT, Termina Server and Citrix MetaFrame - CH 3 - Termina Server Architect.. Page 1 of 13 [Figures are not incuded in this sampe chapter] Windows NT, Termina Server and Citrix MetaFrame - 3 - Termina
More informationLecture Notes for Chapter 4 Part III. Introduction to Data Mining
Data Mining Cassification: Basic Concepts, Decision Trees, and Mode Evauation Lecture Notes for Chapter 4 Part III Introduction to Data Mining by Tan, Steinbach, Kumar Adapted by Qiang Yang (2010) Tan,Steinbach,
More informationNCH Software Spin 3D Mesh Converter
NCH Software Spin 3D Mesh Converter This user guide has been created for use with Spin 3D Mesh Converter Version 1.xx NCH Software Technica Support If you have difficuties using Spin 3D Mesh Converter
More informationDevelopment of a National Portal for Tuvalu. Business Case. SPREP Pacific iclim
Deveopment of a Nationa Porta for Tuvau Business Case SPREP Pacific iclim Apri 2018 Tabe of Contents 1. Introduction... 3 1.1 Report Purpose... 3 1.2 Background & Context... 3 1.3 Other IKM Activities
More informationReadme ORACLE HYPERION PROFITABILITY AND COST MANAGEMENT
ORACLE HYPERION PROFITABILITY AND COST MANAGEMENT Reease 11.1.2.4.000 Readme CONTENTS IN BRIEF Purpose... 2 New Features in This Reease... 2 Instaation Information... 2 Supported Patforms... 2 Supported
More informationApplication of Intelligence Based Genetic Algorithm for Job Sequencing Problem on Parallel Mixed-Model Assembly Line
American J. of Engineering and Appied Sciences 3 (): 5-24, 200 ISSN 94-7020 200 Science Pubications Appication of Inteigence Based Genetic Agorithm for Job Sequencing Probem on Parae Mixed-Mode Assemby
More informationIntroducing a Target-Based Approach to Rapid Prototyping of ECUs
Introducing a Target-Based Approach to Rapid Prototyping of ECUs FEBRUARY, 1997 Abstract This paper presents a target-based approach to Rapid Prototyping of Eectronic Contro Units (ECUs). With this approach,
More informationComputer Networks. College of Computing. Copyleft 2003~2018
Computer Networks Computer Networks Prof. Lin Weiguo Coege of Computing Copyeft 2003~2018 inwei@cuc.edu.cn http://icourse.cuc.edu.cn/computernetworks/ http://tc.cuc.edu.cn Attention The materias beow are
More informationAn Introduction to Design Patterns
An Introduction to Design Patterns 1 Definitions A pattern is a recurring soution to a standard probem, in a context. Christopher Aexander, a professor of architecture Why woud what a prof of architecture
More informationAvaya Extension to Cellular User Guide Avaya Aura TM Communication Manager Release 5.2.1
Avaya Extension to Ceuar User Guide Avaya Aura TM Communication Manager Reease 5.2.1 November 2009 2009 Avaya Inc. A Rights Reserved. Notice Whie reasonabe efforts were made to ensure that the information
More informationEndoscopic Motion Compensation of High Speed Videoendoscopy
Endoscopic Motion Compensation of High Speed Videoendoscopy Bharath avuri Department of Computer Science and Engineering, University of South Caroina, Coumbia, SC - 901. ravuri@cse.sc.edu Abstract. High
More informationLoad Balancing by MPLS in Differentiated Services Networks
Load Baancing by MPLS in Differentiated Services Networks Riikka Susitaiva, Jorma Virtamo, and Samui Aato Networking Laboratory, Hesinki University of Technoogy P.O.Box 3000, FIN-02015 HUT, Finand {riikka.susitaiva,
More informationExtracting semistructured data from the Web: An XQuery Based Approach
EurAsia-ICT 2002, Shiraz-Iran, 29-31 Oct. Extracting semistructured data from the Web: An XQuery Based Approach Gies Nachouki Université de Nantes - Facuté des Sciences, IRIN, 2, rue de a Houssinière,
More informationAutomatic, Look-and-Feel Independent Dialog Creation for Graphical User Interfaces
CHI 90 Prcmedings Apri 1990 Automatic, Look-and-Fee Independent Diaog Creation for Graphica User Interfaces Brad Vander Zanden Brad A. Myers Schoo of Computer Science Carnegie Meon University Pittsburgh,
More informationAutomatic Grouping for Social Networks CS229 Project Report
Automatic Grouping for Socia Networks CS229 Project Report Xiaoying Tian Ya Le Yangru Fang Abstract Socia networking sites aow users to manuay categorize their friends, but it is aborious to construct
More informationFurther Concepts in Geometry
ppendix F Further oncepts in Geometry F. Exporing ongruence and Simiarity Identifying ongruent Figures Identifying Simiar Figures Reading and Using Definitions ongruent Trianges assifying Trianges Identifying
More informationDistance Weighted Discrimination and Second Order Cone Programming
Distance Weighted Discrimination and Second Order Cone Programming Hanwen Huang, Xiaosun Lu, Yufeng Liu, J. S. Marron, Perry Haaand Apri 3, 2012 1 Introduction This vignette demonstrates the utiity and
More informationOutline. Introduce yourself!! What is Machine Learning? What is CAP-5610 about? Class information and logistics
Outine Introduce yoursef!! What is Machine Learning? What is CAP-5610 about? Cass information and ogistics Lecture Notes for E Apaydın 2010 Introduction to Machine Learning 2e The MIT Press (V1.0) About
More informationSpace-Time Trade-offs.
Space-Time Trade-offs. Chethan Kamath 03.07.2017 1 Motivation An important question in the study of computation is how to best use the registers in a CPU. In most cases, the amount of registers avaiabe
More informationSensitivity Analysis of Hopfield Neural Network in Classifying Natural RGB Color Space
Sensitivity Anaysis of Hopfied Neura Network in Cassifying Natura RGB Coor Space Department of Computer Science University of Sharjah UAE rsammouda@sharjah.ac.ae Abstract: - This paper presents a study
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 informationFormulation of Loss minimization Problem Using Genetic Algorithm and Line-Flow-based Equations
Formuation of Loss minimization Probem Using Genetic Agorithm and Line-Fow-based Equations Sharanya Jaganathan, Student Member, IEEE, Arun Sekar, Senior Member, IEEE, and Wenzhong Gao, Senior member, IEEE
More informationBacking-up Fuzzy Control of a Truck-trailer Equipped with a Kingpin Sliding Mechanism
Backing-up Fuzzy Contro of a Truck-traier Equipped with a Kingpin Siding Mechanism G. Siamantas and S. Manesis Eectrica & Computer Engineering Dept., University of Patras, Patras, Greece gsiama@upatras.gr;stam.manesis@ece.upatras.gr
More informationPriority Queueing for Packets with Two Characteristics
1 Priority Queueing for Packets with Two Characteristics Pave Chuprikov, Sergey I. Nikoenko, Aex Davydow, Kiri Kogan Abstract Modern network eements are increasingy required to dea with heterogeneous traffic.
More informationInfinity Connect Web App Customization Guide
Infinity Connect Web App Customization Guide Contents Introduction 1 Hosting the customized Web App 2 Customizing the appication 3 More information 8 Introduction The Infinity Connect Web App is incuded
More informationl Tree: set of nodes and directed edges l Parent: source node of directed edge l Child: terminal node of directed edge
Trees & Heaps Week 12 Gaddis: 20 Weiss: 21.1-3 CS 5301 Fa 2016 Ji Seaman 1 Tree: non-recursive definition Tree: set of nodes and directed edges - root: one node is distinguished as the root - Every node
More informationThe Internet and the web
The Internet and the web Contents Introduction 3 1 The Internet at home 4 2 Loca Area Networks sma office/home office 5 3 Loca Area Networks business 6 4 Wide Area Networks 8 5 Wireess networks 9 6 Mobie
More informationMicrosoft Visual Studio 2005 Professional Tools. Advanced development tools designed for professional developers
Microsoft Visua Studio 2005 Professiona Toos Advanced deveopment toos designed for professiona deveopers If you re a professiona deveoper, Microsoft has two new ways to fue your deveopment efforts: Microsoft
More informationA Design Method for Optimal Truss Structures with Certain Redundancy Based on Combinatorial Rigidity Theory
0 th Word Congress on Structura and Mutidiscipinary Optimization May 9 -, 03, Orando, Forida, USA A Design Method for Optima Truss Structures with Certain Redundancy Based on Combinatoria Rigidity Theory
More informationQuality Assessment using Tone Mapping Algorithm
Quaity Assessment using Tone Mapping Agorithm Nandiki.pushpa atha, Kuriti.Rajendra Prasad Research Schoar, Assistant Professor, Vignan s institute of engineering for women, Visakhapatnam, Andhra Pradesh,
More information17.3 Surface Area of Pyramids and Cones
Name Cass Date 17.3 Surface Area of Pyramids and Cones Essentia Question: How is the formua for the atera area of a reguar pyramid simiar to the formua for the atera area of a right cone? Expore G.11.C
More informationCSE120 Principles of Operating Systems. Prof Yuanyuan (YY) Zhou Synchronization: Semaphore
CSE120 Principes of Operating Systems Prof Yuanyuan (YY) Zhou Synchronization: Synchronization Needs Two synchronization needs Mutua excusion Whenever mutipe threads access a shared data, you need to worry
More informationA Robust Sign Language Recognition System with Sparsely Labeled Instances Using Wi-Fi Signals
A Robust Sign Language Recognition System with Sparsey Labeed Instances Using Wi-Fi Signas Jiacheng Shang, Jie Wu Center for Networked Computing Dept. of Computer and Info. Sciences Tempe University Motivation
More informationA Fast Block Matching Algorithm Based on the Winner-Update Strategy
In Proceedings of the Fourth Asian Conference on Computer Vision, Taipei, Taiwan, Jan. 000, Voume, pages 977 98 A Fast Bock Matching Agorithm Based on the Winner-Update Strategy Yong-Sheng Chenyz Yi-Ping
More informationSolving Large Double Digestion Problems for DNA Restriction Mapping by Using Branch-and-Bound Integer Linear Programming
The First Internationa Symposium on Optimization and Systems Bioogy (OSB 07) Beijing, China, August 8 10, 2007 Copyright 2007 ORSC & APORC pp. 267 279 Soving Large Doube Digestion Probems for DNA Restriction
More informationNCH Software Express Delegate
NCH Software Express Deegate This user guide has been created for use with Express Deegate Version 4.xx NCH Software Technica Support If you have difficuties using Express Deegate pease read the appicabe
More informationGenetic Algorithms for Parallel Code Optimization
Genetic Agorithms for Parae Code Optimization Ender Özcan Dept. of Computer Engineering Yeditepe University Kayışdağı, İstanbu, Turkey Emai: eozcan@cse.yeditepe.edu.tr Abstract- Determining the optimum
More informationHistory of Computing
15-292 History of Computing The GUI and the rise of Microsoft Based on sides originay pubished by Thomas J. Cortina in 2004 for a course at Stony Brook University. Revised in 2013 by Thomas J. Cortina
More informationLayout Conscious Approach and Bus Architecture Synthesis for Hardware-Software Co-Design of Systems on Chip Optimized for Speed
Layout Conscious Approach and Bus Architecture Synthesis for Hardware-Software Co-Design of Systems on Chip Optimized for Speed Nattawut Thepayasuwan, Member, IEEE and Aex Doboi, Member, IEEE Abstract
More informationFastest-Path Computation
Fastest-Path Computation DONGHUI ZHANG Coege of Computer & Information Science Northeastern University Synonyms fastest route; driving direction Definition In the United states, ony 9.% of the househods
More informationl A program is a set of instructions that the l It must be translated l Variable: portion of memory that stores a value char
Week 1 Operators, Data Types & I/O Gaddis: Chapters 1, 2, 3 CS 5301 Fa 2018 Ji Seaman Programming A program is a set of instructions that the computer foows to perform a task It must be transated from
More informationChapter 3: KDE Page 1 of 31. Put icons on the desktop to mount and unmount removable disks, such as floppies.
Chapter 3: KDE Page 1 of 31 Chapter 3: KDE In This Chapter What Is KDE? Instaing KDE Seecting KDE Basic Desktop Eements Running Programs Stopping KDE KDE Capabiities Configuring KDE with the Contro Center
More informationAn Optimizing Compiler
An Optimizing Compier The big difference between interpreters and compiers is that compiers have the abiity to think about how to transate a source program into target code in the most effective way. Usuay
More informationTHE PERCENTAGE OCCUPANCY HIT OR MISS TRANSFORM
17th European Signa Processing Conference (EUSIPCO 2009) Gasgow, Scotand, August 24-28, 2009 THE PERCENTAGE OCCUPANCY HIT OR MISS TRANSFORM P. Murray 1, S. Marsha 1, and E.Buinger 2 1 Dept. of Eectronic
More informationFurther Optimization of the Decoding Method for Shortened Binary Cyclic Fire Code
Further Optimization of the Decoding Method for Shortened Binary Cycic Fire Code Ch. Nanda Kishore Heosoft (India) Private Limited 8-2-703, Road No-12 Banjara His, Hyderabad, INDIA Phone: +91-040-3378222
More informationMulti-level Shape Recognition based on Wavelet-Transform. Modulus Maxima
uti-eve Shape Recognition based on Waveet-Transform oduus axima Faouzi Aaya Cheikh, Azhar Quddus and oncef Gabbouj Tampere University of Technoogy (TUT), Signa Processing aboratory, P.O. Box 553, FIN-33101
More informationIBC DOCUMENT PROG007. SA/STA SERIES User's Guide V7.0
IBC DOCUMENT SA/STA SERIES User's Guide V7.0 Page 2 New Features for Version 7.0 Mutipe Schedues This version of the SA/STA firmware supports mutipe schedues for empoyees. The mutipe schedues are impemented
More informationMeeting Exchange 4.1 Service Pack 2 Release Notes for the S6200/S6800 Servers
Meeting Exchange 4.1 Service Pack 2 Reease Notes for the S6200/S6800 Servers The Meeting Exchange S6200/S6800 Media Servers are SIP-based voice and web conferencing soutions that extend Avaya s conferencing
More informationOuterjoins, Constraints, Triggers
Outerjoins, Constraints, Triggers Lecture #13 Autumn, 2001 Fa, 2001, LRX #13 Outerjoins, Constraints, Triggers HUST,Wuhan,China 358 Outerjoin R S = R S with danging tupes padded with nus and incuded in
More informationWelcome - CSC 301. CSC 301- Foundations of Programming Languages
Wecome - CSC 301 CSC 301- Foundations of Programming Languages Instructor: Dr. Lutz Hame Emai: hame@cs.uri.edu Office: Tyer, Rm 251 Office Hours: TBA TA: TBA Assignments Assignment #0: Downoad & Read Syabus
More informationCylanceOPTICS. Frequently Asked Questions
CyanceOPTICS Frequenty Asked Questions Question What is CyanceOPTICS? CyanceOPTICS is an AI driven endpoint detection and response component providing consistent visibiity, root cause anaysis, scaabe threat
More informationChapter Multidimensional Direct Search Method
Chapter 09.03 Mutidimensiona Direct Search Method After reading this chapter, you shoud be abe to:. Understand the fundamentas of the mutidimensiona direct search methods. Understand how the coordinate
More informationHour 3: Linux Basics Page 1 of 16
Hour 3: Linux Basics Page 1 of 16 Hour 3: Linux Basics Now that you ve instaed Red Hat Linux, you might wonder what to do next. Whether you re the kind of person who earns by jumping right in and starting
More informationResource Optimization to Provision a Virtual Private Network Using the Hose Model
Resource Optimization to Provision a Virtua Private Network Using the Hose Mode Monia Ghobadi, Sudhakar Ganti, Ghoamai C. Shoja University of Victoria, Victoria C, Canada V8W 3P6 e-mai: {monia, sganti,
More informationCOS 318: Operating Systems. Virtual Memory Design Issues: Paging and Caching. Jaswinder Pal Singh Computer Science Department Princeton University
COS 318: Operating Systems Virtua Memory Design Issues: Paging and Caching Jaswinder Pa Singh Computer Science Department Princeton University (http://www.cs.princeton.edu/courses/cos318/) Virtua Memory:
More informationChapter Ten. Volumes and Surface Areas of Simple Solids
Capter Ten Voumes and Surface Areas of Simpe Soids We ook at o to cacuate te areas and perimeters of many geometric figures in te ast capter. As you get farter advanced in mat, you find cases ere you need
More informationBrad A. Myers Human Computer Interaction Institute Carnegie Mellon University Pittsburgh, PA
PAPERS CHI 98. 18-23 APRIL 1998 Scripting Graphica Appications ABSTRACT Writing scripts (often caed macros ) can be hepfu for automating repetitive tasks. Scripting faciities for text editors ike Emacs
More information3.1 The cin Object. Expressions & I/O. Console Input. Example program using cin. Unit 2. Sections 2.14, , 5.1, CS 1428 Spring 2018
Expressions & I/O Unit 2 Sections 2.14, 3.1-10, 5.1, 5.11 CS 1428 Spring 2018 Ji Seaman 1 3.1 The cin Object cin: short for consoe input a stream object: represents the contents of the screen that are
More informationMACHINE learning techniques can, automatically,
Proceedings of Internationa Joint Conference on Neura Networks, Daas, Texas, USA, August 4-9, 203 High Leve Data Cassification Based on Network Entropy Fiipe Aves Neto and Liang Zhao Abstract Traditiona
More informationComputer Graphics (CS 543) Lecture 9b: Shadows and Shadow Maps. Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)
Computer Graphics (CS 543) Lecture 9b: Shadows and Shadow Maps Prof Emmanue Agu Computer Science Dept. Worcester Poytechnic Institute (WPI) Introduction to Shadows Shadows give information on reative positions
More informationAlfonse, Your Java Is Ready!
. Afonse, Your Java Is Ready! Stephen J. Hartey Math and Computer Science Department Drhxe University, Phiadephia, PA 19104 (215) 895-2678. maito:shartey@mcs.drexe.edu. Abstract i L L Is Java suitabe for
More information