ARTG2260: Programming Basics

Northeastern University: College of Arts, Media & Design
Spring 2018, Section 02: Thursdays 6:00 – 9:30 pm Room: RY209
Instructor: Nathan Melenbrink (melenbrink [at] northeastern [dot] edu)

Google Group

Course Description

This course exposes students to basic programming and computational design for animation and interaction. It offers students an opportunity to become familiar with the logical elements of programming languages. Through lectures, hands-on in-class exercises, and iterative projects, it explores web-based design and programming solutions for creating animations, simulations, simple applications and user interfaces.

About This Course

This course will introduce you to the expansive world of creative coding. The primary deliverable of this course is a final project for which you and your teammates will be encouraged to explore a specific area of your own interests. You will develop basic fluency in programming and enhance your analytical thinking skills.

The primary tool used in the course will be p5, which is the JavaScript version of a programming language called Processing. Processing is a simple yet powerful development environment and Java-based language that’s designed to be straightforward to learn yet oriented towards the visual arts. P5 offers both the simplicity of Processing as well as the ubiquity of JavaScript.

Schedule

Date Class
Jan 11 00: Web Design with HTML & CSS
Jan 18 01: Introduction to JavaScript, p5 Fundamentals, and Drawing
Jan 25 02: Data & Logic
Feb 1 03: Animation
Feb 8 04: Object-Oriented Programming
Feb 15 05: Interaction
Feb 22 06: The Physics of Motion
Mar 1 07: Data Visualization & Information
Mar 8 Spring Break
Mar 15 08: Beyond the Canvas
Mar 22 09: Media as Signal
Mar 29 10: Final Project Prep
Apr 5 11: Final Presentations
Apr 12 12: Portfolio
Apr 19 Reading Day, Final Project Submission Due

Course Forum

This Google Group will be used for announcements and all other communications outside of class. Most importantly, you should use this group as a forum for help with assignments. You will all likely find yourselves stuck many times with problems or concepts you don’t fully understand. Relax -- this is a good sign. Programming is challenging, and getting stuck just means that you’re pushing the boundaries of your knowledge. I won’t be able to hold conventional office hours, so we’ll use this Google Group as a collective resource for troubleshooting. So if you’re stuck or have a question about the assignment, simply post your question to the group. Don’t be shy about posting; you’re probably not the only one who’s having the same issue. Once your question is answered, your classmates may be grateful to see it as a reference. The idea is that your questions will be answered not only by me, but also by your fellow classmates. This will reflect very positively on your participation grade.

Questions that are clear, descriptive and well-phrased yield good replies. There is an example of a well-posed question on the forum. As should go without saying, the forum is an extension of the classroom, and University conduct policies still apply. Practice good forum etiquette. Help each other out, no trolling, keep cat GIFs to a minimum, etc.

Grading

The overall grade you will earn in this course will be based on the following:

In-class exercises are graded for completion. For weekly assignments as well as the final assignment, half the grade is earned by demonstrating the technical requirements, while the other half is earned through efforts put towards a styling and aesthetic composition. If you have any questions about how your grade was determined, don’t hesitate to ask.

Time Management

Expect to spend a considerable amount of time outside of class working on your assignments. Learning to code requires a tremendous amount of time and dedication. Inexplicable errors can pop up at any moment; therefore, the sooner you can begin working on your assignment, the more time you'll have to deal with unexpected setbacks. I strongly encourage you to try to finish Exercises in class, and start on Assignments within a day of class. If you start with the content fresh in your mind, it’ll take you less time overall to finish the work.

Use of 3rd Party Code

You are expected to write original code for your weekly and final assignments. You must be able to explain the overall functionality of your program, as well as the utility of any line of code contained within. You are encouraged to consult faculty, students, or outside resources for help with coding, debugging and design. Outside resources may include code examples and third-party libraries found online. It's fine to use such resources to simplify your code, but you should show your comprehension of the third-party functionality by writing detailed comments in the code. Furthermore, it is your responsibility to ensure that any open source materials in your work are properly attributed. If there is substantial reason to believe that the work you've submitted is neither fully your own nor properly attributed to its original source, this will be reported to the Office of Student Conduct and Complaint Resolution.