Repo exploration for overloading ops in C++ Activity

From Foss2Serve
Revision as of 20:55, 15 August 2016 by SWeiss (Talk | contribs)
Jump to: navigation, search
Title Exploring a C++ GitHub repository to learn about operator overloading (page in progress)
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.



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.


What should the student do?


What will the student hand in?


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...


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 -
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? (

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
Learning Resources
HFOSS Projects