Comparable Interface - Code Reading-Activity
Directions for Using This Template
The template below contains sections which describe the items that should be included when creating an activity. To use this template:
- Create a new page with the word "Activity" in the name. Please try to use a short, descriptive name.
- Fill in the sections below according to the instructions. Feel free to copy the source for this template into your new page.
- Categorize the page as "Category:Learning Activity". Look at the source for an existing activity to see the syntax.
- Also categorize the page under one or more of the subcategories found at http://foss2serve.org/index.php/Learning_Activities
- Note that feedback to the author(s) of the activity regarding usage or suggestions for enhancements can be included via the Discussion tab (upper left of the page).
|Title||Comparable Interface - Code Reading Activity|
|Overview||Students learn about the Comparable interface in Java by looking at the code of OpenMRS and the actual implementation of the compareTo method in the String class of Java API.|
|Prerequisite Knowledge||Students should be familiar with the String class and string comparison in Java. They should understand the concept of classes and objects.|
|Learning Objectives||Understand the concept and purpose of the Comparable interface. Understand the benefits of defining classes that implement the Comparable interface.|
- This activity could be done as a homework assignment (either done individually or by pairs of students), or as an inclass (lecture or recitation) activity.
- This activity could be done either early in CS2 course or as a late semester CS1 activity.
- This activity is designed to use OpenMRS, but there is nothing specific to OpenMRS. The instructor can use any open source project that has sufficient examples of use of Comparable interface.
- Go to openMRS-core GitHub repository at https://github.com/openmrs/openmrs-core and search compareTo
- Locate 4 different examples of a call to the compareTo method, for each:
- specify the filename and the line # on which the call occurs and write the line that contains the call
- identify the type of the object the method is called on
- locate the class associated with this datatype and
- write the header for this class
- locate the implementation of the
- identify the parameter type
- identify the return type
- Recall that you have used the
compareTomethod in the
Stringclass. Below is a partial class definition:
- public final class String
- implements java.io.Serializable, Comparable<String>, CharSequence
Student will submit a document containing answers to the above questions.
How will the activity be graded?
How will learning will be measured?
Include sample assessment questions/rubrics.
|Criteria||Level 1 (fail)||Level 2 (pass)||Level 3 (good)||Level 4 (exceptional)|
What should the instructor know before using this activity?
What are some likely difficulties that an instructor may encounter using this activity?
|ACM Knowledge Area/Knowledge Unit||What ACM Computing Curricula 2013 knowledge area and units does this activity cover? ACM_Body_of_Knowledge|
|ACM Topic||What specific topics are addressed? The Computing Curriucula 2013 provides a list of topics - https://www.acm.org/education/CS2013-final-report.pdf|
|Level of Difficulty||Is this activity easy, medium or challenging?|
|Estimated Time to Completion||How long should it take for the student to complete the activity?|
|Materials/Environment||What does the student need? Internet access, IRC client, Git Hub account, LINUX machine, etc.?|
|Author(s)||Who wrote this activity?|
|Source||Is there another activity on which this activity is based? If so, please provide a link to the original resource.|
|License||Under which license is this material made available? (http://creativecommons.org/licenses/)|
Suggestions for Open Source Community:
Suggestions for an open source community member who is working in conjunction with the instructor.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License