16.16. Group Work - Classes, constructors, attributes, and methods¶
Please join a research study to help us test new approaches to learning programming!
Hi! We are a team of researchers in Professor Ericson’s Lab at UMSI!
The Project
You are invited to participate in a research study about how Parsons problems (a type of coding puzzle) may help
CS entry-level learning. You must be at least 18 to participate.
Your participation will help more students become successful in computing courses in a low-cost, scalable, and easily
adopted way.
What Will Occur
This study takes 50 minutes to one hour to finish. The study materials include:
- Knowledge Review - A basic knowledge review about Class (~5 mins)
- System Introduction - Materials to get you familiar with the types of problems in this study (~5 mins)
- Pre Survey - Questions about your level of programming self-efficacy (~5 mins)
- Practice - Four code practice problems (~20 mins)
- Posttest - A short posttest consists of 4 programming questions (~15 mins)
Each section must be completed in order. After finishing one part, you can click the link provided under "What to do next" to the next part.
Confidentiality of Information
All the data we collect will be de-identified. We will not collect any identifiable data such as demographic information.
Who to Contact
If you have any questions about the study, please contact Xinying Hou at xyhou@umich.edu
with “[Parsons Problem Study]” included in the email subject.
We greatly appreciate your help!
Note
Click on the following link 👉 Basic Knowledge Review 👈 to start!
It is best to use a POGIL approach with the following. In POGIL students work in groups on activities and each member has an assigned role. For more information see https://cspogil.org/Home.
Note
If you work in a group, have only one member of the group fill in the answers on this page. You will be able to share your answers with the group at the bottom of the page.
Learning Objectives
Students will know and be able to do the following.
Content Objectives:
Identify the parts of a class
Explain what a constructor is and what it does
Explain what the __str__ method does
Explain the difference(s) between a function and method.
Create new objects and name them
Create new methods
Look the code below. It defines a class. it also declares methods which are functions that are defined inside of a class. One of the methods is automatically called when a new object is created by the class. One of the methods is automatically called when you print an object of the class.
16.16.1. A Book Class¶
Run the following code
Look at the class definition. It starts with the keyword class
. Then answer the following questions.
Q-2: What is the name of this class?
Q-3: What is the name of the method that is called when the object is created?
Q-4: Describe in your own words what the __init__
method does.
Q-5: What is the name of the method that is called when the object is printed?
Q-6: Describe in your own words what the __str__
method does.
Q-7: How many attributes does an object of the Book class have?
class Book: """ Represents a book object """ def __init__(self, title, author): self.title = title self.author = author def __str__(self): return "title: " + self.title + " author: " + self.author def get_author(self): return self.author def main(): b2 = Book("A Wrinkle in Time", "M. L'Engle") print(b2) b1 = Book("Goodnight Moon", "Margaret Wise Brown") print(b1) main()
Q-9: Describe in your own words what is/are the difference(s) between a function and a method.
Q-10: What is the name of the first parameter in all of the methods?
Put the code blocks in order below to create a class Person
with a
constructor (__init__
) method that takes a first and last name and a
__str__
method to return a string with the first and last name separated
with a space.
Q-12: Describe in your own words what self
means.
16.16.2. Create More Book Objects¶
Change the following main function to create a third book object called b3 with a title of “1984” and author “George Orwell”. Print out the values using the print function in the main.
Change the following main function to add a person object with your first and last name.
16.16.3. Add a Method to a Class¶
Change the following Person class to add an initials
method that returns
a string with the first letter in the first name and the first letter in
the last name in lowercase.
If you worked in a group, you can copy the answers from this page to the other group members. Select the group members below and click the button to share the answers.
The Submit Group button will submit the answer for each each question on this page for each member of your group. It also logs you as the official group submitter.