Lectures: 0900–1000, Fridays, Red Centre Central Wing M032 (K-H13-M032)

Tutorials: 1000–1300, Fridays, FBE Studio Squarehouse 103 (K-E4-103)

Handbook DescriptionTimetable Description

  1. Course Description

Design Computing provides a theoretical and practical underpinning for the rest of the degree.

Programming is simultaniously 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.

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 more specifically in architecture.

The first half of the course will be focused on learning new skills. In the second half we will apply them by exploring an open data set. We'll create graphs, maps and other visualisations from it. This will allow insight into information that was previously hidden.

  1. Course Staff and Contributors

Course Convenor
Ben Doherty
Email
[email protected]
Tutor
Aiden Ray
Email
[email protected]
Tutor
Ishaan Varshney
Email
[email protected]
Consultation times
Directly before or after class, please contact tutor one day in advance per email to make a booking.
  1. Course Communication

Most course related announcements are made in the lectures. It is essential that you attend the lectures to receive these announcements. In addition to these formal communication paths, online discussion forums will be available that will allow everyone to post questions and respond to other people’s questions.

Individual student related communication, including the issue of assessment grades and feedback, will be via the Moodle. UNSW Student email will be used to communicate changes that occur with short notice. All students are assigned an e-mail account on the University's e-mail server, so that email address will be used as the primary means by which important correspondence is made. You must, therefore, get into the habit of checking your UNSW student email regularly.

Details on setting up your UNSW student email are provided at:

https://www.it.unsw.edu.au/students/index.html

To manage your UNSW account and password, use the IDM site:

https://idm.unsw.edu.au/idm/user/login.jsp

Questions that cannot wait until the next allocated class are best handled by posting a message on the online forums in Moodle. If there are important or urgent matters that require a personal meeting, you are able make an appointment with your course staff. See 3. Course Staff and Contributors for more information on how and when to communicate with course coordinator and tutors.

If you do need to send an email, please use [this email template](https://github.com/notionparallax/code1161base/blob/master/email_template.md). Priority will be given to emails that conform to it.

  1. Course Websites

Moodle–this is the UNSW wide online teaching platform and has many capabilities. You can access Moodle via: https://moodle.telt.unsw.edu.au/login/index.php

Use https://teaching.unsw.edu.au/moodle-orientation to familiarise yourself with Moodle. Please see section 7.1 Online Teaching for more information.

Note: There is the potential that your lectures will be automatically recorded under the echo 360 platform:

https://teaching.unsw.edu.au/unsw-lecture-recordings-process

All OH&S and workshop training courses are as well located on Moodle. Please follow the Moodle instructions to complete UNSW’s OH&S requirements.

A breakdown of marks and deadlines can be seen here. This is a graphical view of the information in this document. In the case of any discrepancies you should treat the information in this document (the course outline) as true unless told otherwise.

Lab Books are to be posted here: medium.com/code17 You will need a Medium account. The details of how to do this will be in lecture 1.

You will also need an account at github.com and stackoverflow.com

  1. Lectures

Programing, an introduction

An introduction to programming concepts, its impact on the world and how you can be a part of extending that impact.

This week will contain a lot of information about how the course will function, how to stay healthy as a programmer, and the basics of Python syntax.

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.

Programming on your own terms

This week you’ll be working in your own environment. This is the beginning of a process of refinement that will last for your whole career.

We’ll talk about abstraction and problem decomposition. How to break up problems into small enough chunks to solve, and how to make those solutions as general as possible.

You’ll use tests to make sure that your code what you think it does.

Readings

Shaw, Z. A. (2013). Appendix A: Command Line Crash Course. (to cement existing learning)

Victor, B. (2011). Up and Down the Ladder of Abstraction.

Doherty, B. (2016). A thinking trick for beginner programmers - Ghetto TDD

Introduction to algorithms

Now that you can write simple code we are going to start putting it to work. We’ll learn to implement simple algorithms, and how to compare different ways of doing the same thing using time complexity.

Readings

Cormen, T. & Balkcom, D., Algorithms.
Go through the Intro to algorithms, Binary search and Asymptotic notation sections

IO

Programs that are completely self contained are never going to be all that useful. This week we’ll learn how to read and write files, and get information from the internet.

We’ll also go over the history of computing in the world, and in architecture.

Readings

Victor, B. (2013). The Future of Programming.

Polich, K. (2016). Potholes.

Polich, K. (2015). NYC Speed Camera Analysis.

Refactoring, AI

Sooner or later you’ll want to work with other people on a project. If you have a monolithic block of code this will be very difficult. Well refactored code is easy to maintain and easier to share with others.

Artificial intelligence is a huge, but it’s poorly defined. This will be a very broad introduction to some definitions of what it means.

Readings

The Catalog of Refactoring. refactoring.guru. Have a look around this site for inspiration.

Urban, T. (2015). The Artificial Intelligence Revolution: Part 1 - Wait But Why.

Urban, T. (2015). The Artificial Intelligence Revolution: Part 2 - Wait But Why.

M. Sanderson, A. Sandberg (2016). Battle Cry - Anders Sandberg on ethical AI

Working with data

Python is one of the most commonly used scientific programming languages. It has comprehensive libraries for almost anything you can imagine needing to do to data. We’ll go over Matplotlib and Pandas. We’ll also cover data cleaning in a repeatable way.

Visualising data is very fashionable, there are lots of whizzy ways to do this, but we’ll go over the absolute basics of data-vis.

Readings

Polich, K. (2016). Let’s Kill the Word Cloud.

Tufte, E. (2001) The Visual Display of Quantitative Information Read chapter 4: Data-Ink and Graphical Redesign. If you feel so inclined, read the whole book!

Wong, D. (2010) The Wall Street Journal Guide to Information Graphics: The Dos and Don'ts of Presenting Data, Facts, and Figures.

Mid-Semester Break

Readings

Tricks, patterns and ethics

This lecture will cover some useful python ideas that don’t fit in anywhere else. Regex, list comprehensions, slicing.

We’ll also cover touch on the basics of data ethics.

Readings

Floridi, L., & Taddeo, M. (2016). What is data ethics? Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences, 374(2083).

Pick any article from the Council for Big Data, Ethics, and Society’s website to discuss in your lab book.

Python in x, exam

Python is often used as a scripting language. It can be used to control Grasshopper and Dynamo. We’ll go over how to do this, and how to find out what is available in the environment that you find yourself in.

There will also be a programming exam to test recall on basic principles. The subject of the questions will be given ahead of time, but the specifics will only be revealed on the day.

Readings

Victor, B. Inventing On Principle. worrydream.com/#!/InventingOnPrinciple

Students’ choice

This lecture will be decided by student proposal and voting in week 6.

Readings

Dependent on choice of topic.

Guest Lecture

Readings

TBC by guest lecturer

Fitting it all together

You will know a lot of slightly disjointed things about python programming. This lecture will tie up the loose ends and help you transition into using your skills in ‘real’ contexts.

Readings

Samuel, A. (2015). How to Give a Data-Heavy Presentation.

No class

This is the assessment period, don't worry, you'll be busy.

Open Data Assignment presentation

You will present your work on the open data project.

Lab Book Completed

I will stop taking into account modifications to your lab book at 7pm Tuesday of week 15.

  1. Design Computing

Design Computing provides a theoretical and practical underpinning for the rest of the degree.

Programming is many things; a vocational skill, a branch of philosophy and a culture. By the end of this course you will have the philosophical tools needed to design solutions and the technical skill to implement that plan.

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.

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 more specifically in architecture.

The first half of the course will be focused on learning new skills, and the second on applying them.

We'll be exploring an open data set and creating graphs, maps and other visualisations from it. This will allow people insight to information that was previously hidden from them.

  1. Assessment

Summary

Assessment task

Weight

Learning outcomes assessed

Graduate attributes assessed

Due date

1a. Lab book

28%

1, 2, 3, 4, 5

O / P / I / L

W 1 - 15

1b. Weekly Programming Exercises

17%

1, 2, 3

O / P / I / L

W 2 - 8

1c. Exam

5%

1, 2, 3

O / P / I / L

W 9

2. Holy wars

10%

4

O / I

W 5

3a. Open Data Project

20% w14

15% w15

1, 2, 3, 5

O / P / I / L

W14 presentation
W 15 submission

3b. Git collaboration

5%

1, 3, 4

O / I

W 15

Details

Assignment 1a: (Lab Book) Hand in Week 15

Name

A collection of notes kept throughout the semester.

Description

A lab book is a record of what you’ve learned, what you are going to try next and a reference for next time you encounter the same problem. Students will assemble one document per week that they will post to the course’s Medium publication (medium.com/code17).

This will cement concepts by writing about, and illustrating, them. There is also value in reading and commenting on your peers’ lab books as a way of distributing the effort of learning.

Deliverables
14 Medium blog posts. These will be marked in two parts. Half the mark is for weekly presence; 'is there something posted by 7pm on Thursday?' The other half will be for quality which will happen in one go in week 15, which will give time for tidying up and refinement.

Assignment 1b: (Weekly Programming Exercises) Hand in Weeks 2-8

Name

Tasks that explore the concepts covered in the lectures and labs.

Description

Each week until the mid semester break there will be tasks for you to complete. These will be briefed during the contact time. These are marked automatically, but the code used to mark them will be available to you so you can tell if your work will pass or not.

Deliverables
Each week at the cutoff time (7pm the following Wednesday) each student’s GitHub repository will be read by a script and the code present will be marked. It will either pass or fail the tests. Feedback will be given in a communal way through the discussion forum. ( Week 7's submission will actually be in week 8.)

Assignment 1c: (Exam) Week 9

Name

An exam that will consist of small, simple programming problems.

Description

This will test recall on basic principles and your ability to apply them. The subject of the questions will be given ahead of time, but the specifics will only be revealed on the day.

Assignment 2: (Holy Wars) Hand in Week 5

Name

A very deep dive into a specific aspect of programmer culture.

Description

There are deep divisions in programmer culture over seemingly trivial things. For example, the advocates of different text editors treat their allegiance with a religious fervour. Each student will pick one of these divisives and present it to their peers during the week 5 lab. the marks will be evenly split between defining the context, presenting both sides of the argument with balance, and stating their position on the matter and substantiating why they hold that belief.

Deliverables
A 5 minute presentation in the week 5 Lab. A 20 slide presentation in Google slides format. Each slide should be set to have a 15 second automatic timer. The slides should be shared no later than 1pm on Thursday week 5. Details on sharing will be given closer to the date.

Assignment 3a: (Open Data project) Hand in Week 15, presentation in week 14

Name

Making data accessible to everyone

Description

This is the capstone project for this course. You will take an open data set, probably from the NSW government collection and build a way to present it to others.

You will use any available libraries or frameworks to do so, although py.processing and matplotlib are recommended. The marks will be awarded for:

  • Code quality: Is the code tidy, is it modular, is it self documenting, does it use efficient algorithms etc.
  • Data manipulation: has the raw data been transformed well, and repeatably.
  • Quality of output, is the ‘front end’ of your project successful, is it supported by data visualisation and HCI principles?
  • Depth of insight: Does your system lead to a greater understanding of the phenomenon described by the data? What did you find in the data that you wanted to share with others?
  • Final presentation: was the presentation clear and well rehearsed? Did it get the salient points across? Was it technically deep while avoiding jargon?
Deliverables
A presentation and demonstration of your data exploration tool in week 14’s contact time. Your GitHub Repository will be marked at its state at 7pm Tuesday of week 15.

Assignment 3b: (Git collaboration) Hand in Week 15

Name

Working together to achieve greatness, through GitHub collaboration.

Description:

One of the greatest things about being a student is having a cohort to go through the struggle of your courses with. One of the greatest things about open source culture is that there is a way for you to share the burden by helping each other out.

This is a mark that is available to anyone who makes a Pull Request to anyone else’s repository during the Open Data Project and has it accepted.

Deliverables
Proof of an accepted pull request, in both directions, described in your lab book.

  1. Assessment criteria and standards

Assignment 1a: Lab Book

Half the marks are available for presence of a lab book entry. If a post is made by 7:00pm on Thursday of each week then 114th of the marks will be awarded.

The other half of the marks will be awarded based on the whole corpus of posts considered together in week 15.

Deliverables:

Write a Medium blog post detailing what you did each week. It should include links to the documentation you've used (blog posts, official docs, Stack Overflow questions, your peers' previous lab book posts) descriptions of problems you overcame, summaries of articles you've read, podcasts you've listened to and discussions you've had.

Include sketches and diagrams. These can be hand drawn and then photographed. The Medium app makes this very easy.

STUDENT NAME:

STUDENT #:

#

Assessment Criteria:

%

US

S

G

VG

O

/100

1

Have the week's challenges and solutions been documented?

2

Is the prose clear and professional?

3

Is there evidence of engagement with peers?

3

Is there evidence exploration?

OVERALL MARK out of 100

FEEDBACK:

Marking criteria

Assignment 1a: Assessment Criteria

Unsatisfactory

Fail
0-49

  • Nothing related to the week's exercises has been written
  • Poor spelling, grammar and structure
  • No evidence of engagement with peers
  • No evidence of any exploration beyond the confines of the exercise

Satisfactory

Pass
50-64

  • Basic documentation of the week's exercises
  • Prose is functional, but not clear or interesting
  • Simple evidence of engagement (mentions, simple comments on their posts)
  • Some exploration beyond the minimum work required for the exercises.

Good

Credit
65-74

  • Solid documentation, uses diagrams and links to sources of solutions
  • Prose is clear with good spelling and grammar
  • Develops ideas initially proposed by others, with attribution, makes constructive comments on other's posts.
  • Explores an idea in more depth, develops basic expertise in that area

Very Good

Distinction
75-84

  • Very clear documentation, uses diagrams and links to sources of solutions and synthesises them into coherent pieces
  • Prose is engaging, clearly written and not unnecessary complex.
  • Ideas from peers are taken and developed in some depth.
  • Substantial exploration beyond the minimum is demonstrated. Clear expertise in some aspect of the subject that isn't covered by the course is demonstrated.

Outstanding

High Distinction 85-100

  • Excellent documentation, the challenges and solutions are well explained, alternative solutions are proposed and evaluated.
  • Prose is excellent, very clear and engaging.
  • Ideas from peers are taken and developed in significant depth.
  • Very substantial exploration beyond the minimum is demonstrated. Clear expertise in several aspects of the subject that isn't covered by the course is demonstrated.

Assignment 1b: Weekly programming exercises

These are marked automatically in a binary way. Each exercise will attract a certain mark for a passing test and no mark for a failing test. All tests will be worth an equal amount, i.e. 1nth of the weeks mark where n is the number of exercises.

Deliverables:

At 7pm on Thursday of each week following exercises being set, an automatic process will assess your work. it will pull your repo from GitHub and run tests against it. Therefore the deliverable for each week will be a specific set of files in specific locations, in your GitHub repository.

Assignment 1c: exam

This will be marked automatically in exactly the same way as your weekly exercises. The only difference will be that the submission dates will be different.

Assignment 2: Holy Wars

Marks are split evenly between each of the four parts.

Deliverables:

Students will deliver a 5 minute presentation in the week 5 Lab. A 20 slide presentation in Google slides format. Each slide will be set to have a 15 second automatic timer. The slides should be shared no later than 1pm on Thursday week 5. Details on sharing will be given closer to the date. The presentations will be joined before the lab, so not submitting will result in no mark for any part of this assignment.

STUDENT NAME :

STUDENT #:

#

Assessment Criteria:

% US S G VG O /100

1

The submission fits the specification

2

Defining the context

3

Presenting both sides of the argument with balance

4

Stating a position on the matter and substantiating why that belief is held

OVERALL MARK out of 100

FEEDBACK:

Marking criteria

Assignment 2: Assessment Criteria

Unsatisfactory

Fail
0-49

  • The submission does not meet specifications. Note: If the submission doesn't meet specifications it will mean that all other parts of this assessment will also be zero.
  • No context given
  • Only one side of the argument presented
  • No personal position is stated or substantiated

Satisfactory

Pass
50-64

  • The submission does meet specifications.
  • Basic context given
  • The argument is presented in a very biased way
  • Personal position is minimally stated and substantiated

Good

Credit
65-74

  • The submission does meet specifications.
  • Solid context given
  • The argument is presented in a mostly balanced way
  • Personal position is stated and substantiated well

Very Good

Distinction
75-84

  • The submission does meet specifications.
  • Good context given
  • The argument is presented in a balanced way
  • Personal position is stated and substantiated clearly and in a convincing way

Outstanding

High Distinction 85-100

  • The submission does meet specifications.
  • Excellent context given
  • The argument is presented in a totally balanced way - could not tell which way they were leaning.
  • Personal position is stated and substantiated very clearly and in a very convincing way

Assignment 3a: Open Data Project

Deliverables for week 14:

In week 14 each student will give an 8 minute presentation of their project. They should cover (at a minimum) the choice of data set, their manipulations, the design of their output and the insights they found while working with the data.

Deliverables for week 15:

At 7pm on Tuesday of week 15 all the repositories will be pulled for marking. It should contain well documented code that will run on a clean install of the VM.

STUDENT NAME :
STUDENT #:

#

Assessment Criteria:

% US S G VG O /100

1

Code quality

2

Data manipulation

3

quality of output

5

Depth of insight

6

Final presentation

OVERALL MARK out of 100

FEEDBACK:

Marking criteria

Unsatisfactory

Fail
0-49

  • Code is poorly formatted, doesn't pass the linter, has no documentation, is not modular, uses poorly chosen algorithms
  • The raw data has not been cleaned/transformed
  • The output is unclear and messy, it violates obvious HCI and data vis principles
  • No insight is obvious or presented
  • Final presentation is either not done or is unclear and confusing

Satisfactory

Pass
50-64

  • Code passes the linter, has some documentation, is somewhat modular, uses algorithms in a simple way
  • The raw data has been cleaned/transformed but in a non repeatable way
  • The output somewhat clear, it violates no obvious HCI or data vis principles
  • Some basic insight is obvious or presented
  • Final presentation tolerably coherent

Good

Credit
65-74

  • Code passes the linter, has good documentation (doc strings, good variable and function names) and is self documenting, is modular, uses well chosen algorithms
  • The raw data has been cleaned/transformed in repeatable way
  • The output clear, it follows HCI and data vis principles well
  • Interesting insight is obvious or presented
  • Final presentation coherent, free of jargon and interesting

Very Good

Distinction
75-84

  • Code passes the linter, has excellent documentation and is self documenting, is very modular, uses well chosen and justified algorithms
  • The raw data has been cleaned/transformed in repeatable and efficient way
  • The output is clear and is visually attractive, it follows HCI and data vis principles well
  • Multiple interesting insights are obvious or presented
  • Final presentation coherent, free of jargon and interesting, timing and delivery good

Outstanding

High Distinction 85-100

  • Code passes the linter, has excellent documentation and is self documenting, is intelligently modular, uses well chosen and justified algorithms
  • The raw data has been cleaned/transformed/combined in repeatable and efficient way
  • The output is engaging, it shows excellent understanding of HCI and data vis principles
  • Multiple very interesting insights are obvious or presented
  • Final presentation is very coherent, free of jargon and interesting, timing and delivery excellent

Assignment 3b: Git collaboration

Demonstrate that you are able to use GitHub to collaborate on programming projects, and that you are able to make your projects accessible to others.

Deliverables:

3% for: At some point during the Open Data project, demonstrate that you have made a pull request against someone else's repo and that it has been accepted. Document it in your lab book.

2% for: At some point during the Open Data project, demonstrate that you have accepted a pull request.

  1. Course assessment
    feedback strategy

Students will gain information about their process in class via 3 basic levels.

Firstly, The goals of the class are clearly defined in the course outline and discussed at the beginning of each Assignment and the learning steps within the assignment in the weekly lecture. Here students will understand how their performance relates to the broad goals of the course.

Secondly, students will get feedback in each class (during the three tutorial hours) upon their performance. Tutors will help students in one-to-one sessions to discuss and analyse how successful they have been at addressing the task and its criteria of each assignment and the learning steps within the assignment.

Thirdly, students will get feedback in each class (during the three tutorial hours) in how their response to the assignment and the learning steps within the assignment could be improved. Tutors will help students in one-to-one sessions to discuss and analyse how improvements could be made and which resources students could consult for an improvement.

  1. Resources

Readings

This class has no mandatory reading other than that defined in the weekly lectures. However, it would be very much in your interest to read:

Coates, P. (2010). Programming.Architecture (1st ed.). Routledge.

This is a general history and theoretical grounding for computational design as a field.

Woodbury, R. (2010). Elements of Parametric Design. Taylor & Francis Group.

Rob’s book will take you through all the ideas that you’ll need mastery of over your degree. Reading this will shortcut a lot of the pain that you are bound to encounter if you don’t read it. I wish it had been available when I was learning.

Graham, P. (2010). Hackers & Painters: Big Ideas from the Computer Age.

A series of essays about the early-ish days of the dotcom boom and the ideas that came out of it. Graham is a controversial figure, but his essays give a lot of insight into the workings of the alpha-hacker mind.

Zupko, E. (2015). STEM: Women Are All Over It. SMLX Good. bit.ly/2ktZPvz

A short introduction to the work of some of the sung, and unsung heroes of computer history.

Raymond, E. S. (2001). The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary. O’Reilly Media.

This book is an introduction to some pretty subversive ideas in computing and business. It’s got some great answers to the question of ‘Am I a hacker yet?’ It’s also a pretty enjoyable read.

Stephenson, N., & Birkel, G. (2004). The Command Line In 2004.

Neil Stephenson is one of my favourite fiction writers, in this book he writes a history of operating systems. This version of it is updated with notes from a (slightly)more modern perspective.

Online resources

GitHub will be used extensively throughout this course. It is a way for people to store, share, version control and collaborate on projects. As well as our code being hosted here, thousands of other people’s code is too. That means that there might well be someone who has already solved your problem. (github.com)

Stack Overflow is a question and answer site for programmers. Whatever your question, there is an extremely high likelihood that it has has been asked before. It has strong community norms, so it is worth familiarising yourself with them before you post. (stackoverflow.com)

XKCD is a comic that often has references to importants. Time spent following the threads that come up here is rarely wasted. (xkcd.com)

Coding horror is the blog of Jeff Atwood, one of the creators of Stack Overflow. He takes very detailed looks into unusual subjects and makes them seem interesting and entertaining. This is useful to you because it will show you how an extremely competent programmer’s brain works to solve problems. (blog.codinghorror.com)

Solving programming programs is largely a process of getting good at working out how to search for your particular error. As such, Google and Stack Overflow will get used a lot. It’s unusual to go into the Python docs directly usually you will be taken to the specific thing you need by Google. (docs.python.org/2.7)

Social network resources

UNSW CoDe has a Twitter, Instagram, Facebook and Youtube account and all lecturers use these accounts to share information with their students. Thus please join and follow us on @UNSWCoDe (for all above listed networks) we will use “UNSW” + “CODE” + the course number as a hashtag to help finding the relevant info (for this course #UNSWCODE1161). Feel also free to post images of your design on social media using the hashtag.

Twitter is a good source for very up to date information on tech subjects. You will have to find out who to follow for yourself, but feel free to look at who I follow​​​ for inspiration: bit.ly/NPfollows.

Class requirements

It is expected that you will bring your laptop to each class. Not bringing a laptop means we cannot look, comment and help you with your work, as we do not run this class in a computer classroom. Using your friend’s laptop means that they cannot work in the time given in class and thus is not an option either.

Configuring a programming environment is a considerable challenge. Dealing with edge cases can use up significant amounts of valuable teaching time. We will be using a virtual machine in the class to put a layer of abstraction between each specific hardware configuration and a consistent setup. This will mean that everyone’s environment will start out identical.

If you break your VM, instructions to restore it to fresh will be posted.

  1. Expectations

The lectures and the tutorials are an integrated part of this class. Missing out on lectures will have the consequence that you will miss out on seeing and hearing about projects, ideas and concepts relevant to your understanding and progress.

Programming is a mental activity. You are expected to come to to class fresh and ready to engage with challenging concepts.

If you experience and difficulties please refer to Special Consideration, Late Work and other policies in the BE Policy Outline at:

https://www.be.unsw.edu.au/sites/default/files/upload/pdf/currentstudents/LearningTeaching/BE_AcademicPolicyOutline2014.pdf

  1. OH&S and workshop training

Please discuss with your tutor in week one if you plan to use the workshop in order to get OH&S training in place.

  1. Course aims

Course Aim 1: The Course will teach fundamental computational thinking skills, specifically with the Python language. These mental tools are also applicable in all other courses.

Course Aim 2: The course will be an introduction to the culture and history of your future field.

  1. Learning outcomes

At the successful conclusion of this course the student will be able to:

  1. Students should feel comfortable solving simple problems using python programming
  2. Students should be able to decompose arbitrary problems into soluble parts
  3. Students should be able to write code that is readable by others, tested, and is easy to maintain.
  4. Students should have an understanding of some of the uses of computing in architecture, the culture and history of computing, and be prepared to engage with that culture.
  5. Students should be able to access, clean and manipulate open data and find a way to present it in a compelling way.
  1. Course Graduate Attribute

CODE1150 course Graduate attributes

Learning outcome

Activity/Assessment

H / Scholars who are digitally literate

1, 2, 3

Learn Grasshopper and digital fabrication skills and apply them via use of machines.

A / Scholars who are understanding of their discipline in its interdisciplinary context

4

Capable of using hardware and software and translate this knowledge into different contexts.

D / Scholars who are able to apply their knowledge and skills to solving problems

1, 2, 3

Able to apply parametric concepts through scripting to solve problems

I / Leaders who are enterprising, innovative and creative

1, 2

Learning state of the art design and production processes

  1. Built Environment and UNSW Academic Policies

The Built Environment Protocols and UNSW Policies & Procedures document supplements this course outline providing detail on academic policies and other administrative matters. It is your duty as a student to familiarise yourself with the expectations as not adhering to them will be considered as academic misconduct. Ignorance of the rules is not an acceptable defence. The document can be found in your Moodle course as well as:
www.be.unsw.edu.au/student-intranet/academic-policies

It covers:

  • Built Environment Student Attendance Requirements
  • Units of Credit (UOC) and Student Workload
  • Course and Teaching Evaluation and Improvement (CATEI)
  • Academic Honesty and Plagiarism
  • Late Submissions Penalties
  • Special Consideration - Illness & Misadventure
  • Extension of Deadlines
  • Learning Support Services
  • Occupational Health & Safety