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


All smaller assignments (those posted here) should be uploaded as submodules to the workshop repository in the appropriate assignment directory.

Make sure to put your submodule in the folder of your period and include your name and the name of your partner(s) (if applicable) in the repo name.

Last Class Today!

At the end of each class, 1 student will be chosen at random to post the day's notes online.
Notes will be posted in the document for each class in the notes-and-code repository on github (
Title the note [DAY] [DATE] [TOPIC/AIM] by [AUTHOR]
For example:   Wednesday, 9/14 Variable Types by JonAlf Dyrland-Weaver
Also include at the end of the note a link to an interesting piece of tech/science news.
Use markdown for formatting. For markdown help go here:

Work 13:

posted Dec 15, 2016, 8:31 AM by JonAlf Dyrland-Weaver   [ updated Dec 16, 2016, 8:01 AM ]

With your table buddy do the following:
  • Grab copy of intro.html, either attached to this page or on the notes-and-code section of github.
  • Write a javascript file that will do the following:
    • When the button is pushed, add an element to the list
    • When the mouse goes over an item in the list, change the heading at the top to contain the text of the item
    • When the mouse is no longer over an item in the list, change the heading back to "Hello World!"
    • When an item on the list is clicked, remove it from the DOM
  • Add the following to your previous work:
    • Add a second list to the html page, do not add elements to it.
    • Create a second button.
    • When the second button is pressed, the new list should have an item added that contains the next fibonacci number.
    • For the mathematically inclined, you could add more lists that generate other numeric sequences if you like.
Submit your html and javascript files in the workshop under js

Work 12: Get some REST

posted Nov 29, 2016, 9:35 AM by JonAlf Dyrland-Weaver

Find at least one REST API and share it using the following form:

When including a link, provide a link to the main page that describes the API

Work 11: We've been framed!

posted Nov 21, 2016, 6:47 AM by JonAlf Dyrland-Weaver

With your table buddy, look up either the bootstrap or foundation front-end framework (you will be assigned a framework in class).
  1. Research the framework.
  2. Create a single html page that demonstrates the key features of your framework. It should not be too complicated, you don't need to showcase every feature in the framework. 
  3. Upload your example (and any necessary framework files) to the workshop under frameworks. Title your directory TeamName_LastF-LastF-Framework (i.e. TeamAwesome_Dyrland-WeaverJ-BrownMykolykT-Bootstrap)

Work 10: Advanced Stuylin'

posted Nov 18, 2016, 6:56 AM by JonAlf Dyrland-Weaver   [ updated Nov 18, 2016, 9:13 AM ]

  1. Look at 4 different people's CSS work from the past 2 days. Learn from them, what worked? What didn't? What was jaw-droppingly gorgeous?
  2. Find 3 cool new CSS things/tricks/voodoo
  3. Write a new html/css combo that demos your 3 cool CSS things from above, as well as any other css you'd like to use. Make it purrrty!
    • When working on style, it's useful to have filler text, that's why you see the classic "lorem ipsum" latin text. Feel free to use lorem ipsum if you like, but you can find many lorem ipsum variants. Or perhaps you'd like to try out:
    • Also, if you want nice colors, check out: (shout out to Olivia for posting this to the forum!)
  4. Add your html/css combo to the existing css directory in the workshop

Work 9: Stuylin'

posted Nov 16, 2016, 6:44 AM by JonAlf Dyrland-Weaver   [ updated Nov 17, 2016, 9:44 AM ]

In the workshop you will find a sample html file. Your mission is to create 2 different css files that can be applied to the sample html. 
  • The only modification you should make to the html file is to include a link to one of the style sheets in the <head> section.
  • Provide css styles for at least 5 different elements.
  • Use at least 5 different css properties.
  • provide styles for the div tag, as well as the class and id names found in the second file: style_me_css_html
Submit the html file and both css files in the css folder of the workshop.

Work 8: Are you devo?

posted Oct 20, 2016, 8:21 AM by JonAlf Dyrland-Weaver   [ updated Oct 21, 2016, 9:24 AM ]

Your team of four has been contracted to design and implement a web log. Your team advertises proficiency with Flask, Python, and SQLite.

As your “software solution,” in the parlance of our times, will incorporate a few distinct components, so it is imperative that your team develop a design before you move to implementation.

  • A list of program components with role of each specified.
  • Explanation of how each component relates to the others. 
    • Component map visualizing relationships between components.
  • Database Schema
  • Site map for front end
    • Represent each page you envision for your site.
    • Show linkages conveying user pathways for traversing site.
  • A breakdown of the different tasks required to complete this project
    • Include assignments of each task to each group member
Create a PDF that contains all the information above.
Put this document in a submodule in the following repository:

Work 7: Not your average database user.

posted Oct 18, 2016, 6:43 AM by JonAlf Dyrland-Weaver

Using python and the database from the previous assignment write a program to do the following:
  • Look up the grades for each student.
  • Compute the average for each student.
  • Display each students name, id and average.
The points above are not specific steps you need to take in a particular order. You should organize the code however you feel will accomplish the task best.

Work with the same people with whom you did Friday's assignment in the same repository.

Do this work in a separate python file named

Work 6: All about that database

posted Oct 13, 2016, 7:44 PM by JonAlf Dyrland-Weaver

With a partner of your choosing, grab the freshest sample code gift from the notes-n-code repo (right here:, and set about the mission below:

  • Read data from two CSV files --- one containing students and their IDs, another linking said IDs to the students' current grades in some courses --- and create a database whose table structure mimics that of the CSV files.
    • TASK the Foist: Familiarize yourself with Python's CSV module, specifically its DictReader() method, as it will greatly expedite your work going forward. (If you are already familiar, do your team a solid and lead a tutorial.)
      • For some sample code to get you going, see
  • TASK the Second: Familiarize yourself with the contents of the two provided CSV files.
  • TASK the Toid: Write, which will
    • create a new SQLite database
    • utilize csv.DictReader() to read each provided CSV file
    • create a table for each
    • populate each table
  • Save your work in a new repo, linked under the db1 folder as TeamName_LastF-MastF-NastF
  • PROTIPs:
    • It may be helpful during development to delete your db file between runs.
    • Read through the db_builder skeleton AS A TEAM, and talk it over BEFORE you begin making it your own...
    • Use the sqlite shell to test out SQL commands before baking them into your Python script.

Work 5: I git issues, you git issues.

posted Oct 7, 2016, 9:18 AM by JonAlf Dyrland-Weaver

  • With a buddy, review 2 of your classmates’ login projects, and submit at least 2 GitHub issues for each.
  • Your buddy is your neighbour.
  • Review the code of devos at <my_workstation_num + 10>.
  • Look over the entirety of the code you are reviewing, to ensure you submit an issue for anything meriting it.
  • After you have completed your informal code review, check your inbox or GitHub repo page for issues submitted. Use each to assist in your latest task, and mark each issue resolved when you have resolved it.

Work 4: It's login, login, it's better than bad, it's good!

posted Sep 29, 2016, 6:03 AM by JonAlf Dyrland-Weaver   [ updated Oct 6, 2016, 8:35 AM ]

Yes, I know you have no idea what the title is about, so go here, you're welcome.

Continue working on the login flask app we have been building in class. For now, hardcode in your flask app an example username and password combination. Include the following features:
  • The root route go to the login form
  • The form send data to the flask app
  • The authentication function should return a template with either a success or failure message. This should be the same template for both.

Add the following to what you had before:

  • Give the form 2 buttons, login and register
  • Register should allow the user to enter a username/password and save it to a passwords file
    • Make sure you hash the passwords when you store them.
    • Register should fail if the username is already registered.
    • If register works, then load the login page but display a message signifying that the account was created.
  • Login should check the username/password combination
    • If login succeeds, show a success message
    • If login failed, then a message should display what went wrong (bad password? bad username?)
    • All the messages should be from the same template.

  • Implement sessions and redirection.
  • When a user logs in, a session should be established with the username stored
  • Root route should have 2 behaviors now
    • If the user is logged in, it should take them to a welcome page
    • If the user is not logged in, it should take them to the login/register page
  • Welcome page (successful login) should have a logout button that goes to a separate route that will log the user out of the session

Submit this as login in the workshop.

1-10 of 14