Courses‎ > ‎Software Development‎ > ‎Dyrland-Weaver‎ > ‎


Project 2: The Final Frontier

posted May 10, 2018, 10:04 AM by JonAlf Dyrland-Weaver   [ updated May 10, 2018, 11:08 AM ]

github repo:

Design Documents will be due by 8am Tuesday 5/15
  • Create a new repo and link to it in the symmetrical-fiesta repository.
  • Create a PDF named DESIGN.pdf in your repository (See other projects for detailed Design Document guidelines).
    • Include a component map, site map and database schema (if applicable), as well as any necessary supporting documentation.
    • Include a component description
    • Divide the tasks among your group members. Include a Project Manager.
    • Include a tentative timeline
    • Include a style guide
  • Create and begin filling in a plaintext file named devlog.txt in your repository.
    • The purpose of the devlog is so that any group member can see what the current state of the project is.
    • The devlog should be a plain text file that can be easily edited.
    • PM will make sure devlog is being maintained, but will not make all entries.
    • When any team member stops working and pushes changes to github, they should update the devlog explaining what changes have been made. Include any errors/bugs discovered (or created).
    • Separate devlog entries with newlines, put the latest entries on the bottom
    • Each line should begin with the following format: firstL -- TIMESTAMP\n
      • eg: jonalfD -- 2016-12-04 14:32
  • Edit in your repository to give -- to start -- a concise overview of your project.
More information will follow, but here are general guidelines about the project so you may begin thinking about it
  • Project must be done in groups of 4*
    • Due to math (or the illegality of splitting students into fractions of students), 9th period will have 1 group of 3.
  • The project must demonstrate knowledge of the concepts covered in class. To that end:
    • You must use python/Flask
    • You must use a front-end framework (probably bootstrap or foundation)
    • You must provide custom CSS
    • You must have your own javascript code that does something meaningful for your project
      • Include at least two examples of:
        • making ajax calls
        • using canvas or svg
        • using data visualization (most likely d3)
    • You must use at least one of the following:
      • databases
      • APIs
        • If you are using an API, research it to make sure it is stable.
  • More Guidelines will follow as we move on

Project 01: Dazzling Data Dives

posted Mar 26, 2018, 10:04 AM by JonAlf Dyrland-Weaver   [ updated Mar 29, 2018, 10:33 AM ]

Your task is to chose an interesting data set and provide a good visual representation of that data.
  • You should tell a story with your data, numbers are boring, bring them to life. We’ve spent the first marking period talking a lot about front-end graphical tools.
  • Technical Requirements
    • You will have to use d3 and one of canvas or svg. You may use both if you’d like.
      • Remember that d3 can be used to change many different attributes, not just size. Think about using other visual elements like position and color as well.
    • All data must be served through a flask back-end
  • Edit in your repository to give a rough outline of your project.
    • Description of data set(s).
    • Source (brief description + hyperlink)
    • Relevance/significance
    • Explanation, in broad strokes if necessary, of how you aim to make this data come alive.
    • What will be shown, absent user interaction?
    • How will user interact with your visualization?
    • What questions will your visualization allow user to explore? What questions will it provoke?
    • Explanation of D3 feature utilization.
  • Sketch/mock-up/screenshot of your envisioned visualization.
  • Edit devlog.txt appropriately.
  • Submodule linking notes: 
    • Main repo:
    • Make sure your submodule link appears as follows:
      • nameOfTeam_alastF_blastF_clastF_dlastF (e.g., sleater-kinney_tuckerC_brownsteinC_weissJ)

Review TASK: With your executive team, review the proposal of the team immediately following you in the submodule listing.
  • Address, at minimum, each bullet point below. (Discuss with your team, then open distinct issues as appropriate for each on your target repo. Then, repeat the process for the next team in the list.
    • Is it clear how you, a user, would interact with their data? How compelling is it? Does their interaction mechanism encourage you, the user, to continue exploring?
    • How clearly do you, a peer developer, understand the aim of their project? Is it clear what they aim to create?
    • How appropriate is their chosen display format for their chosen data? Does their data merit multiple display formats? If so, which? 
    • What modification(s) could improve the user experience by encouraging deeper exploration and better understanding of the data? Be as specific as possible; your suggestion should be actionable.

Here are some useful links as you move forward:

Project 00: Pre-Sent

posted Feb 8, 2018, 2:46 PM by JonAlf Dyrland-Weaver   [ updated Mar 22, 2018, 11:41 AM ]

You (and up to 2 other people) will be responsible for selecting a CS topic and presenting it to the class.

Phase 0: Topic Selection
  • Here is a form:
  • Look at the options, do a little research, think about what floats your boat.
  • Fill out the form, picking the topic that most interests you.
  • If you are passionate about something else, you may enter it under "other".
Phase 1: Group Selection
  • Below you will find a table of names and topics.
    • Some names might not appear on the list, especially those that did not fill out the form earlier.
  • If there are 3 or fewer names assigned to a topic, then congratulations, you're a group!
  • If there are more than 3 names to a topic, then you must split yourselves into at least 2 groups, and figure out who will be presenting on what. There cannot be multiple groups assigned to the same topic. 
    • For example, if 6 peopled wanted to to bitcoin, then that group must split into some combination of groups where none is larger than 3. One group can do bitcoin, but the others must select different topics.
    • If anyone wants to join another group they can, as long as they don't bring it over a size of 3.
  • Once groups and topics are selected, fill out this form:
Period 8:
we get to use phones in schoolPhoneGap3/26
NeonGoogle PageRank Algorithm3/6
pithonpython 33/13
More from LESSLESS (CSS)3/14
Planet ClaireWeb Pack3/15
William Shakespeare but this time with turtlesShell Scripting3/19
LinguineGraph Database3/22
Lizard_SquadSQL Injection    3/23    

Period 9:
ShellementaryShell Scripting3/7
cyanbuffer overflow3/8
Segfaulting Shibishionic mobile dev3/13
Pandamoniumpython pandas3/14
Lazy But FunctionalHaskell3/15
SasspiciousSass (css)3/26
PhoneGap KnapSackphone gap3/22
ASQL injection3/23

Phase 2: Date Selection

1-3 of 3