CSC102 INTRO TO PROGRAMMING WITH PYTHON LECTURE 22 CLASS MICHAEL GROSSBERG
|
|
- Ferdinand Hall
- 5 years ago
- Views:
Transcription
1 CSC102 INTRO TO PROGRAMMING WITH PYTHON LECTURE 22 CLASS MICHAEL GROSSBERG
2 TYPES INT BOOLEAN FLOAT COMPLEX STRINGS SETS DICTIONARIES LISTS I WANT MY OWN TYPES!
3 CLASSES = DIY TYPES BASIS OF OBJECT ORIENTED PROGRAMMING
4 BIG IDEA: TREE STRUCTURE PROCEDURAL PROGRAMMING
5 COLLECTIVE STRUCTURE OBJECTED ORIENTED PROGRAMMING
6 CLASSES TYPE: OBJECTS INSTANCES WORKER BEE MANY QUEEN BEE ONE HIVE ONE CLASS INSTANCE
7 PILLARS OF OOP ABSTRACTION DATA + ACTION BUNDLED ENCAPSULATION INFORMATION HIDING (SPYS: DON T NEED TO KNOW WHY) INHERITANCE CODE REUSE COPY CLASS WITH ADDITIONS POLYMORPHISM SAME FUNCTION DOES RIGHT THING FOR RIGHT TYPE
8 2D POINT p x = 1.55 y = 3.99 WISH LIST: EASY TO MAKE EASY TO GET X AND Y STR(P) = (1.55,3.99) ADD POINTS TOGETHER MULT POINT BY SCALER
9 EXAMPLE CLASS: POINT # This defines a new class class Point(object): pass class: SPECIAL KEYWORD LIKE def BUT FOR DEFINING CLASSES NOT ABSOLUTELY NEEDED object IS MOTHER OF ALL (NEW) CLASSES DOESN T DO ANYTHING YET
10 CAN MAKE ATTRIBUTES ON FLY class Point(object): pass origin = Point() origin.x = 0 origin.y = 0 OK TO DO IN PROTOTYPING
11 PRINT DOESN T SHOW X,Y origin = Point() origin.x = 0 origin.y = 0 print 'origin = ',origin THIS PRINTS x y ARE ATTRIBUTES OF ORIGIN (A POINT) origin = < main.point object at 0x13ea5910> NEED TO PRINT X,Y MANUALLY
12 EXAMPLE PROGRAM import sys class Point(object): pass def main(): origin = Point() origin.x = 0 origin.y = 0 p = Point() print 'origin = ',origin print 'origin = (%f,%f)' % (origin.x,origin.y) print 'p = ',p try: print 'p = (%f,%f)' % (p.x,p.y) except Exception, e: sys.stderr.write(str(e)+'\n') KABOOM! JUST DEFINING A NEW POINT DOESN T MEAN IT HAS AN X AND Y if name == ' main ': main() NEED TO SET ATTRIBUTES EACH TIME
13 CONSTRUCTOR class Point(object): def init (self, x=0, y=0): self.x = x self.y = y def: DEFINE A FUNCTION TO DEFINE WHAT HAPPENS WHEN YOU CALL Point() init : SPECIAL NAME (LIKE KEYWORD) ONLY USED FOR SETTING UP CLASS CONSTRUCTOR: INITIALIZES THINGS
14 SELFISH class Point(object): def init (self, x=0, y=0): self.x = x self.y = y self: KEYWORD DON T KNOW WHAT POINT WILL BE CALLED: WE CALL IT THIS OBJECT self self: ALWAYS, ALWAYS FIRST ARGUMENT OF EVERY FUNCTION IN CLASS* *ADVANCED EXCEPTIONS TO THIS RULE BUT NEVERMIND
15 DEFINE INIT class Point(object): 'A class to the data for a mathematical point' def init (self, x=0, y=0): self.x = x self.y = y LIKE A COMMENT def main(): origin = Point() print 'origin = (%f,%f)' % (origin.x,origin.y) p = Point(x=1,y=1) print 'p = (%f,%f)' % (p.x,p.y) if name == ' main ': main() SET OR GET DEFAULTS
16 PRINT THYSELF class Point: 'A class to the data for a mathematical point' def init (self, x=0, y=0): self.x = x self.y = y def str (self): return '(%f,%f)' % (self.x,self.y) def main(): origin = Point() print 'origin = ',origin p = Point(x=1,y=1) print 'p = ',p print 'str(p) = '+str(p) if name == ' main ': main() NOW STR WORKS!
17 LENGTH OF A POINT (VECT) sqrt(x**2+y**2) P y ORIGIN x norm(p)? p.norm()
18 CUSTOM METHODS class Point: 'A class to the data for a mathematical point' def init (self, x=0, y=0): self.x = x self.y = y def norm(self): return math.sqrt(self.x**2 + self.y**2) def str (self): return '(%f,%f)' % (self.x,self.y) def main(): origin = Point() print 'origin = ',origin print 'origin.norm() = ',origin.norm() p = Point(x=1,y=1) print 'p = ',p print 'p.norm() = ',p.norm() BUNDLE USEFUL METHODS WITH CLASS
19 DON T ACT SHOCKED my_string.reverse() my_list.pop() my_set.pop() my_dictionary.keys() WE HAVE SEEN THIS MANY TIMES BEFORE
20 MAKE YOUR OWN + foo + bar == foobar HOW DO WE REDEFINE OPERATORS?
21 ADDING POINTS P Q ORIGIN M=P+Q Q m.x = p.x+q.x m = p+q <=> m.y = p.y+q.y
22 OPERATOR OVERLOADING import math class Point: 'A class to the data for a mathematical point' def init (self, x=0, y=0): self.x = x self.y = y def norm(self): return math.sqrt(self.x**2 + self.y**2) def add (self,other): return Point(x=self.x+other.x,y=self.y+other.y) def str (self): return '(%f,%f)' % (self.x,self.y) def main(): origin = Point() print 'origin = ',origin p=point(x=1,y=1) print 'p = ',p print 'origin + p = ', origin+p print 'origin + p + p = ', origin+p+p if name == ' main ': main()
23 OVERLOADING MULTIPLICATION class Point: 'A class to the data for a mathematical point' def init (self, x=0, y=0): self.x = x self.y = y def norm(self): return math.sqrt(self.x**2 + self.y**2) def add (self,other): return Point(x=self.x+other.x,y=self.y+other.y) def sub (self,other): return Point(x=self.x-other.x,y=self.y-other.y) def neg (self): return Point(x=-self.x,y=-self.y) def mul (self,other): return Point(x=self.x*other,y=self.y*other) def str (self): return '(%f,%f)' % (self.x,self.y) def main(): origin = Point() print 'origin = ',origin p=point(x=1,y=1) print 'p = ',p print '-p = ',-p print 'origin - p = ', origin-p print 'origin + p*2 = ', print origin+ p*2 try: print 'origin + 2*p = ', print origin+ 2*p except Exception, e: print sys.stderr.write( str(e)+'\n') LIKE ADD WITH MULT SELF MUST BE ON LEFT
24 RMUL (SELF RIGHT) class Point: 'A class to the data for a mathematical point' def init (self, x=0, y=0): self.x = x self.y = y def norm(self): return math.sqrt(self.x**2 + self.y**2) def add (self,other): return Point(x=self.x+other.x,y=self.y+other.y) def sub (self,other): return Point(x=self.x-other.x,y=self.y-other.y) def neg (self): return Point(x=-self.x,y=-self.y) def mul (self,other): return Point(x=self.x*other,y=self.y*other) def rmul (self,other): return Point(x=self.x*other,y=self.y*other) def str (self): return '(%f,%f)' % (self.x,self.y)
25 BOTH SIDES NOW (MULT) def main(): origin = Point() print 'origin = ',origin p=point(x=1,y=1) print 'p = ',p print 'origin + p*2 = ', origin+ p*2 print 'origin + 2*p = ', origin+ 2*p if name == ' main ': main() MULT FIXED
26 FIRE WHEN READY def main(): muzzle_velocity = 240 # meters/sec angle = 45. # degrees angle_rad = (angle/360.)*2*math.pi gravity = 9.78*Point(x=0,y=-1) time_step = 1./10. # seconds v = muzzle_velocity*point( x=math.cos(angle_rad), y=math.sin(angle_rad)) pos = Point(x=0,y=0) pos_x,pos_y = [],[] pos_x.append(pos.x) pos_y.append(pos.y) for time in range(1,400): v = v+time_step*gravity pos = pos + v pos_x.append(pos.x) pos_y.append(pos.y) fig = pylab.figure() ax = fig.add_subplot(1,1,1) ax.plot(pos_x,pos_y) ax.plot([pos_x[0],pos_x[-1]], [0,0], 'k-') pylab.show() POINT KEEPS TRACK OF POSITION OR VELOCITY
27 TERMINATE ON IMPACT def main(): muzzle_velocity = 240 # meters/sec angle = 45. # degrees angle_rad = (angle/360.)*2*math.pi gravity = 9.78*Point(x=0,y=-1) time_step = 1./10. # seconds v = muzzle_velocity*point( x=math.cos(angle_rad), y=math.sin(angle_rad)) pos = Point(x=0,y=0) pos_x,pos_y = [],[] pos_x.append(pos.x) pos_y.append(pos.y) for time in range(1,400): v = v+time_step*gravity pos = pos + v if pos.y <0: break pos_x.append(pos.x) pos_y.append(pos.y) STOP WHEN YOU HIT THE GROUND
28 MOVIE MAKING def make_animation(pos_x,pos_y): min_x, max_x = min(pos_x), max(pos_x) min_y, max_y = min(pos_y), max(pos_y) for ind,(x,y) in enumerate(zip(pos_x,pos_y)): fig = pylab.figure() ax = fig.add_subplot(1,1,1) ax.plot(pos_x[:ind],pos_y[:ind],'b-') ax.plot(pos_x[ind],pos_y[ind],'k.',markersize=10.) ax.plot([pos_x[0],pos_x[-1]],[0,0],'k-') ax.set_xlim([min_x,max_x]) ax.set_ylim([min_y,max_y]) fig.savefig('./projectile_images/projectile_%03d.png' % ind) command = ('mencoder', 'mf://projectile_images/*.png', '-mf', 'type=png:w=800:h=600:fps=25', '-ovc', 'lavc', '-lavcopts', 'vcodec=mpeg4', '-oac', 'copy', '-o', 'projectile.avi') print "\n\nabout to execute:\n%s\n\n" % ' '.join(command) subprocess.check_call(command) JUST FOR FUN REQUIRERS MENCODER
29
30 THANKS
CSC102 INTRO TO PROGRAMMING WITH PYTHON REVIEW MICHAEL GROSSBERG
CSC102 INTRO TO PROGRAMMING WITH PYTHON REVIEW MICHAEL GROSSBERG MATERIAL EVERYTHING LECTURES HOMEWORKS TEXTBOOK (ALL OF IT) MOSTLY PYTHON 2.6 SOME C++ POTENTIALLY: TRANSLATE PYTHON PROGRAM TO C++ FORMAT
More informationOBJECT ORIENTED PROGRAMMING
OBJECT ORIENTED PROGRAMMING (download slides and.py files follow along!) 6.0001 LECTURE 8 6.0001 LECTURE 8 1 OBJECTS Python supports many different kinds of data 1234 3.14159 "Hello" [1, 5, 7, 11, 13]
More informationLecture 18. Methods and Operations
Lecture 18 Methods and Operations Announcements for This Lecture Assignments A4 Due Thursday at midnight Hopefully you are on Task 4 Extra consultants available Will post A5 on Thursday Written assignment
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 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 informationCSI33 Data Structures
Outline Department of Mathematics and Computer Science Bronx Community College August 29, 2018 Outline Outline 1 Chapter 2: Data Abstraction Outline Chapter 2: Data Abstraction 1 Chapter 2: Data Abstraction
More informationWeek 2. Classes and Objects
Week 2 Classes and Objects Special thanks to Scott Shawcroft, Ryan Tucker, and Paul Beck for their work on these slides. Except where otherwise noted, this work is licensed under: http://creativecommons.org/licenses/by-nc-sa/3.0
More informationLecture 38: Python. CS 51G Spring 2018 Kim Bruce
Lecture 38: Python CS 51G Spring 2018 Kim Bruce Announcements Test program 2 Academic Honesty Guidelines! Quiz Friday (Strings & Streams) Lecture Friday will be in lab Write searches and sorts in Python
More informationCSC102 INTRO TO PROGRAMMING WITH PYTHON LECTURE 9 FUNCTIONING PROPERLY MICHAEL GROSSBERG
CSC102 INTRO TO PROGRAMMING WITH PYTHON LECTURE 9 FUNCTIONING PROPERLY MICHAEL GROSSBERG FUNCTIONS LOTS OF REASONS WE NEED THESE BIGGEST REASON: COPY-PASTE-CODE IS USUALLY NOT YOUR FRIEND OLD PROGRAM NEW
More informationWelcome to CSC148! Introduction to Computer Science
Welcome to CSC148! Introduction to Computer Science Amir H. Chinaei, Summer 2016 ahchinaei@cs.toronto.edu http://www.cs.toronto.edu/~ahchinaei/ Office hours: R 10 BA4222 Today Course Outline (bird s-eye
More informationPREPARING FOR PRELIM 2
PREPARING FOR PRELIM 2 CS 1110: FALL 2012 This handout explains what you have to know for the second prelim. There will be a review session with detailed examples to help you study. To prepare for the
More informationPart I. Wei Tianwen. A Brief Introduction to Python. Part I. Wei Tianwen. Basics. Object Oriented Programming
2017 Table of contents 1 2 Integers and floats Integer int and float float are elementary numeric types in. integer >>> a=1 >>> a 1 >>> type (a) Integers and floats Integer int and float
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 informationLast Name: UTION First Name: SOL Cornell NetID: CS1110. Solution: CS 1110 Prelim 2 April 26, 2016
Last Name: UTION First Name: SOL Cornell NetID: CS1110 CS 1110 Prelim 2 April 26, 2016 1. [6 points] What is the output if the following module is run: def F1(x): y = [] # empty list n = len(x) for k in
More informationCS1210 Lecture 28 Mar. 27, 2019
CS1210 Lecture 28 Mar. 27, 2019 Discussion section exam scores posted score # people 0-5 6-10 11-15 16-20 21-25 26-30 28 48 39 37 30 9 median: 13 Some words about overall grades more detail next Wednesday
More informationPython for Finance. Advanced Features. Andras Niedermayer
Python for Finance Advanced Features Andras Niedermayer Objects of Interest object oriented programming (Wikipedia) Definition (Object-oriented Programming) Object-oriented programming (OOP) is a programming
More informationCS 11 python track: lecture 4
CS 11 python track: lecture 4 Today: More odds and ends assertions "print >>" syntax more on argument lists functional programming tools list comprehensions More on exception handling More on object-oriented
More informationLecture 19. Operators and Abstraction
Lecture 19 Operators and Abstraction Announcements Reading Tuesday: Chapter 18 Thursday reading online Assignments A4 due tonight at Midnight 10 pts per day late Consultants available tonight A5 posted
More informationCSc 110, Autumn Lecture 30: Methods. Adapted from slides by Marty Stepp and Stuart Reges
CSc 110, Autumn 2016 Lecture 30: Methods Adapted from slides by Marty Stepp and Stuart Reges Why objects? Primitive types don't model complex concepts well Cost is a float. What's a person? Classes are
More informationFundamentals of Programming (Python) Object-Oriented Programming. Ali Taheri Sharif University of Technology Spring 2018
Fundamentals of Programming (Python) Object-Oriented Programming Ali Taheri Sharif University of Technology Outline 1. Python Data Types 2. Classes and Objects 3. Defining Classes 4. Working with Objects
More informationCS 112 Intro to Programming Basic OO Concepts
CS 112 Intro to Programming Basic OO Concepts George Mason University Building up to classes: Python Data Types Primitive Data Types: integer, floating point, boolean, None, etc Complex Data Types: Sequence:
More informationProgramming I. Course 9 Introduction to programming
Programming I Course 9 Introduction to programming What we talked about? Modules List Comprehension Generators Recursive Functions Files What we talk today? Object Oriented Programming Classes Objects
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 information20. More Complicated Classes. A Class For Manipulating Fractions. A Class For Manipulating Fractions 4/19/2016. Let s Define a Class to Do This Stuff
4/9/26 2. More Complicated Classes Class For Manipulating Fractions Topics: Example: The class Fraction Operator Overloading Class Invariants Example: The class SimpleDate Class Variables deepcopy You
More informationPREPARING FOR THE FINAL EXAM
PREPARING FOR THE FINAL EXAM CS 1110: FALL 2017 This handout explains what you have to know for the final exam. Most of the exam will include topics from the previous two prelims. We have uploaded the
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 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 informationExceptions. raise type(message) raise Exception(message)
Classes Special thanks to Roy McElmurry, Scott Shawcroft, Ryan Tucker, and Paul Beck for their work on these slides. Except where otherwise noted, this work is licensed under: http://creativecommons.org/licenses/by-nc-sa/.0
More informationCS 1110 Prelim 2 April 26th, 2016
Circle your lab/situation: CS 1110 Prelim 2 April 26th, 2016 ACCEL: Tue 12:20 Tue 1:25 Tue 2:30 Tue 3:35 ACCEL : Wed 10:10 Wed 11:15 Wed 12:20 Wed 1:25 Wed 2:30 Wed 3:35 PHILLIPS : Tue 12:20 Tue 1:25 Wed
More informationWhat is Recursion? 21. Recursion. The Concept of Recursion Is Hard But VERY Important. Recursive Graphics. Tiling a Triangle.
. Recursion Recursive Tiling Recursive Evaluation of n! Tracking a Recursive Function Call Random Mondrian What is Recursion? A function is recursive if it calls itself. A pattern is recursive if it is
More informationRecall. Key terms. Review. Encapsulation (by getters, setters, properties) OOP Features. CSC148 Intro. to Computer Science
CSC148 Intro. to Computer Science Lecture 3: designing classes, special methods, composition, inheritance, Stack, Sack Amir H. Chinaei, Summer 2016 Office Hours: R 10-12 BA4222 ahchinaei@cs.toronto.edu
More informationComputational Physics
Computational Physics Object-Oriented Programing Prof. Paul Eugenio Department of Physics Florida State University 26 Feb 2019 http://hadron.physics.fsu.edu/~eugenio/comphy/ Announcements Mid-Term 1 Will
More informationAnnouncements for This Lecture
Lecture 16 Classes Announcements for This Lecture Prelim and Regrades Still have some prelims Apparently were misfiled Pick them up in office hours Regrades in CMS next week Only for MAJOR mistakes We
More informationLecture 18. Using Classes Effectively
Lecture 18 Using Classes Effectively Announcements for This Lecture Assignments A4 Due Thursday at midnight Hopefully you are on Task 4 Extra consultants available Will post A5 on Thursday Written assignment
More informationCMSC201 Computer Science I for Majors
CMSC201 Computer Science I for Majors Lecture 25 Classes All materials copyright UMBC and Dr. Katherine Gibson unless otherwise noted Run time Last Class We Covered Run time of different algorithms Selection,
More informationCS 1110 Prelim 2 November 13th, 2014
CS 1110 Prelim 2 November 13th, 2014 This 90-minute exam has 5 questions worth a total of 100 points. Scan the whole test before starting. Budget your time wisely. Use the back of the pages if you need
More informationCS 1110 Prelim 2 November 12th, 2015
CS 1110 Prelim 2 November 12th, 2015 This 90-minute exam has 6 questions worth a total of 100 points. Scan the whole test before starting. Budget your time wisely. Use the back of the pages if you need
More informationLecture 3. COMP1006/1406 (the Java course) Summer M. Jason Hinek Carleton University
Lecture 3 COMP1006/1406 (the Java course) Summer 2014 M. Jason Hinek Carleton University today s agenda assignments 1 (graded) & 2 3 (available now) & 4 (tomorrow) a quick look back primitive data types
More informationProgramming in Python
Programming in Python Session-II Indian Institute of Space Science and Technology Thiruvananthapuram, Kerala, India 695547 IEEE Student Branch IIST Outline 1 File Handling 2 3 Exceptions 4 Modules 5 Reference
More informationLecture 1: Introduction to Python
Hendrik Weimer Institute for Theoretical Physics, Leibniz University Hannover Quantum Physics with Python, 04 April 2016 Goals of this course Learn to use the Python language for physics problems Master
More informationCS 1110 Prelim 2 November 14th, 2013
CS 1110 Prelim 2 November 14th, 2013 This 90-minute exam has 6 questions worth a total of 100 points. Scan the whole test before starting. Budget your time wisely. Use the back of the pages if you need
More informationAbout Python. Python Duration. Training Objectives. Training Pre - Requisites & Who Should Learn Python
About Python Python course is a great introduction to both fundamental programming concepts and the Python programming language. By the end, you'll be familiar with Python syntax and you'll be able to
More informationCSC148-Section:L0301
CSC148-Section:L0301 Week#1-Wednesday Instructed by AbdulAziz Al-Helali a.alhelali@mail.utoronto.ca Office hours: Wednesday 11-1, BA2230. Slides adapted from Professor Danny Heap and Jacqueline Smith slides
More informationECE 364 Software Engineering Tools Laboratory. Lecture 7 Python: Object Oriented Programming
ECE 364 Software Engineering Tools Laboratory Lecture 7 Python: Object Oriented Programming 1 Lecture Summary Object Oriented Programming Concepts Object Oriented Programming in Python 2 Object Oriented
More informationPaytm Programming Sample paper: 1) A copy constructor is called. a. when an object is returned by value
Paytm Programming Sample paper: 1) A copy constructor is called a. when an object is returned by value b. when an object is passed by value as an argument c. when compiler generates a temporary object
More informationCSC148 Intro. to Computer Science
CSC148 Intro. to Computer Science Lecture 2: designing classes, special methods, managing attributes; intro composition, inheritance Amir H. Chinaei, Summer 2016 Office Hours: R 10 12 BA4222 csc148ta@cdf.toronto.edu
More informationLecture 21. Programming with Subclasses
Lecture 21 Programming with Subclasses Announcements for This Lecture Assignments Prelim 2 A4 is now graded Mean: 90.4 Median: 93 Std Dev: 10.6 Mean: 9 hrs Median: 8 hrs Std Dev: 4.1 hrs A5 is also graded
More informationPREPARING FOR THE FINAL EXAM
PREPARING FOR THE FINAL EXAM CS 1110: FALL 2012 This handout explains what you have to know for the final exam. Most of the exam will include topics from the previous two prelims. We have uploaded the
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 informationCS 1110 Prelim 2 November 12th, 2015
CS 1110 Prelim 2 November 12th, 2015 This 90-minute exam has 6 questions worth a total of 100 points. Scan the whole test before starting. udget your time wisely. Use the back of the pages if you need
More informationLecture 18. Classes and Types
Lecture 18 Classes and Types Announcements for Today Reading Today: See reading online Tuesday: See reading online Prelim, Nov 6 th 7:30-9:30 Material up to next class Review posted next week Recursion
More informationAnnouncements for This Lecture
Lecture 17 Classes Announcements for This Lecture Assignments A4 Thursday at midnight Hopefully you are on Task 4 Minor extension for reasons Will post A5 on Wednesday Written assignment like A2 Needs
More informationScientific Programming. Lecture A09 Programming Paradigms
Scientific Programming Lecture A09 Programming Paradigms Alberto Montresor Università di Trento 2017/11/02 This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
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 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 informationHello, World. Java. #include <stdio.h> int main(int argc, char ** argv) {! printf( Hello, World!\n ); }
Why Python? Because it s easy and great fun! only 15 years old, yet very popular now a wide-range of applications, esp. in AI and Web extremely easy to learn many schools have shifted their intro-courses
More informationCS 11 python track: lecture 2
CS 11 python track: lecture 2 Today: Odds and ends Introduction to object-oriented programming Exception handling Odds and ends List slice notation Multiline strings Docstrings List slices (1) a = [1,
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 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 informationThe Pyth Language. Administrivia
Administrivia The Pyth Language Lecture 5 Please make sure you have registered your team, created SSH keys as indicated on the admin page, and also have electronically registered with us as well. Prof.
More information6.009 Fundamentals of Programming
6.009 Fundamentals of Programming Lecture 5: Custom Types Adam Hartz hz@mit.edu 6.009: Goals Our goals involve helping you develop as a programmer, in multiple aspects: Programming: Analyzing problems,
More informationCMPT 117: Tutorial 1. Craig Thompson. 12 January 2009
CMPT 117: Tutorial 1 Craig Thompson 12 January 2009 Administrivia Coding habits OOP Header Files Function Overloading Class info Tutorials Review of course material additional examples Q&A Labs Work on
More informationHave classes that describe the format of objects. Create objects by stating the class of the object to be created.
Class-based model Have classes that describe the format of objects Create objects by stating the class of the object to be created. The created object is called an instance of the class Class-based model
More informationLecture 21. Programming with Subclasses
Lecture 21 Programming with Subclasses Announcements for Today Reading Today: See reading online Tuesday: Chapter 7 Prelim, Nov 10 th 7:30-9:00 Material up to Today Review has been posted Recursion + Loops
More informationLecture 21. Programming with Subclasses
Lecture 21 Programming with Subclasses Announcements for Today Reading Today: See reading online Tuesday: Chapter 7 Prelim, Nov 9 th 7:30-9:00 Material up to Today Review has been posted Recursion + Loops
More informationProgramming Languages
CSE 130 : Fall 2011 Programming Languages Lecture 14: Objects, Classes, Inheritance Ranjit Jhala UC San Diego News PA 6 Out Due after Thanksgiving Today: Objects Namespace == Object What ways have we seen
More informationFun with Python Descriptors
Fun with Python Descriptors Author: Jeff Rush Date: 2006-11-25 include directive disabled... include:: Overview What are descriptors? Implementation: attribute watcher Implementation: property()
More informationObject Model Comparisons
Object Model Comparisons 1 Languages are designed, just like programs Someone decides what the language is for Someone decides what features it's going to have Can't really understand a language until
More informationOutline. Outline. 1 Chapter 2: Data Abstraction
Outline Outline 1 Chapter 2: Data Abstraction From Data Type to ADT Values A value is a unit of information used in a program. It can be associated with a constant or variable (a name) by an assignment
More informationCS Introduction to Computational and Data Science. Instructor: Renzhi Cao Computer Science Department Pacific Lutheran University Spring 2017
CS 133 - Introduction to Computational and Data Science Instructor: Renzhi Cao Computer Science Department Pacific Lutheran University Spring 2017 Introduction to Python II In the previous class, you have
More informationDSC 201: Data Analysis & Visualization
DSC 201: Data Analysis & Visualization Arrays Dr. David Koop Class Example class Rectangle: def init (self, x, y, w, h): self.x = x self.y = y self.w = w self.h = h def set_corner(self, x, y): self.x =
More informationWeek 8 Lecture: Programming
Week 8 Lecture: Introduction to Object Oriented Programming Introduction to Programming for GIS & Remote Sensing GEO6938 1469 GEO4938 147A Objects: You ve Been Exposed! Modularization, you know about it
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 informationAssignment 7: Due Wednesday May 11 at 6pm UPDATES on Monday May 9
CS1110 Spring 2016 Assignment 7: Due Wednesday May 11 at 6pm UPDATES on Monday May 9 You must work either on your own or with one partner. If you work with a partner, you and your partner must first register
More informationLecture 16: Static Semantics Overview 1
Lecture 16: Static Semantics Overview 1 Lexical analysis Produces tokens Detects & eliminates illegal tokens Parsing Produces trees Detects & eliminates ill-formed parse trees Static semantic analysis
More informationHigh Level Scripting. Gino Tosti University & INFN Perugia. 06/09/2010 SciNeGhe Data Analysis Tutorial
High Level Scripting Part I Gino Tosti University & INFN Perugia What is a script? Scripting Languages It is a small program able to automate a repetitive and boring job; It is a list of commands that
More informationINHERITANCE AND INTERFACES 7
INHERITANCE AND INTERFACES 7 COMPUTER SCIENCE 61A October 16, 2014 1 Inheritance Today, we explore another powerful tool that comes with object-oriented programming inheritance. Suppose we want to write
More informationRefreshing last time
Refreshing last time The Big Idea A hash table is an array of buckets To store something in table: Hash key, then put value in bucket To look up Hash key, go to bucket and find value Empty An empty hash
More informationCSC148-Section:L0301
CSC148-Section:L0301 Week#2-Wednesday Instructed by AbdulAziz Al-Helali a.alhelali@mail.utoronto.ca Office hours: Wednesday 11-1, BA2230. Slides adapted from Professor Danny Heap and Jacqueline Smith slides
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 informationObject Class. EX: LightSwitch Class. Basic Class Concepts: Parts. CS257 Computer Science II Kevin Sahr, PhD. Lecture 5: Writing Object Classes
1 CS257 Computer Science II Kevin Sahr, PhD Lecture 5: Writing Object Classes Object Class 2 objects are the basic building blocks of programs in Object Oriented Programming (OOP) languages objects consist
More informationCSC207H: Software Design. Java + OOP. CSC207 Winter 2018
Java + OOP CSC207 Winter 2018 1 Why OOP? Modularity: code can be written and maintained separately, and easily passed around the system Information-hiding: internal representation hidden from the outside
More informationObject Oriented Programming. Solved MCQs - Part 2
Object Oriented Programming Solved MCQs - Part 2 Object Oriented Programming Solved MCQs - Part 2 It is possible to declare as a friend A member function A global function A class All of the above What
More informationObject-Oriented Programming
Object-Oriented Programming Overview of Python OOP Motivations of OOP complicated data structures modularity Perl does not have built-in OOP d = defaultdict(lambda : { "count": 0, "lines": set() }) Perl
More informationObject Orientated Analysis and Design. Benjamin Kenwright
Notation Part 2 Object Orientated Analysis and Design Benjamin Kenwright Outline Review What do we mean by Notation and UML? Types of UML View Continue UML Diagram Types Conclusion and Discussion Summary
More informationLecture 15: Object-Oriented Programming
Lecture 15: Object-Oriented Programming COMP 524 Programming Language Concepts Stephen Olivier March 23, 2009 Based on slides by A. Block, notes by N. Fisher, F. Hernandez-Campos, and D. Stotts Object
More informationObject Oriented Programming is a programming method that combines: Advantage of Object Oriented Programming
Overview of OOP Object Oriented Programming is a programming method that combines: a) Data b) Instructions for processing that data into a self-sufficient object that can be used within a program or in
More informationIntroduction to Internet of Things Prof. Sudip Misra Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur
Introduction to Internet of Things Prof. Sudip Misra Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur Lecture - 23 Introduction to Arduino- II Hi. Now, we will continue
More informationIntroduction to Python
Introduction to Python EECS 4415 Big Data Systems Tilemachos Pechlivanoglou tipech@eecs.yorku.ca 2 Background Why Python? "Scripting language" Very easy to learn Interactive front-end for C/C++ code Object-oriented
More informationPROGRAMMING LANGUAGE 2
31/10/2013 Ebtsam Abd elhakam 1 PROGRAMMING LANGUAGE 2 Java lecture (7) Inheritance 31/10/2013 Ebtsam Abd elhakam 2 Inheritance Inheritance is one of the cornerstones of object-oriented programming. It
More informationCSC102 INTRO TO PROGRAMMING WITH PYTHON LECTURE 27 CRASH COURSE IN C++ MICHAEL GROSSBERG
CSC102 INTRO TO PROGRAMMING WITH PYTHON LECTURE 27 CRASH COURSE IN C++ MICHAEL GROSSBERG FOR INITIALIZATION TEST INCREMENT for (int ind =0; ind < 16; ind++){ // Do stuff CODE BLOCK TABLE WITH FOR #include
More informationSRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR
SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR 603203 DEPARTMENT OF COMPUTER SCIENCE & APPLICATIONS QUESTION BANK (2017-2018) Course / Branch : M.Sc CST Semester / Year : EVEN / II Subject Name
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 informationEL2310 Scientific Programming
Lecture 15: Inheritance and Polymorphism, STL (pronobis@kth.se) Overview Overview Lecture 15: Inheritance and Polymorphism, STL Wrap Up Additional Bits about Classes Overloading Inheritance Polymorphism
More informationExceptions. raise type(message) raise Exception(message)
Built-In Functions Special thanks to Scott Shawcroft, Ryan Tucker, and Paul Beck for their work on these slides. Except where otherwise noted, this work is licensed under: http://creativecommons.org/licenses/by-nc-sa/.0
More informationIntroduction. We've seen Python useful for. This lecture discusses Object Oriented Programming. Simple scripts Module design
Introduction We've seen Python useful for Simple scripts Module design This lecture discusses Object Oriented Programming Better program design Better modularization What is an object? An object is an
More informationPYTHON. Cheat Sheet.
PYTHON Cheat Sheet @moshhamedani Primitive Types Variables a = 1 (integer) b = 1.1 (float) c = 1 + 2j (complex) d = a (string) e = True (boolean) Strings x = Python len(x) x[0] x[-1] x[0:3] Formatted strings
More informationPython Development with PyDev and Eclipse -
1 of 11 4/4/2013 9:41 PM 130 Free tutorial, donate to support Python Development with PyDev and Eclipse - Tutorial Lars Vogel Version 1.8 Copyright 2009, 2010, 2011, 2012 Lars Vogel 01.07.2012 Revision
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 informationXII CS(EM) Minimum Question List N.KANNAN M.Sc., B.Ed COMPUTER SCIENCE IMPORTANT QUESTION (TWO MARKS) CHAPTER 1 TO 5 ( STAR OFFICE WRITER)
COMPUTER SCIENCE IMPORTANT QUESTION (TWO MARKS) CHAPTER 1 TO 5 ( STAR OFFICE WRITER) 1. Selecting text with keyboard 2. Differ copying and moving 3. Text Editing 4. Creating a bulleted list 5. Creating
More information