Programming Languages
|
|
- Nathaniel Cross
- 5 years ago
- Views:
Transcription
1 Programming Languages Week 9 Exercises Object-oriented programming in Python (2) Objects are especially useful for factoring state and behaviour. When two (or more) different classes of object are specicialisations of a more general idea, each of those classes can share a single description of the state and behaviour that they all have in common. (Avoiding duplication of description or code is sometimes called the DRY principle : Don t Repeat Yourself.) 1. Create a class Student, representing students. Each student should have three properties: a name, an identifying number, and a year of entry. Give the properties unusual names to dissuade programmers from accessing them directly. Define accessors (with sensible names) for each of the three properties. Add a repr method so that the Student objects print themselves nicely. class Student(): def init (self, name, number, year): self._name = name... # similarly for number and year def name( self): return self._name... # similarly for number and year return "Student(" + self.name() \ + ", #" + str(self.number()) \ + ", " + str(self.year()) + ")" s = Student(" Werner Learner", 123, 2017) print(s) #=> Student( Werner Learner, #123, 2017) 2. Create a class Teacher, representing teachers. Each teacher has three properties: a name, an ID number, and an office number. Give the properties unusual names, and again define an accessor for each of the properties. Don t forget a repr method for printing. class Teacher(): def init (self, name, number, office): self._name = name... # similarly for number and office def name( self): return self._name... # similarly for number and office return "Teacher(" + self.name() \ + ", #" + str(self.number()) + \ ", " + str(self.office()) + ")" t = Teacher(" Nate Pontificate", 456, 301) print(t) #=> Teacher( Nate Pontificate, #456, 301)
2 Refactoring and inheritance Students and Teachers have much in common. They both have names, and they both have ID numbers. The similarity is because they are specialisations of a more general idea, which we might call academic. Refactoring the two classes will move the properties that they share into a single base class, called Academic from which Student and Teacher will inherit what it means to be an academic. The Student class will the specialise the idea of academic with just those properties that are unique to students. Similarly, the Teacher class will the specialise the idea of academic with properties that are unique to teachers. 3. Create a class Academic, representing only the common properties of both Students and Teachers. The easiest way to do this is to copy one of your existing classes (e.g., Student), rename it to Academic, and then remove all the parts that are specific to students (the year of entry). In other words, Academics only have a name and an ID number. class Academic(): # a copy of the Student class, renamed def init (self, name, number): # no year... # the same initialisation, but omit the year... # define accessors for name and number only return " Academic(" +... # name and number only a = Academic(" Tinka Thinka", 789) print(a) #=> Academic( Tinka Thinka, #789) The two original classes Student and Teacher can now be made much smaller, by inheriting their common properties from the Academic class. 4. Create subclasses of Academic, Student and Teacher, representing only their distinguishing properties. To create a subclass C, which inherits from a base class B, just write the class definition as class C(B):.... Within the methods of C (including the instance initialisation method init ) the methods of the base class B can be called as B.method(self,...). class Student( Academic): def init (self, name, number, year): Academic. init (self, name, number) self._year = year def year( self): return self._year return Academic. repr (self) + "Student(" + str(self.year()) +") " s = Student("Ken Sikha", 248, 2017) print(s) #=> Academic(Ken Sikha, #248) Student (2017) class Teacher( Academic): def init (self, name, number, office):... # similar to Student, but with an office instead of a year... # don t forget the accessor for office return... # similar to Student, but with office instead of year t = Teacher(" Snorey Borey", 357, 207) print(t) #=> Academic( Snorey Borey, #357) Teacher (207) 2
3 Overriding methods in subclasses Refactoring broke the printed representation of Students and Teachers. One way to fix it would be to let the Academic class handle the printing of the representation of all of its subclasses. Each subclass would only be resposible for providing a printed representation of its specific properties. For this to work, Academic will be the only class that implements the repr method. When an instance of any of the three classes is asked for its representation, the method in Academic will be invoked. Within that method, self will be bound to the object whose representation we want. We can ask that object for its class, and then ask the class for its name (a string). Every object has a property class that contains a reference to its class. Classes are objects too, and every class has a property name that contains its name as a string. To obtain a string describing the properties, we can ask self for a propertystring. In Academic, this method returns a string describing the object s name and number. The two subclasses will override this method to return a string containing all the properties of the object: those of Academic, followed by the property specific to the object (year or office). Since Academic might change, it would be wrong to access name and number directly from the propertystring method of Student and Teacher. Instead, the two propertystring methods in these classes should first invoke Academic.propertyString(self) to get their Academic properties, and then append another string describing their own specific property (year for Students, office for Teachers). 5. Implement propertystring in the three classes so that a single implementation of repr in Academic will print complete information about an object. class Academic():... # as before, until... return self. class. name + "(" + self.propertystring () + ")" def propertystring( self): # properties specific to Academic return self.name() + " #" + str(self.number()) class Student( Academic): # delete the repr method, and replace it with def propertystring( self): # properties specific to Student return Academic. propertystring( self) + " " + str( self. year()) class Teacher( Academic):... # similar to Student, but with an office instead of a year print( Student(" Ken Sikha", 248, 2017)) #=> Student( Ken Sikha # ) print( Teacher(" Snore Bore", 357, 207)) #=> Teacher( Snore Bore # ) Class properties and methods Methods defined inside a class definition are shared between all instances of the class. Class variables defined inside a class definition are also shared between all instances of the class. These variables are accessible like normal instance variables of self but they are stored inside the class object itself. In other words, they are properties of the class object itself. Methods can also be defined for the class object. Class methods begin with a They are called through the class (rather than an instance of the class) and their first argument is the class object itself. One of many uses for a class variable is to store a list of all the instances of a class. 3
4 A template (almost complete) for classes might look like this: class MyClass( MySuperclass): myclassvar1 = initialvalue myclassvar2 = initialvalue def init (self,...): self. myinstancevariable1 = initialvalue self. myinstancevariable2 = initialvalue... def def myclassmethod1(cls,...): Modify the Student class so that it remembers all of its instances. Add a class variable _allstudents to the Student class, with initial value an empty list. Within the init method, append each newly-initialised instance to the _allstudents list. Add a class method to Student called allstudents(clazz) which returns the list _allstudents. Test your additions as follows: print( Student(" Ken Sikha", 765, 2017)) #=> Student( Ken Sikha # ) print( Student(" Ben Shiba", 432, 2017)) #=> Student( Ben Shiba # ) print Student. allstudents() #=> [ Student(Ken Sikha # ), Student(Ben Shiba # )] Static methods One more kind of method can be defined inside a class. class def hello(): # note: no implicit self argument print " hello" MyClass().hello() #=> hello Static methods behave just like instance variables containing a normal function. Their advantage over normal functions is that the static method is shared between all instances. 4
5 If you get this far, have some fun for a while Download this file: Create a new file, and at the top import the following: from graphics import * from random import randint, random from math import copysign Add definitions for two global variables W and H to hold the width and height of a window. Initialise both W and H to 400. Define two more global variables R and V to hold a maximum radius and velocity. Initialise both R to 10 and V to 1. W, H = 400, 400 R = 10 V = 1 Define a class called Ball that inherits from a class (provided by graphics.py) called Circle. Within Ball: Define a class variable call allballs, with initial value an empty list. Define an init method that calls Circle. init (self, Point(randint(R, W-R), randint(r, H-R)), randint(1, R)) to initialise the parts of Ball that are inherited from Circle, sets self.dx and self.dy to 1 + random() * V, and appends self to allballs. Define a method update(self) that calls self.getcenter() to obtain the point at the center of the ball, calls self.getradius() to obtain the radius of the ball, checks if center.getx() + radius >= W or center.getx() - radius <= 0 and, if so, calls self.bouncex(), checks if center.gety() + radius >= H or center.gety() - radius <= 0 and, if so, calls self.bouncey(), calls self.move(self.dx, self.dy). Define a method bouncex that negates self.dx and then calls move(self.dx, 0). Define a similar method bouncey that works vertically instead. Define a class method step(cls, win) that iterates a variable ball over allballs, and for each ball calls ball.update(). Define a global variable win initialised with GraphWin("Balls", W, H, False). Add ten Balls to win by calling Ball().draw(win) ten times. Run the simulation until the user clicks in the window, like this: while not win. checkmouse(): Ball.step(win) win. update() win. close() Modify bouncex and bouncey to remove 10% of the energy of the ball every time it bounces. Create a subclass EnergyBall(Ball) that overrides bouncex and bouncey to increase the energy of the ball by 10% every time it bounces. Add ten of these to the simulation. 5
Object-oriented programming in Python (2)
Programming Languages Week 9 Object-oriented programming in Python (2) College of Information Science and Engineering Ritsumeikan University plan last week: dictionaries vs. objects classes, instances,
More informationIntroduction Programming Using Python Lecture 8. Dr. Zhang COSC 1437 Fall 2017 Nov 30, 2017
Introduction Programming Using Python Lecture 8 Dr. Zhang COSC 1437 Fall 2017 Nov 30, 2017 Chapter 12 Inheritance and Class Design Review Suppose you will define classes to model circles, rectangles, and
More informationPractical Questions CSCA48 Winter 2018 Week 3
Practical Questions CSCA48 Winter 2018 Week 3 Question #1 a) Implement the stack adt with the following conditions: i. use a list and must use the list method append() ii. use a list and must use the list
More informationAt full speed with Python
At full speed with Python João Ventura v0.1 Contents 1 Introduction 2 2 Installation 3 2.1 Installing on Windows............................ 3 2.2 Installing on macos............................. 5 2.3
More informationCIS192 Python Programming
CIS192 Python Programming Generators Exceptions and IO Eric Kutschera University of Pennsylvania February 13, 2015 Eric Kutschera (University of Pennsylvania) CIS 192 February 13, 2015 1 / 24 Outline 1
More informationClasses and Objects 1 / 13
Classes and Objects 1 / 13 Python is Object-Oriented Every value in Python is an object, meaning an instance of a class. Even values that are considered "primitive" in some other languages. >>> type(1)
More informationObject Oriented Programming #10
Object Oriented Programming #10 Serdar ARITAN Biomechanics Research Group, Faculty of Sports Sciences, and Department of Computer Graphics Hacettepe University, Ankara, Turkey 1 Simple programming tasks
More informationInheritance & Polymorphism Recap. Inheritance & Polymorphism 1
Inheritance & Polymorphism Recap Inheritance & Polymorphism 1 Introduction! Besides composition, another form of reuse is inheritance.! With inheritance, an object can inherit behavior from another object,
More informationClass extension and. Exception handling. Genome 559
Class extension and Exception handling Genome 559 Review - classes 1) Class constructors - class MyClass: def init (self, arg1, arg2): self.var1 = arg1 self.var2 = arg2 foo = MyClass('student', 'teacher')
More informationObject Oriented Programming
Classes and Objects Object Oriented Programming Represent self-contained things using classes. A class consists of: Data (stored in variables) Operations on that data (written as functions) Represent individual
More informationOverloading. F21SC Industrial Programming: Python: Advanced Language Features. Overloading. Overloading arithmetic operations
F21SC Industrial Programming: Python: Advanced Language Features Hans-Wolfgang Loidl School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh Semester 1 2016/17 0 No proprietary
More informationOverview of OOP. Dr. Zhang COSC 1436 Summer, /18/2017
Overview of OOP Dr. Zhang COSC 1436 Summer, 2017 7/18/2017 Review Data Structures (list, dictionary, tuples, sets, strings) Lists are enclosed in square brackets: l = [1, 2, "a"] (access by index, is mutable
More informationCS61A Lecture 15 Object Oriented Programming, Mutable Data Structures. Jom Magrotker UC Berkeley EECS July 12, 2012
CS61A Lecture 15 Object Oriented Programming, Mutable Data Structures Jom Magrotker UC Berkeley EECS July 12, 2012 COMPUTER SCIENCE IN THE NEWS http://www.iospress.nl/ios_news/music to my eyes device converting
More informationFunctions!!! Why functions? Functions provide good way to design systems!
Functions!!! Why functions? Functions provide good way to design systems! Coding Design! DRY principle - Don't Repeat Yourself! Loops help with this! Functions/procedures/modules help even more! Modular
More informationWhat is a class? Responding to messages. Short answer 7/19/2017. Code Listing 11.1 First Class. chapter 11. Introduction to Classes
chapter 11 Code Listing 11.1 First Class Introduction to Classes What is a class? If you have done anything in computer science before, you likely will have heard the term object oriented programming (OOP)
More informationUnit E Step-by-Step: Programming with Python
Unit E Step-by-Step: Programming with Python Computer Concepts 2016 ENHANCED EDITION 1 Unit Contents Section A: Hello World! Python Style Section B: The Wacky Word Game Section C: Build Your Own Calculator
More informationUsing Inheritance to Share Implementations
Using Inheritance to Share Implementations CS 5010 Program Design Paradigms "Bootcamp" Lesson 11.2 Mitchell Wand, 2012-2015 This work is licensed under a Creative Commons Attribution-NonCommercial 4.0
More informationObjects. say something to express one's disapproval of or disagreement with something.
Objects say something to express one's disapproval of or disagreement with something. class Person: def init (self, name, age): self.name = name self.age = age p1 = Person("John", 36) class Person: def
More informationClass extension and. Exception handling. Genome 559
Class extension and Exception handling Genome 559 Review - classes 1) Class constructors - class myclass: def init (self, arg1, arg2): self.var1 = arg1 self.var2 = arg2 foo = myclass('student', 'teacher')
More informationClasses and Objects 1
Classes and Objects 1 Built-in objects You are already familiar with several kinds of objects: strings, lists, sets, tuples, and dictionaries An object has two aspects: Some fields (or instance variables)
More informationExpress Yourself. Writing Your Own Classes
Java Programming 1 Lecture 5 Defining Classes Creating your Own Classes Express Yourself Use OpenOffice Writer to create a new document Save the file as LastFirst_ic05 Replace LastFirst with your actual
More informationObject Oriented Programming. Feb 2015
Object Oriented Programming Feb 2015 Tradi7onally, a program has been seen as a recipe a set of instruc7ons that you follow from start to finish in order to complete a task. That approach is some7mes known
More informationObject-oriented programming in Java (2)
Programming Languages Week 13 Object-oriented programming in Java (2) College of Information Science and Engineering Ritsumeikan University plan last week intro to Java advantages and disadvantages language
More informationData Structures (list, dictionary, tuples, sets, strings)
Data Structures (list, dictionary, tuples, sets, strings) Lists are enclosed in brackets: l = [1, 2, "a"] (access by index, is mutable sequence) Tuples are enclosed in parentheses: t = (1, 2, "a") (access
More informationWhat is a Class? Short Answer. Responding to Messages. Everything in Python is an Object 11/8/2010
The Practice of Computing Using PYTHON William Punch Richard Enbody Chapter 11 Introduction to Classes class Student(object): """Simple Student class.""" def init (self,first='', last='', id=0): # init
More informationA Little Python Part 3
A Little Python Part 3 Introducing Programming with Python I/O, Files, Object Classes, Exception Handling Outline I/O Files opening File I/O, reading writing Python Objects Defining a new object Inheritance
More informationGIS 4653/5653: Spatial Programming and GIS. More Python: Statements, Types, Functions, Modules, Classes
GIS 4653/5653: Spatial Programming and GIS More Python: Statements, Types, Functions, Modules, Classes Statement Syntax The if-elif-else statement Indentation and and colons are important Parentheses and
More informationQuestion 1. tmp = Stack() # Transfer every item from stk onto tmp. while not stk.is_empty(): tmp.push(stk.pop())
Note to Students: This file contains sample solutions to the term test together with the marking scheme and comments for each question. Please read the solutions and the marking schemes and comments carefully.
More informationExpressions and Variables
Expressions and Variables Expressions print(expression) An expression is evaluated to give a value. For example: 2 + 9-6 Evaluates to: 5 Data Types Integers 1, 2, 3, 42, 100, -5 Floating points 2.5, 7.0,
More informationUser Defined Types. Babes-Bolyai University Lecture 06. Lect Phd. Arthur Molnar. User defined types. Python scope and namespace
? User Defined Types Babes-Bolyai University arthur@cs.ubbcluj.ro Overview? 1? 2 3 ? NB! Types classify values. A type denotes a domain (a set of values) operations on those values. ? Object oriented programming
More informationOverloading. F21SC Industrial Programming: Python: Advanced Language Features. Overloading. Overloading arithmetic operations
F21SC Industrial Programming: Python: Advanced Language Features Hans-Wolfgang Loidl School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh Semester 1 2015/16 0 No proprietary
More informationToday s examples online at.
Physics 9 Wednesday, November 21, 2018 HW10 due Friday, November 30. For Monday, read Giancoli chapter 19 (DC circuits). Today: a tutorial of the Processing.py computer programming language whose purpose
More informationClass Design (Section 9 of 17)
the architects themselves came in to explain the advantages of both designs Class Design (Section 9 of 17) In the previous sections we have used existing classes that enable us to be able to write functions
More informationObject Oriented Programming
Object Oriented Programming Haleh Ashki 2015, updated Peter Beerli 2017 Traditionally, a program has been seen as a recipe a set of instructions that you follow from start to finish in order to complete
More informationChapter 6 Introduction to Defining Classes
Introduction to Defining Classes Fundamentals of Java: AP Computer Science Essentials, 4th Edition 1 Objectives Design and implement a simple class from user requirements. Organize a program in terms of
More informationAssignment 6. INF109 Dataprogrammering for naturvitskap
Assignment 6 INF109 Dataprogrammering for naturvitskap This is the sixth of seven assignments. You can get a total of 15 points for this task. Deadline is Friday, 15 April, 23.59. Submit the report as
More informationCS115 - Module 10 - General Trees
Fall 2017 Reminder: if you have not already, ensure you: Read How to Design Programs, Sections 15 and 16. Arithmetic Expressions Recall with binary trees we could represent an expression containing binary
More informationCS558 Programming Languages Winter 2013 Lecture 8
OBJECT-ORIENTED PROGRAMMING CS558 Programming Languages Winter 2013 Lecture 8 Object-oriented programs are structured in terms of objects: collections of variables ( fields ) and functions ( methods ).
More informationClasses, part Deux. Three Groups. CSE 231, Rich Enbody. Users Programmers Class Designers 11/11/13. Michigan State University CSE 231, Fall 2013
, part Deux CSE 231, Rich Enbody Three Groups Users Programmers Class Designers 1 Getters and Setters getters: methods that fetch the value setters: methods set a value 2 GetterSetter Example Why do this?
More informationCIS192 Python Programming
CIS192 Python Programming Introduction Robert Rand University of Pennsylvania September 16, 2015 Robert Rand (University of Pennsylvania) CIS 192 September 16, 2015 1 / 21 Outline 1 Object Orientation
More informationPython Tips and Tricks
Tips and Tricks Stéphane Vialette LIGM, Université Paris-Est Marne-la-Vallée November 7, 2012 Stéphane Vialette (LIGM, Université Paris-Est Marne-la-Vallée) Tips and Tricks November 7, 2012 1 / 39 Lists
More informationObject oriented programming
Object oriented programming In object oriented programming programs are built of classes that describe objects or concepts which we normally can associate to in the real world. It could be persons, buildings,
More informationMITOCW watch?v=flgjisf3l78
MITOCW watch?v=flgjisf3l78 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational resources for free. To
More informationAnnouncements. Lecture Agenda. Class Exercise. Hashable. Mutability. COMP10001 Foundations of Computing Iteration
COMP10001 Foundations of Computing Iteration Announcements Semester 1, 2017 Tim Baldwin & Egemen Tanin First Guest Lecture on Friday (examinable) Grok Worksheets 5 7 due at the end of this week version:
More informationCSC148: Week 1
CSC148: Week 1 http://www.cdf.utoronto.ca/~csc148h/summer/ Sophia Huynh Summer 2018 1 Outline Introduction Object-Oriented Design 2 Your instructor Sophia Huynh Master's Student Undergrad was done at UofT
More informationObject Oriented Programming in Python 3
Object Oriented Programming in Python 3 Objects Python 3 Objects play a central role in the Python data model All the types we ve seen until now are in-fact objects Numeric types, strings, lists, tuples,
More informationString Representations
61A Lecture 16 Announcements String Representations String Representations An object value should behave like the kind of data it is meant to represent For instance, by producing a string representation
More informationObject-Oriented Python
Object-Oriented Python Everything is an object. Every object has a value. a type. an identity. a namespace. CS105 Python def initstudent(student, eid): global A class is like a namespace. CS105 Python
More informationBasics of Inheritance
Basics of Inheritance CS 5010 Program Design Paradigms "Bootcamp" Lesson 11.1 Mitchell Wand, 2012-2015 This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.
More informationStructure and Interpretation of Computer Programs
CS 61A Fall 016 Structure and Interpretation of Computer Programs Midterm Solutions INSTRUCTIONS You have hours to complete the exam. The exam is closed book, closed notes, closed computer, closed calculator,
More information1 Classes. 2 Exceptions. 3 Using Other Code. 4 Problems. Sandeep Sadanandan (TU, Munich) Python For Fine Programmers May 16, / 19
1 Classes 2 Exceptions 3 Using Other Code 4 Problems Sandeep Sadanandan (TU, Munich) Python For Fine Programmers May 16, 2009 1 / 19 Start with an Example Python is object oriented Everything is an object
More informationmith College Computer Science Week 7 CSC111 Fall 2015 Dominique Thiébaut
mith College Computer Science Week 7 CSC111 Fall 2015 Dominique Thiébaut dthiebaut@smith.edu Dynamic Web Page Example IF Statements & Boolean Expression An Application: Generating Dynamic Web Pages Introduction
More informationAPT Session 2: Python
APT Session 2: Python Laurence Tratt Software Development Team 2017-10-20 1 / 17 http://soft-dev.org/ What to expect from this session: Python 1 What is Python? 2 Basic Python functionality. 2 / 17 http://soft-dev.org/
More informationReview 2. Classes and Subclasses
Review 2 Classes and Subclasses Class Definition class (): """Class specification""" class variables (format: Class.variable) initializer ( init ) special method definitions
More informationCOMP519 Web Programming Lecture 21: Python (Part 5) Handouts
COMP519 Web Programming Lecture 21: Python (Part 5) Handouts Ullrich Hustadt Department of Computer Science School of Electrical Engineering, Electronics, and Computer Science University of Liverpool Functions
More informationpython-aspectlib Release 0.4.1
python-aspectlib 0.4.1 Release 0.4.1 May 03, 2014 Contents i ii aspectlib is an aspect-oriented programming, monkey-patch and decorators library. It is useful when changing behavior in existing code is
More information1B1b Inheritance. Inheritance. Agenda. Subclass and Superclass. Superclass. Generalisation & Specialisation. Shapes and Squares. 1B1b Lecture Slides
1B1b Inheritance Agenda Introduction to inheritance. How Java supports inheritance. Inheritance is a key feature of object-oriented oriented programming. 1 2 Inheritance Models the kind-of or specialisation-of
More informationCSE : Python Programming. Decorators. Announcements. The decorator pattern. The decorator pattern. The decorator pattern
CSE 399-004: Python Programming Lecture 12: Decorators April 9, 200 http://www.seas.upenn.edu/~cse39904/ Announcements Projects (code and documentation) are due: April 20, 200 at pm There will be informal
More informationCredit: The lecture slides are created based on previous lecture slides by Dan Zingaro.
CSC148 2018 Here 1 Credit: The lecture slides are created based on previous lecture slides by Dan Zingaro. 2 Larry Zhang Office: DH-3042 Email: ylzhang@cs.toronto.edu 3 The teaching team Dan Zingaro: LEC0103
More informationObjects and Classes. 1 Creating Classes and Objects. CSCI-UA 101 Objects and Classes
Based on Introduction to Java Programming, Y. Daniel Liang, Brief Version, 10/E 1 Creating Classes and Objects Classes give us a way of defining custom data types and associating data with operations on
More informationGraphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub
Lebanese University Faculty of Science Computer Science BS Degree Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub 2 Crash Course in JAVA Classes A Java
More informationPAIRS AND LISTS 6. GEORGE WANG Department of Electrical Engineering and Computer Sciences University of California, Berkeley
PAIRS AND LISTS 6 GEORGE WANG gswang.cs61a@gmail.com Department of Electrical Engineering and Computer Sciences University of California, Berkeley June 29, 2010 1 Pairs 1.1 Overview To represent data types
More informationComputer Science II (20073) Week 1: Review and Inheritance
Computer Science II 4003-232-01 (20073) Week 1: Review and Inheritance Richard Zanibbi Rochester Institute of Technology Review of CS-I Hardware and Software Hardware Physical devices in a computer system
More informationTopic 7: Algebraic Data Types
Topic 7: Algebraic Data Types 1 Recommended Exercises and Readings From Haskell: The craft of functional programming (3 rd Ed.) Exercises: 5.5, 5.7, 5.8, 5.10, 5.11, 5.12, 5.14 14.4, 14.5, 14.6 14.9, 14.11,
More informationCSC148H Week 1 >> COURSE INFORMATION, RECAP, OOP. Sadia Rain Sharmin Week of May 7, 2018
CSC148H Week 1 >> COURSE INFORMATION, RECAP, OOP Sadia Rain Sharmin Week of May 7, 2018 Welcome! What is CSC148 about? - Designing programs using OO programming principles - Reasoning about efficiency
More informationCS 1110 Final Exam Solutions May 15th, 2014
Last Name: First Name: Cornell NetID, all caps: The Important First Question: CS 1110 Final Exam Solutions May 15th, 2014 1. [2 points] When allowed to begin, write your last name, first name, and Cornell
More informationCS1 Lecture 27 Mar. 26, 2018
CS1 Lecture 27 Mar. 26, 2018 HW6 due Thurs. Q1: think carefully about overlaps draw pictures Q2 ---------------- Ensure legal moves i.e. if user enters an illegal choice, print something appropriate and
More informationAn Exercise. Modify our Solitaire game to implement Thumb and Pouch.
An Exercise Strictly played, Klondike is hard to win. One way to make the game more winnable is to loosen the rule for playing cards on the tableau. The game Thumb and Pouch does just that. Thumb and Pouch
More informationLecture 19: Subclasses & Inheritance (Chapter 18)
http://www.cs.cornell.edu/courses/cs1110/2018sp Lecture 19: Subclasses & Inheritance (Chapter 18) CS 1110 Introduction to Computing Using Python [E. Andersen, A. Bracy, D. Gries, L. Lee, S. Marschner,
More informationCSCI 150 Exam 2 Solutions
CSCI 150 Exam 2 Solutions 1. Here are definitions of two classes. Give a main( ) function that creates 3 persons: Hagrid, who is a Person, and Harry and Hermione, who are both Students at Hogwarts school.
More informationpython-aspectlib Release 0.5.0
python-aspectlib 0.5.0 Release 0.5.0 March 17, 2014 Contents i ii aspectlib is an aspect-oriented programming, monkey-patch and decorators library. It is useful when changing behavior in existing code
More informationStructure and Interpretation of Computer Programs
CS 61A Structure and Interpretation of Computer Programs Fall 2011 Midterm Exam 2 INSTRUCTIONS You have 2 hours to complete the exam. The exam is closed book, closed notes, closed computer, closed calculator,
More informationQueues The Queue ADT. The Queue ADT is defined by the following operations: init Initialize a new empty queue.
Queues This chapter presents two ADTs: the Queue and the Priority Queue. In real life, a queue is a line of customers waiting for service of some kind. In most cases, the first customer in line is the
More informationCSC148: Week 2
CSC148: Week 2 http://www.cdf.utoronto.ca/~csc148h/summer/ Sophia Huynh Summer 2018 1 Annoucements Ex1 due tonight @ 11PM Ex2 will be released tonight No lab next week "Lab 2" will be released tonight
More informationException Handling. Genome 559
Exception Handling Genome 559 Review - classes Use your own classes to: - package together related data - conceptually organize your code - force a user to conform to your expectations Class constructor:
More informationObject-Oriented Language Development Company
Object-Oriented Language Development Company The OLD Co Pong Game: Executive Summary The Object-Oriented Language Development Company (OLD Co.) has begun development of a radically new computer game, with
More informationIntroduction to: Computers & Programming: Review prior to 1 st Midterm
Introduction to: Computers & Programming: Review prior to 1 st Midterm Adam Meyers New York University Summary Some Procedural Matters Summary of what you need to Know For the Test and To Go Further in
More informationCSE 331 Final Exam 3/16/15 Sample Solution
Question 1. (12 points, 3 each) A short design exercise. Suppose Java did not include a Set class in the standard library and we need to store a set of Strings for an application. We know that the maximum
More informationLECTURE 6 Python Basics Part 5
LECTURE 6 Python Basics Part 5 LAST LECTURE We just covered basic Class usage in Python. Now, we ll look at some more advanced OOP concepts and tie up loose ends. After this lecture, we ll start looking
More informationMARKING KEY The University of British Columbia MARKING KEY Computer Science 260 Midterm #2 Examination 12:30 noon, Thursday, March 15, 2012
MARKING KEY The University of British Columbia MARKING KEY Computer Science 260 Midterm #2 Examination 12:30 noon, Thursday, March 15, 2012 Instructor: K. S. Booth Time: 70 minutes (one hour ten minutes)
More informationCS 251 Intermediate Programming Methods and Classes
CS 251 Intermediate Programming Methods and Classes Brooke Chenoweth University of New Mexico Fall 2018 Methods An operation that can be performed on an object Has return type and parameters Method with
More informationCS 251 Intermediate Programming Methods and More
CS 251 Intermediate Programming Methods and More Brooke Chenoweth University of New Mexico Spring 2018 Methods An operation that can be performed on an object Has return type and parameters Method with
More informationStructure and Interpretation of Computer Programs Fall 2016 Midterm 2
CS 61A Structure and Interpretation of Computer Programs Fall 2016 Midterm 2 INSTRUCTIONS You have 2 hours to complete the exam. The exam is closed book, closed notes, closed computer, closed calculator,
More informationFinal thoughts on functions F E B 2 5 T H
Final thoughts on functions F E B 2 5 T H Ordering functions in your code Will the following code work? Here the function is defined after the main program that is calling it. print foo() def foo(): return
More information6.S189 Homework 2. What to turn in. Exercise 3.1 Defining A Function. Exercise 3.2 Math Module.
6.S189 Homework 2 http://web.mit.edu/6.s189/www/materials.html What to turn in Checkoffs 3, 4 and 5 are due by 5 PM on Monday, January 15th. Checkoff 3 is over Exercises 3.1-3.2, Checkoff 4 is over Exercises
More informationPLEASE HAND IN UNIVERSITY OF TORONTO Faculty of Arts and Science
PLEASE HAND IN UNIVERSITY OF TORONTO Faculty of Arts and Science AUGUST EXAMINATIONS CSC 108H1Y Instructor: Daniel Zingaro Duration three hours PLEASE HAND IN Examination Aids: None. Student Number: Last
More informationFriday, 11 April 14. Advanced methods for creating decorators Graham Dumpleton PyCon US - April 2014
Advanced methods for creating decorators Graham Dumpleton PyCon US - April 2014 Intermission Rant about the history of this talk and why this topic matters. Python decorator syntax @function_wrapper def
More informationCOMPSCI 105 S Principles of Computer Science. Classes 3
S2 2017 Principles of Computer Science Classes 3 Exercise } Exercise } Create a Student class: } The Student class should have three attributes: id, last_name, and first_name. } Create a constructor to
More informationCIS192 Python Programming
CIS192 Python Programming Object-Oriented Programming Robert Rand University of Pennsylvania February 10, 2016 Robert Rand (University of Pennsylvania) CIS 192 February 10, 2016 1 / 25 Outline 1 Object
More informationIndustrial Programming
Industrial Programming Lecture 4: C# Objects & Classes Industrial Programming 1 What is an Object Central to the object-oriented programming paradigm is the notion of an object. Objects are the nouns a
More informationWhat is an Object. Industrial Programming. What is a Class (cont'd) What is a Class. Lecture 4: C# Objects & Classes
What is an Object Industrial Programming Lecture 4: C# Objects & Classes Central to the object-oriented programming paradigm is the notion of an object. Objects are the nouns a person called John Objects
More informationStudent Performance Q&A:
Student Performance Q&A: 2016 AP Computer Science A Free-Response Questions The following comments on the 2016 free-response questions for AP Computer Science A were written by the Chief Reader, Elizabeth
More informationLessons on Python Classes and Objects
Lessons on Python Classes and Objects Walter Didimo [ 120 minutes ] Outline We will introduce basic concepts about classes and objects in Python a comprehensive lesson on this topic would require much
More informationPart V. Object-oriented Programming. Tobias Neckel: Scripting with Bash and Python Compact Max-Planck, February 16-26,
Part V Object-oriented Programming Compact Course @ Max-Planck, February 16-26, 2015 65 What Is an Object? Compact Course @ Max-Planck, February 16-26, 2015 66 What Is an Object? a car a cat a chair...
More informationPython Tips and Tricks
Tips and Tricks Stéphane Vialette LIGM, Université Paris-Est Marne-la-Vallée November 14, 2011 Stéphane Vialette (LIGM, Université Paris-Est Marne-la-Vallée) Tips and Tricks November 14, 2011 1 / 36 Lists
More informationModule 8: Local and functional abstraction
Module 8: Local and functional abstraction Readings: HtDP, Intermezzo 3 (Section 18); Sections 19-23. We will cover material on functional abstraction in a somewhat different order than the text. We will
More informationJava Object Oriented Design. CSC207 Fall 2014
Java Object Oriented Design CSC207 Fall 2014 Design Problem Design an application where the user can draw different shapes Lines Circles Rectangles Just high level design, don t write any detailed code
More informationself demonstrate two objects and self keyword in each case (inefficient_dict.py)
Administrivia Checkoff 6 due today Office Hours closing at 4 because snow Class will likely be cancelled tomorrow due to blizzard, get some work done Review Classes Attributes and Methods Special Methods
More informationObject Oriented Programming Enthought, Inc. 97
Object Oriented Programming 97 Classes A reusable collection of behavior and data Definition Subclasses Properties 98 Modeling a Power Plant ATTRIBUTES # Data that describes the # modeled "object" name:
More informationCh.2: Loops and lists
Ch.2: Loops and lists Joakim Sundnes 1,2 Hans Petter Langtangen 1,2 Simula Research Laboratory 1 University of Oslo, Dept. of Informatics 2 Aug 29, 2018 Plan for 28 August Short quiz on topics from last
More information