CS 160 - Programming Concepts and ApplicationsSummer II 2018 - Final ProjectQuick Links: Canvas | John Cabot | Piazza | zyBooks |
|||||||||||||||||||||||
| Home | Contact | Syllabus | Assignments | Schedule | Resources | | |||||||||||||||||||||||
This assignment is due by Friday, August 3, 2018, 11:59 PM. · Instructions · Rubric · Submission · Each week this semester, you have been doing labs and homework assignments that emphasize specific aspects of the C++ programming language. For the last few weeks of the course, you will make use of these language skills in the context of a larger, more realistic project. The goals of this project are:
The final project is open-ended. You may choose to write a program that plays a game, reads large data files and does a complex calculation with the data, or anything in between. Some detailed requirements are given below, so please read this document carefully. Pair ProgrammingFor this project, you may choose (not mandatory) to work with a partner using the pair programming technique. In the pair programming technique, two programmers work together on one computer. One is designated as the Driver and writes the code; the other is designated as the Navigator and reviews each line of code as it is typed. The two programmers switch roles frequently. For this project, the programmers should switch roles at least every fifteen to twenty minutes. Both of you must be able to attend all coding sessions together. Make sure your schedules align such that you will be able to meet outside of class.
Requirements - Project Proposal (due Wednesday, July 25, 2018 1:40 PM, in class)On Wednesday, July 25, 2018 1:40 PM, a short description of your project is due. You should submit your description as a PDF to Canvas. (If you have a partner, both you and your partner should submit your description.) This document should include the following sections WITH the section titles listed below
The document you submit should answer the following questions:
You do not need to do any coding to write this Project Proposal. The purpose of this Project Proposal is to get you to think about the initial design of your final project. (Note: we understand that the initial design you submit on Wednesday, July 25, 2018 1:40 PM is likely to change as you complete your project for the due date.) NOTE: You have a bit of time to decide upon your topic and a big picture of your design, but then only over about a week for implementation. Because of the tight time period for implementation, we strongly encourage you to have most of your design plans done earlier than Wednesday, July 25, 2018 1:40 PM (to give you extra time for implementation). In fact, you are welcome to submit your Project Proposal for feedback earlier than Wednesday, July 25, 2018 1:40 PM (if desired). Many previous students have said "gosh, wish I had gotten started on the final project earlier." Your instructor will give you feedback on your Project Definition the class period after you submit it (e.g., too complex or too simple). Requirements - Project Code (due Friday, August 3, 2018, 11:59 PM)
Your program must use at least one original class, written specifically
for this project. You are free to use other classes we have developed
during the semester, such as the
Your program must use at least one array (one-dimensional or two-dimensional). This array needs to be either an array within your class OR an array of objects of your class type. If desired, you can use a vector instead of an array.
Your program must make use of file I/O Data may either be read
from or written to a file, or both. Please place your data file in the
same directory as your
Your program must use functions where appropriate. Your program must use constants where appropriate. Your project must make use of ample commenting. There should be enough documentation to allow another programmer to easily make modifications or enhancements. Your program must adhere to our CS 160 style guidelines. Requirements - Project Paper (due Friday, August 3, 2018, 11:59 PM)
Create a text file called
ResourcesWhile you may search on the Internet for hints as to how certain things are done in the C++ language, you cannot directly copy and paste code found from resources outside our course. That said, any resources we have used in this class from previous labs and homework assignments are fair game for use in your project. Incremental DevelopmentNow that you are designing and writing a large project from scratch, the "Incremental Build" model of software development is more important than ever before. This is a software development methodology where the model is designed, implemented, and tested incrementally, adding a little more functionality each time, until the product is finished. In other words, write a small amount of code to do one specific task, then run the program to be sure what you have done so far works. Only when you are satisfied with what you have so far do you move on to the next part of the program. In short, implement and test small parts of your program as you work! Project PossibilitiesThere are numerous different project ideas possible. Here are a few examples: GamesThere are several games with two-dimensional arrays as playing areas. Possibilities include Connect Four, Reversi (aka, Othello) and Battleship. Non-GamesFinally, there is no requirement that your final project be a game. For example, if you are passionate about bike riding, you might create a program that calculates the optimum front and rear gears that should be selected on a bicycle, given a degree of incline and current velocity. Users select the type of bicycle, specify their speed, pain threshold, and degree of incline. The program then informs the user of the front and rear gears that should be selected. Or maybe there is something you could write that would be useful for your major or other classes. Anything that meets the requirements of the project (see above) is fair game. Other IdeasIf you have other ideas but need a bit of help with the design, please feel free to talk to your instructor. Grading RubricYour submission will be graded according to the following rubric.
This assignment is due by Friday, August 3, 2018, 11:59 PM. SubmissionAlways, always, ALWAYS update the header comments at the top of your main.cpp file. And if you ever get stuck, remember that there is LOTS of help available. The following instructions are copied from How to Submit Homework. It is critical that you follow these steps when submitting homework.
If you do not follow these instructions, your assignment
will receive a major deduction. Why all the fuss? Because we have
several hundred of these assignments to grade, and we use
computer tools to automate as much of the process as possible.
If you deviate from these instructions, our grading tools will
not work. And that makes us very unhappy. And when we're
unhappy, we give penalties. Thus, make us happy.
Submission Instructions Here are step-by-step instructions for submitting your homework properly:
In summary, you must zip the
"FP" folder
and only the "FP" folder, you must submit the correct zip file for this
homework, and you must click the "Submit" button. Not doing these steps is like bringing your
homework to class but forgetting to hand it in. No concessions will be made for
incorrectly submitted work. If you incorrectly submit your homework, we will not be able to
give you full credit. And that makes us unhappy. This assignment is due by Friday, August 3, 2018, 11:59 PM. | |||||||||||||||||||||||
Last Updated: 07/05/18 16:46
|