Courses‎ > ‎Intro to CS - Full Year‎ > ‎Spring‎ > ‎Dyrland-Weaver‎ > ‎

Projects

Final Project

posted May 22, 2019, 11:07 AM by JonAlf Dyrland-Weaver   [ updated Jun 11, 2019, 7:53 AM ]

Final Project Dates:
  • May 31st, Start of class
    • Prototypes required in class while you work. This should be an elaborate explanation of your goals, and picture of how you want things to work. Details below.
  • June 10 (Monday), 8am
    • HW server Project slot 0 due.
    • If your project contains multiple files, combine them into a single .zip or .tar file (not .rar!).
    • If you are working with a partner, it's easiest for everyone if you both upload the assignment.
  • June 17th (Monday), 8am
    • Final Project must be done
    • HW server Project slot 1 due.
      • If your project contains multiple files, combine them into a single .zip or .tar file (not .rar!).
        • If your zip file is larger than 10MB due to many images, do not include them in your submission.
      • If you are working with a partner, it's easiest for everyone if you both upload the assignment.
    • Project must be fully functioning and accessible via a web browser.
    • See Below for final working project submission guidelines.
Documentation and Working Project Submission:
  • Everyone must have an html file documenting their project.
  • The file must be at the top level of public_html and named final.html
  • Your documentation will account for 10 points of your total grade. 
  • This page must contain the following parts:
    • Name of Project
    • Name(s) and period(s) of authors.
    • Link to the working project
      • This is the link to the html/python file that is the landing page for your project. I will not impose an naming restrictions for those files so that you can build your files as you see fit.
    • Overview of what the project is.
    • Instructions on how to use your project.
    • Description of how the project works.
    • List of all files and a brief description of their purpose.
    • List of resources used, including links for online resources.
    • List of Bugs, Errors or anything else that a user should be aware of when using your project.
      • I am much more sympathetic if you list a bug here than if I find it on my own. 
  • Everyone should use the following format for their final.html page: http://homer.stuy.edu/~dw/final.html
    • This means use the same tags (i.e. h1 for project name, ul for lists...), in the same order.
    • You may (and should) style this page as you see fit.


You (and possibly a partner) are tasked with creating a python program that demonstrates your ability to use the tools covered in class this semester:
  • Using HTML and CSS to present information as a web page.
  • Using data structures in python (lists and dictionaries).
  • Reading files into python programs as data.
  • Using recursion to solve problems.
  • Using python to generate web pages.
  • Using python to process input from the web, including using forms and query strings.

Final Projects must contain the following pieces:
  • At least one python program file.
  • Substantive usage of lists and/or dictionaries.
  • Reading and/or writing to one or more files through a python program.
  • A webpage that uses HTML and CSS
Viable Project Ideas:
  • These are just some ideas to get you started, you do not need to pick one of these, but you are welcome to do so.
  • Online form generator
    • Create a simple language for users to generate their own online forms. 
    • Example format: Type of question, question text, answer options (if applicable).
    • Your program could either generate the html for the form based on a text file or web form based input.
  • Choose-your-own-adventure generator
    • Similar to the form generator, this would take in (either vie a web form or text file) a choose your own adventure story, broken into pieces with choices that link to other specific sections.
    • Your program would then generate all the webpages to make the story functional.
  • Data Analysis
  • Searchable Database
    • Instead of focusing on analyzing data, create a website that makes it easy to view and search from a large dataset.

Project Guidelines:
  • Your project should focus on the technologies covered in class.
    • This means python, html and css not, for example, javascript.
  • You are expected to do work in class AND at home.
  • Your grade will depend on several factors beyond the actual project:
    • Your prototype/documentation/submissions
    • Consistent work throughout the allotted time. (The procrastination penalty)
  • You should try to get the minimum requirements done early, and play with how your project looks as a last 
  • It is ok if someone goes above and beyond, as long as the other partner contributes a substantial amount. It is NOT ok if one partner does most of the work, and the other does very little.


Prototype:
  • Page(s) 0-1:
    • Top: Name(s) of all involved, class period, team name, project name
    • Section 0
      • High level description of your project.
      • What is it? Why do you want to make it? How will it work?
    • Section 1
      • Template sketch(es)
      • What will the world look like?
      • What will the interface elements look like?
        • Types, size, positioning
      • You may need to provide multiple sketches to show the full design. Thats ok.
  • Page 2
    • Sources of information
      • Will you be using data or formulae, if so, where is that coming from?
      • Will you need to look at code from other NetLogo models? 
        • You might want to look through the "Code Examples" section of the models library for things we have not covered in class that you might need.
    • Task breakdown
      • Who will be doing what
    • Development stages
      • timeline of features to be added, prioritized by importance and feasibility.
      • It is ok to fall behind schedule. 
      • It is OK to modify this.
  • NO CODE: Until you hand in the prototype there should be absolutely NO CODE! This is a design process. 
  • Grade: This will be 20% of your final project grade. It should look like you put serious effort into it. 
  • If it looks like you did this assignment on the train coming to school or rushed it the night before, I will grade you accordingly. 
  • Diagrams can be printed images, or hand drawn. Both of you should PROOFREAD the entire document.
  • Hand drawn does not mean you can draw like a 5-year-old.
    • Take time to draw what you want to show.
    • Use a ruler for straight edges! This makes it look much better. (No ruler = you didn't care)
    • Please use reasonable paper! (Drawing on wrinkled looseleaf = you didn't care)
  • The purpose of the document is to:
    • Come together with your partner and make a clear picture of what you BOTH want to do. 
    • Explicitly describe the behavior of your project so I can tell you if there are potential problems. 
    • Make clear expectations public so you have guidelines to follow and don't cut features for no reason.
    • Have the document in class when you are working so I can reference it when I see your group.
  • Keep it out in class:
    • Print one for me, and one for each of you. 
    • You must have it out at all times.
  • Evolving document:
    • You may ADD to it, but do NOT remove old pages. 
    • You may mark sections as outdated, and that they are replaced later.
    • The goal is to see the evolution of your project over its creation. 

1-1 of 1