Skip to content

Group project created with colleagues robert mcmaster and kailani woodard

Notifications You must be signed in to change notification settings

zaethovenn/voting-machine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cs390f2021-project

Table of Contents

Designed for use with GitHub Classroom, this repository contains the starter files for a course project in a Cryptocurrency Engineering and Applications computer science class. GatorGrader and Continuous Integration are not used for this assignment but you are welcome to add CI to your repository.

You can choose to work individually or in a team of at most three for this project assignment. GitHub Classroom project assignment is set up to be an individual assignment. If you are working in a team, please have one team member accept the assignment and establish the repository. Then, contact the instructor to add the other team members to this repository.

Introduction

The course project invites you to explore a real-world application of cryptocurrency technologies in times of crisis and challenge. While you are free to choose the project idea, its direction and implementation technologies, your project should satisfy two broad requirements:

  1. It should be based on one or more principles/elements of cryptocurrency (decentralized/distributed system, consensus, incentivization, blockchain data structure, identity, transactions, etc.).

  2. It should provide a mock-up solution to a real or potential problem that we (might) face in the times of crisis, whether it relates to the global pandemic, racial injustice, violence, etc., or more realistically a solution to a small part of such problem.

Your project should result in a final submission that includes all of your source code, in addition to written materials and technical diagrams that highlight the key contributions of your work. This technical report should include a description of why the chosen concept is important and appropriate (addressing two requirements stated above), and discuss the implementation and/or experimentation that you undertook. The written material should be precise, formal, appropriately formatted, grammatically correct, informative, and interesting. The source code that you write must be carefully documented and tested. If you install and use existing computer software, the steps for installation and use should be clearly documented in your report. Also, the report must explain the steps to run your programs. Finally, if you work in a team, your report must detail the work completed by each member of your team; individual contributions should also be reflected in commits to the team's repository. In addition to writing the aforementioned final report in Markdown, you will also use Markdown to write and submit a project concept development document at the intermediate deadline stated below.

Project Requirements

Please note that the course instructor expects students to implement and evaluate all of the source code needed to complete their proposed project. Additionally, students may choose their language of choice and adapt any existing projects and libraries, as long as they are cited in the comments and in the report. As such, there are no provided source code files. You are required to:

  • place all of your source code in the newly created src directory;
  • implement your solution in multiple programs, utilizing the divide and conquer nature of computation;
  • include testing of your programs (either automatic - test cases, or manual - by including manually run inputs in the report);
  • document source programs by including appropriate comments in each source code file;
  • edit the two Markdown files in the writing directory by the stated deadlines.

Here are some additional tips to help you design, implement, and test the source code for the final project:

  • In GatorGrader's absence, you should establish correctness checks for your source code.

  • You should test your implementation with different inputs (at least ten) to verify its correctness, efficiency, effectiveness, etc. as it makes sense for your project.

  • Make sure to regularly commit to your GitHub repository.

Required Deliverables and Deadlines

Summary of Deliverables

This assignment invites you to submit, using GitHub, or present orally, the following deliverables.

  1. A three-paragraph written concept development document, saved in the file writing/concept.md, with an informative title, a description of the main concept idea, an initial listing of the tasks that you must complete, and a plan that you will follow to complete the work.

  2. Participation in a Concept Design Pitch, where you present a mock-up design of your project concept to peers in another class.

  3. Participation in a Code Walkthrough. Code Walkthrough is a peer review of the code in which an author of the code leads the review process and the reviewer ask questions and spot possible errors. The instructor will act as the reviewer. Each project's team members (or a single member) is considered to be an author of the code. For each written program, the author(s) will describe the written program by going through the code and explaining the purpose of each logical sequence of lines. The reviewer will provide feedback at the end of the review session.

  4. Participation in a Presentation and a Critique session, where you will present your project and answer questions from instructors and peers in a joint class session.

  5. Completed, fully commented, and properly formatted versions of all source code files. Please ensure that you source code adheres to all of the requirements mentioned in this assignment.

  6. A detailed final project report (at least ~800 words), saved in the file writing/report.md, that documents, in a project-specific fashion, how you designed, implemented, and evaluated your system. This Markdown-based document should also explain and include the input, output, testing, and the challenges that you confronted when implemented the project. For every challenge that you encountered, please explain your solution for it. If worked in a team, this document should also explain how your team collaborated to finish the assignment, with each team member writing their own paragraph inside of this Markdown file. Finally, your report should also use all external sources (outside the class material) that you used as a resource for your project.

  7. A commit log in your GitHub repository that clearly shows incremental progress made on the assignment.

Deadlines

You must complete all of the aforementioned deliverables by the following due dates:

  1. Concept Development: Thursday, January 28, 2021 by 9:30am: After brainstorming project ideas during the class sessions, pick a concept for your course project. Write and submit a one-page concept of your project. Your concept development document should have an informative title, a description of the main idea, an initial listing of the tasks that you must complete, and a plan for completing the work. You should also describe (1) how your concept relates to crypto, (2) what problem does it attempt to address.

  2. Concept Pitch: Friday, January 29, 2021: In a joint session with Art 387, you are invited to present your conceptual design to your peers. Working in small groups, your peers are to challenge your concept in order to improve its design. To prepare for this peer review process, please prepare a few slides (2-3), including a visual representation of your concept (a diagram, flowchart, mock-up example).

  3. Code Walkthrough: February 4--5, 2021: During portions of the class sessions, you are to give a code walkthrough, highlighting the most important code that you have finished by that point. Code walkthrough is an informal process where code is reviewed for technical accuracy with the objective of finding errors and improving the quality of the code. The author(s) of the code lead the code walkthrough. The main purpose of walkthrough is to help authors gain an understanding of the content of the project and identify its potential flaws. Note that the goal of a walkthrough is an error detection (logical, compiler, run-time, output format, against development standards, etc.), not error correction. When the walkthrough is finished, the author of the output is responsible for taking the necessary actions to correct the errors.

  4. Presentation: February 8, 2021 (another session might be added if needed): In a joint session with Art 387, you are invited to present your technical solution in class in a short overview and then engage in a critical discussion about your project with your peers and instructors. Although you are not expected to complete your implementation by this point, you should have clearly and critically thought through the technical details, and be able to provide a more detailed summary of your concept.

  5. Final Project Due Date: Thursday, February 11, 2021 by midnight: You should submit the final version of your project through your project's GitHub repository. This submission should include all of the relevant source code and output, the written reports, and any additional materials that will demonstrate the success of your project. While you are encouraged to turn in the final project earlier, students must submit the completed assignment no later than 11:59 pm on the due date.

Receiving Assistance

If you are having trouble completing any part of this project, then please talk with the course instructor during class sessions or office hours. Alternatively, you may ask questions in the Slack workspace for this course.

Project Assessment

The grade that a student receives on this assignment will have the following components:

  • Concept [up to 10% of the project grade]: Completed concept development document satisfying requirements of the concept document specified above.

  • Concept Pitch [up to 10% of the project grade]: Participation in the concept design peer review.

  • Code Walkthrough [up to 5% of the project grade]: Participation in the project code walkthrough.

  • Presentation [up to 10% of the project grade]: Project presentation.

  • Implementation [up to 40% of the project grade]: Project implementation. As a part of this grade, the instructor will assess aspects of the project including, but not limited to the correct and useful source code, the conduct of extensive testing, the use of effective source code comments and Git commit messages.

  • Report [up to 25% of the lab grade]: As a part of this grade, the instructor will assess aspects of the project including, but not limited to, the correct and descriptive Markdown report, that demonstrates mastery of the assignment's conceptual and technical understanding and knowledge.

All grades for the assignments in this course will be reported through GitHub's gradebook assignment repository that each student should accept. Feedback on the course project will be provided through a student's GitHub repository using the comment in the "Feedback" pull request.

About

Group project created with colleagues robert mcmaster and kailani woodard

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages