Repo exploration for overloading ops in C++ Activity

(Difference between revisions)
Jump to: navigation, search
Line 12: Line 12:
  
 
=== Background: ===
 
=== Background: ===
Is there background reading material?
+
Before this activity is assigned, the students should be introduced to the concepts of online repositories, free and open source software, and to a very limited extent, the use of GitHub. It is not really necessary to know how to use the version control features of GitHub for this activity because the students are not cloning code or uploading it. They can do this activity entirely by browsing the code on-line.
  
Are there other activities the student should have done first?
+
In terms of their coding knowledge, they should know how to read C++ class interfaces and implementation files, know how to read C++ function definitions, and be able to write C++ programs that use classes.
 +
 
 +
They will be given specific reading materials before starting this project, including:
  
 
What is the rationale for this activity?
 
What is the rationale for this activity?
Line 90: Line 92:
  
 
[[Category: Learning_Activity]]
 
[[Category: Learning_Activity]]
[[Category: LEARNING_ACTIVITY_SUBCATEGORY]]
+
[[Category: CS2]]

Revision as of 20:53, 15 August 2016

Title Exploring a C++ GitHub repository to learn about operator overloading
Overview Student will search a repo to find a specific class that implements infinite precision arithmetic and answer questions about it
Prerequisite Knowledge Basic CS1 background, including basic C++ class programming concepts
Learning Objectives The student should be able to search GitHub repositories in general; to read code and understand enough to know what overloaded operators do; to understand what inline functions are and when it is appropriate to use them; and to understand the advantages of using overloaded C++ operators and how to create them.

Contents

Background:

Before this activity is assigned, the students should be introduced to the concepts of online repositories, free and open source software, and to a very limited extent, the use of GitHub. It is not really necessary to know how to use the version control features of GitHub for this activity because the students are not cloning code or uploading it. They can do this activity entirely by browsing the code on-line.

In terms of their coding knowledge, they should know how to read C++ class interfaces and implementation files, know how to read C++ function definitions, and be able to write C++ programs that use classes.

They will be given specific reading materials before starting this project, including:

What is the rationale for this activity?

Include helpful hints to faculty here.

Directions:

What should the student do?

Deliverables:

What will the student hand in?

Assessment:

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)
Criterion 1...
Criterion 2...

Comments:

What should the instructor know before using this activity?

What are some likely difficulties that an instructor may encounter using this activity?

Additional Information:

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

CC license.png

Personal tools
Namespaces
Variants
Actions
Events
Learning Resources
HFOSS Projects
Evaluation
Navigation
Toolbox