~~TOC~~
Corning Community College
C/C++ Programming
Projects
To provide a list of programming projects to aid in the understanding of course concepts and gaining of valuable development experience.
A core part of your work in the course will revolve around performing projects. This will offer you many opportunities to both learn and apply important concepts, and achieve a better mastery of material.
The method of undertaking a project will generally take the following form:
The aim here is two-fold:
Before starting on a project, you must obtain approval from me regarding the following items:
If desired, a sample template is available here that you can copy and paste into an applicable portfolio page.
All projects undertaken need to be documented on the wiki in your portfolio namespace. Specifically, you should set up a front page at:
And link to projects within the namespace:
Project documentation needs to have (at least) the following sections:
The following are the programming attributes you must consider while undertaking a project for credit in this course:
Attribute | Qty needed | Description |
---|---|---|
variables | 4 | data types, storage size, range are used within the project |
pointers | 4 | indirection/dereferencing are demonstrated |
selection | 4 | adjustment of program flow based on a logical/relational test is demonstrated |
I/O | 4 | demonstration of STDIN and STDOUT/STDERR in your program |
repetition | 4 | demonstration of repetition, be it by iteration, looping, or recursion |
functions | 4 | utilization of self-created functions |
arrays | 4 | proper utilization of arrays in code |
structures/classes | 4 | demonstration of structures in C code, classes/objects in C++ code |
inheritance | 2 | utilization of inheritance in C++ code |
polymorphism | 1 | demonstration of polymorphism concepts in C++ code |
templates | 1 | demonstration of templates in C++ code |
file I/O | 2 | demonstration/utilization of file I/O in your code |
libraries | 2 | utilization of non-core libc library that aids you in the solution |
There are a total of 40 items needed; with a maximum of 6 achievable per project, that makes for a minimum of 7 projects you must perform during the semester.
Note that where multiple quantities of attributes are concerned, only a single instance of an attribute can be achieved on any single project.
You need to keep an inventory of the total attributes you've achieved, displayed on your project portfolio page for this course.
The following are possible sources of projects you can undertake in this course. Note that while most of these can be solved by hand, and some have a single solution, your task is to implement a computer program to solve the problem, making use of the programming concepts and creating effective algorithms for accomplishing these tasks.
Projects here are listed in no particular order, please do not correlate difficulty with arrangement.
Project | Description | Potential Attributes |
---|---|---|
Primes | Calculate and display prime numbers | varies |
Multiplication | Display a multiplication table | varies |
Euler | Various mathematical/scientific problems | varies |
Logic | Various logic/combinatorial problems | varies |
Bases | Base Conversions | arrays, functions, repetition |
Age | Age Calculations | varies |
Roshambo | Implement the classic “Rock, Paper, Scissors” game | varies |
Farmer and River | The Farmer's quandary transporting a Fox, Chicken, and Corn across a river | varies |
Color Arithmetic | Fun with Colors | structures/classes, functions, pointers |
Again, these are not the only nor required projects, they are suggestions and worthwhile explorations. It is highly recommended you at least start with some of these projects, then as you find a particular direction or interest, pursue it.
A couple things to keep in mind:
In addition to posting the appropriate project documentation under your portfolio namespace, you must also attend to the following: