MART 220 Creative Coding 2
Syllabus

Date modified: 3-14-2020

Table of Contents

Course Overview

Description

This class is designed to build upon what you learned in Creative Coding 1 and give you a new perspective on writing code along with interactive pieces. This course focuses on reinforcing programming concepts using Processing, Arduino and 3D Printing. There will be hands-on opportunities so that you can become proficient in using these tools.

● General Computing Concepts ● Logical Reasoning and Critical Thinking ● Multiple programming paradigms

Objectives

Upon completing this course, a student will be able to:

● Understand programming concepts and build visually interactive programs using Processing ● Interact with Arduino boards ● Interact and build 3D models and art pieces

Professor

  • Michael Cassens
  • E-Mail: michael.cassens@umontana.edu.
  • Office: McGill Hall, 230.
  • Phone: (415) 787-0577
  • Skype: michaelcassens
  • Google+: michaelcassens@gmail.com

Office Hours:

Course Requirements

Time

You should plan to spend 3-6 hours of work a week on homework and coding outside of class time (in this case, the time it takes you to read/watch the weeks content). This is an intense course that will require a significant time commitment on your part.

We will also have 1 on 1 meetings each week. So, please let me know what your schedule is so we can get together each week. It can be via phone, Skype, Zoom, etc. We don’t have to visit long, but I just want to touch base each week with each of you.

Please sign up here for an appointment 1 on 1 Meeting

This means you will need excellent time management skills. Schedule time for this course in your week, or you will not be capable of being successful.

Creativity

You are taking this course because it offers the opportunity to learn coding skills through creative means. Please take the time to be creative in your weekly code assignments. Pushing the boundary creatively will make this course more meaningful.

Cleanliness

Coding is hard. But, messy code, documents, and files will make it more difficult. Try to be as clean and tidy as possible in your organization for this class. When writing code, try to keep it organized, and provide many comments. This will make it easier for the grader, the instructor, and you.

Technology, tools, and required software

  • Markdown
    • All blog and response entries for each homework will be written using the markdown language.
  • Editor
    • You should install a text editor. If you do not already have a text editor installed I suggest;
  • Git
    • You will need to use Git; a free and open source distributed version control system. This should already be installed on your computer.
    • You can work with git via the terminal or command line.
    • Although it is recommended you use a GUI based front-end application. Such as;
  • GitHub
    • Additionally, you will be expected to maintain a github.io repository and website via GitHub where you will post your weekly homework assignments. You will then post the link to that page in a text file and upload that into Moodle.
  • Browser
    • You should ensure you have a modern browser installed on your computer, such as Safari, Google Chrome, or Firefox.
  • Moodle
    • We will use Moodle for all major communication, as well as submission of homework, and posting of grades.

Books

Required

Policies

Course Evaluation

Students work and progress will be assessed through;

  • A final project. Due: Friday May 8rd, 2020 11:59 PM
  • Homework Assignments
    • These typically will be code-based assignments
    • Code-based assignments will always include a reflection report
    • Weekly assignments may also include or instead be problem sheets that will be completed via Moodle.
  • Class participation via group problem solving, support, forum discussions, and peer evaluations.

Homework

We will have regular assignments that are relevant to material from recent content. These assignments are required and you will need to talk about them in your technical reports. It is expected that everyone in the class will create and maintain a github repository for their assignments.

The assignments are your opportunity to put your skills to the test. They’re designed to test and deepen your knowledge while giving me valuable information about how you’re progressing in the class. Finished is better than perfect. An attempt at them is better than nothing at all.

In addition to the weekly code assignments, you will be expected to also complete a weekly reflection report. In this, you will discuss;

  • your weeks progress,
  • what did & did not work,
  • comments on any frustrations you had with the language,
  • and critically analysis/evaluation of how much time was spent learning syntax, structure, & programming concepts vs. actually programming.

Homework will be submitted via Moodle homework assignment. You will submit links to your code, sketch, and technical report (both hosted via your GitHub repository) for every coding assignment. Every homework assignment will have an entry in the Moodle Course Page. Please feel free to post your web page link in the discussion forum.

Due to the size of the class and the nature of grading code-based homework, I will do my best to give individual feedback. Please feel free to send specific queries about homework or reasons for why you received the grade you did via email. Grades for all assignments will be based primarily on the student’s ability to:

  1. Demonstrate an understanding of the specific characteristics and integrative capabilities of the assigned topic in your own words and code.
  2. Articulate a clear and concise perspective. Cutting and pasting or copying word for word off the Internet will result in loss of points.
  3. Present an organized file/program, as well as technical report; including proper and punctual delivery of the assignment files.
  4. Demonstrate creativity beyond the expected technical requirements.

IMPORTANT: Assignments handed in after the due date and time will have points deducted for lateness. The number of deducted points will be at the discretion of the faculty.

Participation

This class will be participatory, you are expected to participate in discussions and give feedback to other students through on-line participation with the “issues forum” and project submission forums as well as peer reviews.

Final Project

This course will culminate with final projects. You are expected to push your abilities to produce something that utilizes what you have learned in the class that is useful in some manner to yourself or the world.

The final project will be a self-developed creative work utilizing the principles and ideas developed throughout this course. This project should equal roughly the same amount of work as 3 regular homework assignments. In other words, this is a significant creative piece. I really look forward to what you all come up with here. I know it will be fantastic!

Required: Please note, the final project is required. Failure to complete a final project will result in a letter grade of F for the course. This is regardless of the students current grade standing in the course. There are no exceptions to this policy.

Grades

Final Grades

Grades will be determined according to the following breakdown:

Grade Category Total %
Regular Assignments 60%
Final Project 40%


Letters are assigned according to the following final course percentages:

Grade % Range
A 93-100
A- 90-93
B+ 87-89
B 84-86
B- 80-83
C+ 77-79
C 74-76
C- 70-73
D+ 67-69
D 64-66
D- 60-63
F 0-59

Assignment Grades

For each project your grade will be assessed upon the following:

  • Principles
  • Creativity/Thoughtfulness
  • Craft.

Below gives you a sense of the spectrum, giving examples for high, middle and low grades.

Please read examples of each assessment point below to get an idea of my expectations. Note that a “B” is between Satisfactory and Superior.

  • Principles:
    • Superior - A - Your work shows evidence and understanding of programming concepts discussed in readings, lectures, and exercises, as you bend them to your will.
    • Satisfactory - C - Your work shows evidence of concepts and is still developing an understanding of course material. You understand some aspects, but aren’t utilizing them fully. Usage is cursory. Keep pushing your work and review the material to revisit how you can integrate it to your work.
    • Unexceptable - D/F - Your work shows some evidence of concepts discussed, but lacks key understanding, confidence, robustness and authority. Aspects are lacking. Reviewing course material is required. Ask questions in class. Manage your time better.
  • Creativity, Thoughtfulness:
    • Superior - A - Your work demonstrates your personality and a great depth of engagement with the material. It’s extremely evident that you are thinking, exploring, playing and taking risks. You are creating wonderful experiences.
    • Satisfactory - C - You are executing your ideas, but more time is needed to consider more deeply about what is conceptually and physically happening. They are barely getting off the ground. Or have large bits that are broken. Do more research and exploring. Play.
    • Unexceptable - D/F - Your work is so straightforward that it’s flat. It’s barely coded (or badly broken). It’s copied from elsewhere and not expanded upon. Question and Iterate your work to push your it further. Read. Play. Get off the lame track and get inspired.
  • Craft:
    • Superior - A - Your work shows delicate care and consideration to presentation and professionalism. You code is neat, clean, commented and structured. Your friends consider you “Type A.” Your style is evident.
    • Satisfactory - C - Your work shows the birth of your ideas, but further time and iteration can really push your work to excel. Your code is there, but messy. It can be simplified and made cleaner. What you put into it, is what you get out of it. Practice makes perfect!
    • Unexceptable - D/F - Your work is rushed and looks like it was done on your train-ride in or the night before. Make your work something you are proud of. You are here to build your portfolio after all, aren’t you?

Plagiarism & Cheating Policy

Students are expected to adhere to academic conduct policies of the University of Montana as explained in the Student Conduct Code. All students should act with personal integrity, respect other students’ dignity, rights, and property, and help create and maintain an environment in which all can succeed.

Dishonesty will not be tolerated in this course. This includes, but is not limited to, cheating on tests, cheating on assignments, fabricating information or citations, having unauthorized possession of examinations, submitting work of another person or work previously used, or tampering with the academic work of other students.

Plagiarism is the presentation of the work of another without acknowledgement. As defined by the University of Montana’s Student Conduct Code, plagiarism is “Representing another person’s words, ideas, data, or materials as one’s own.” Students may use information and ideas expressed by others, but this use must be identified by appropriate referencing.

Students who cheat or plagiarize will receive academic sanctions, which may include an “F” grade on the assignment, examination, and/or in the course. Students will also be reported to the Dean of Students for possible further disciplinary action.

Using Code or Media Found Elsewhere

It is easy to find code and media (i.e. videos, sounds, images, etc.) online. If you use code or media from elsewhere (which you will at times), I expect you to cite the work and author.

If you use found code, you are expected to comment each line, as to what each line does programmatically. Do not summarize several lines of code from a high level (i.e., TV Guide). I expect you to comment each line on a granular level. In addition, in these cases, I am also looking for significant modification of the code, for you to enact your own ideas and to experiment heavily. Significant modification means beyond variable name and value changes. It is bending these concepts to your idea, especially graphically. It is not a copy and paste job. Also, never more than 40% of your code may be supplied from elsewhere. Period. If you use code from online, whether for inspiration, modification or reference, I expect to see a link in your comments from where you got the code and who wrote it. Otherwise it will be considered as plagiarism, and you will fail the assignment. The code must have a reference, along with URL and be commented out LINE BY LINE.

If you use found media, YOU are responsible to ensure it is used according to fair-use guidelines. The pieces you make in this course are intended to be portfolio-quality works. Therefore, you should not utilize found media with restrictive use guidelines or licenses. You can read more about various licenses at;

For found media, you are also expected to cite the media in your documentation for the project.

Students with Disabilities

The University of Montana assures equal access to instruction through collaboration between students with disabilities, instructors, and Disability Services for Students. Students with disabilities are encouraged to plan ahead and can contact Disability Services for Students (DSS). If you think you may have a disability adversely affecting your academic performance, and you have not already registered with Disability Services, please contact Disability Services in Lommasson Center 154, or call (406)243-2243. I will work with you and Disability Services to provide an appropriate modification.

Special Dates:

  • Jan 13, 2020 Classes Begin
  • Jan 20, 2020 – Martin Luther King, Jr. Day – No class
  • Feb 17, 2020 – President’s day – No class
  • March 16-20, 2020 Spring Break – No class
  • May 1, 2020 Last Day of class
  • Final Project Turn In: May 8th, 2020 11:59 pm

Changes to the Course

I reserve the right to change the intended content of this course throughout the semester. This may be done to adjust for the speed of the class, to better meet educational goals, or to account for changes in technology.