Skip to content

Latest commit

 

History

History
256 lines (172 loc) · 12 KB

outline.md

File metadata and controls

256 lines (172 loc) · 12 KB

CODE1161 Design Computing Homepage S1 2018

Us: https://design-computing.github.io/code1161/guess_who_poster.html

Course Outline:

This course focuses on using programming as a means of problem solving, storytelling and creative expression for people in non-computer science fields.

Programming is simultaneously a vocational skill, a branch of philosophy, a culture, and the glue that holds the modern world together. By the end of this course you will have the philosophical tools needed to design solutions and the technical skill to implement them.

In the same way that being able to hold a pen doesn't make you a writer, being able to type code doesn't make you a programmer. So we'll learn how to manipulate symbols (type code), what those symbols mean, and how to decide which symbols to type in the first place. We'll learn simple logic and strategies for decomposing problems. We'll learn about the history and culture of computers in general, and in art and architecture.

The course will be taught through three sections. The first will be becoming proficient in the Python. Second is will be a machine learning project which utilises your newfound problem solving and programming skills. The third section will be the Open Data Project: a data analysis and story telling telling task.

Course Communication

Course website:

https://design-computing.github.io/code1161/

Course repository

https://github.com/Design-Computing/code1161

Piazza

  • Forum for your questions about the material and the course.
  • Annoucements, updates and my errors will be posted here invitations after I have your emails

Email

Slack

  • General chit-chat about comp design and computing.

Assessments

<iframe src="./admin/diagrams.html" frameborder="0" width="960" height="569" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>

Schedule

Week 1: Welcome to CODE1161 and Your dev environment

Introduction

  • An introduction to the world of computing as it is in 2018. This should provide some context to what this course aims to teach and why.

  • Learning the 3 step process that will help to start your journey as a problem solver.

  • Setting up your development environment.

Requirements

  • Please bring a portable computer to the lab as you will be setting up your dev environment.
  • An open mind and a willingness to trade some privacy for automation of boring tasks and quicker processes.

Lecture

<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vTH0wxz0Vy61NXaS6g2Nmot2w0qhhOkz1km_2g2TnrLGRyB0OBOlELz6uQ6_Sh5FYWkffY_KKECBpgF/embed?start=false&loop=false&delayms=3000" frameborder="0" width="960" height="569" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>

Lab

Instructions:

<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vQED50HjjGZhZ8Nv_9m8dSij1-eVpzuT3jBh3Djd6axm6guCc0H9gWpk9OJwfSIfbIiwGOSPDDz75qG/embed?start=false&loop=false&delayms=60000" frameborder="0" width="960" height="569" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>

Attempt exercises in trinket.io if you have finished.

In the last hour we will familiarise ourselves with each bit of software we have installed and what purpose it serves in the course. After that we will cover how to write your lab books and push them to github.

Homework

  • Ensure you have your dev environment set up.
  • In the week1 folder, complete:
    • exercise1.py
    • write your journal in README.md

Readings

Graham, P. (2009). Maker’s Schedule, Manager’s Schedule.

Case, N. (2016). Simulating The World (In Emoji 😘).

Davis, D. (2015). Why Architects Can’t Be Automated.

Doherty, B. (2015). Architects getting automated?

Noll, A. M. (1967). The digital computer as a creative medium. IEEE Spectrum, 4(10), 89–95.

Week 2: All of Python in three hours

Introduction

  • This week we will obtain an overview of all the components of the Python syntax. Theoretically, you will be able to do any programming task after this week ;-).

  • More details about the development environment.

  • How to ask questions and the three step process to general problem solving.

Requirements

  • A portable computer.
  • List of questions from last week's lab
  • Maybe some snacks for the lab. Keep it low GI if you can.

Lecture

<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vSJzgHnvLKcSJPt5nfXaz314GprB-fnuoHpLDdafF5Mn4STjs370X7lMdDhn0fZClijt9tDG_lBVOI1/embed?start=false&loop=false&delayms=3000" frameborder="0" width="960" height="569" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>

Lab

<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vR17tPHvj11C7pOFkuTTxZ_2rcepz0PHUOa8h_wnzTHTRPBoTBBCrgrZVjn5V3NcYDM-s-kmaVOLfzf/embed?start=false&loop=false&delayms=3000" frameborder="0" width="960" height="569" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>

Homework

  • The first two readings
  • homework exercises in week2 folder

Readings

https://automatetheboringstuff.com/#toc: chapters 1-5 Really awesome book https://programminghistorian.org/lessons/getting-started-with-github-desktop: Clarification for the github stuff

Week 3: Useful Programs and Algorithms

Introduction

This week in the lecture we will cover loops, collections and functions and taking user input by building a hangman game.

Lecture

<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vQQvpQvKiZyXyKCck-vJxxY2N7ONCfv08Yy5AtpxSu_8zG47yVlDwAfkk1LbAWvanX2NKJV1e7KEGWt/embed?start=false&loop=false&delayms=3000" frameborder="0" width="960" height="569" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>

Lab

Instructions for week3:

  • pull from upstream/master
  • run week3/setup.py to install required libraries
  • start working through the lab exercises

Homework

Week 4: Dictionaries and File I/O

Introduction

This week in the lecture we will build on our hangman game by saving the highest scores and introducing a leader board.

Lecture

<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vQ8BkNrDW08ySOr44rQSxrAeht7Avm6PXHclCuAdzUtLn1SMNO8oywMFJI4dKIN3k_rPKbXy0keXUVc/embed?start=false&loop=false&delayms=3000" frameborder="0" width="960" height="569" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>

Lab

Instructions:

  • pull from upstream/master

Homework

  • ensure you have completed all labs from week 1, 2, 3
  • run through the hangman.py and understand what each line does.

Week 5: More File I/O and the Internet

Introduction

This week we will extend on our hangman game by getting the word to guess from the internet.

Lecture

  • go over saving and reading from file again
  • what is JSON?
  • reading stuff from the internet with programs
  • recursion
  • [add video link if we successfully manage to record it]

Lab

Instructions:

  • pull from upstream/master
  • run week4/setup.py
  • complete week 4 file I/O exercises
    • run through the hangman_leaderboard_word_from_internet.py for some hints.
  • complete week 5 refactoring and recursion exercises
    • You may need to look at other examples of recursion to develop a fuller understanding of how it works.

Homework Due 10/04/2018 @ 12pm

  • ensure you have completed all labs from weeks 4 and 5
  • lab books for both weeks
  • Prepare for the programming exam on 17/04/2018 at 3pm.

Week 6: Non-teaching week

Week 7: Also non-teaching week

Week 8: Exam

In the lectures we will revise what so far in preparation for the exam in the labs. After the exam we will start looking at the software project due in

Lab (exam)

Instructions:

  • Promptly fire up your laptops
  • At ~15:15, the exam will be pushed
  • You will have 90 minutes to complete the exam, commit it and push it to your repository.

Week 9: Machine Learning

Lecture

<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vRLNFC0gxS4xh2wztQmuwmPQkNmrNe4YLlYeoPOyGaTPc1sZIFL7PxSuJadvM4Cn1RyLRsEf2EgFNbV/embed?start=false&loop=false&delayms=3000" frameborder="0" width="960" height="569" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>

Lab

Machine learning assignment to be demonstrated on 1 May 2018 in the labs.

<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vQTErz4xhwXpQFJ9808NHSZZKrc3Rf_g_P8yXMdMkOSmzfUHeZdFGU5hzlcQ4e_F5tADRRn5ClyAldY/embed?start=false&loop=false&delayms=3000" frameborder="0" width="960" height="569" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>

Week 10: OpenData Introduction

Lecture

<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vTXNkJCGDstDeRNc_jbHt7Y-TO1-Fj_oB1taSWwtrksUfr1RhRYwK5RmrcueLtly4EFFjoZSc9s0faB/embed?start=false&loop=false&delayms=3000" frameborder="0" width="960" height="569" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>

Lab

While we are marking the projects:

Homework

  • Pull from upstream to get the latest lab books
  • Complete the lab book in the week10 folder
  • Get acquainted with pandas and matplotlib
  • Research what questions you would like to answer and datasets.

Week 11: OpenData: Deciding on a dataset and topic

Lecture

Guest Lecture: Rachel Bunder, Data Scientist at Solar Analytics

Lab

  • Decide on a dataset or question. Might be worthwhile doing some quick exploratory data analyses.
  • Going deeper with pandas and matplotlib

Homework

Week 13: Final Week–Review

Lecture

<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vTc32kGt2vOuBBrpFEnwyaQHruLYWBeTCXfpvtlK0HjrGT7ndC8RGlRp8e1PsJA-MecHa6GGuJoZfUz/embed?start=false&loop=false&delayms=3000" frameborder="0" width="960" height="569" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>

Lab

  • OpenData Project

Homework

  • None, you're free now.