Git Product home page Git Product logo

artg-2260-fall-2015's Introduction

ARTG 2260 PROGRAMMING BASICS

Northeastern University: Undergraduate College of Arts, Media & Design

Fall 2015, R6-930PM @ Ryder Hall Room 324
Office hours: Wed 4-6pm (virtual), Thursday 4-545pm (Ryder Hall 439 or 324), or by appointment
Course URL: https://github.com/davidnunez/ARTG-2260-Fall-2015

Instructor: David Nuñez (prounounced "noon-yez")

[email protected]


CATALOG DESCRIPTION

Exposes students to basic programming design for user interfaces. Offers students an opportunity to become familiar with the logical elements of programming languages.

Through lectures, hands-on in-class exercises, and modular projects, explores Web-based design and programming solutions for managing interaction and animation.

Prereq. Restricted to selected Art + Design majors and combined majors.

About this Course

Students will receive an introduction to programming as a medium for artistic expression. This is not the right class for those who are looking for a highly technical training to become a software engineer; instead, the course will present a view of coding as a creative process and toolkit. Through a series of weekly assignments both in and outside of class, you will become familiar with the process of programming in an art and design context. The primary objective is learning to think like a programmer while developing good coding, debugging, and documentation habits.

Our work will use the Javascript library, P5.JS (Processing in Javascript), as a means to explore the power of computational media. Through examination of code and data, relentless tinkering and play, and documentation and discussion about code, we will begin to explore the technical and expressive capabilities of the medium.

The class will culminate in a self-identified project that will allow you to explore a specific area of interest and provide an opportunity to synthesize your understanding of motion, time, information and interactivity as effective visual strategies in a web environment. Mistakes, pitfalls and frustrations will be expected and encouraged as students navigate this quickly changing medium. No prior programming experience is necessary or expected.

Prerequisites

There are no formal prerequisites for this course, and you'll pick up what you need along the way. However, I list prerequisites not as requirements, but as suggestions for background work outside of class. In other words, the more comfortable you are with these topics, the smoother this course will go for you.

  • Programming: No experience necessary. Seriously. However, if you already have tons of practice programming, please talk to me; we can tailor your time in this course to suit your interests.
  • Math: Computers "compute"; they basically are math machines. You will definitely be pulling in some of your math background (Algebra, Geometry, Vector Geometry, Trigonometry), especially as you start to do interesting graphics work. When the time comes, we'll go over some basics, but you should be ready to look up concepts.
  • Communication: There is going to be a heavy focus in this course on documentation and in-class presentations. You should be able to communicate your ideas effectively; for programming this is especially critical as you try to get people to understand your thinking. I think writers of all levels would benefit from the amazing resource of the Northeastern Writing Center (http://www.northeastern.edu/writingcenter/). A large percentage of your participation grade will come from in class speaking and presentations.
  • Web Technology: HTML and CSS, uploading files to a web server, social media publishing (ex. Tumblr)
  • General Computer Fluency: Opening up a command line, using a text editor, looking up stuff online via Google, Bing, etc (the most important skill of them all!)

Classroom Activities

This is a project-based, hybrid lecture/studio course. Class meetings will start each week with a presentation introducing the topic of the week and reviewing the programming exploration assigned the previous week. The balance of class time will consist of instructor-led hands-on exercises and/or independent work. Use this time wisely as it can save you enormous amounts of effort when you working on your assignments by yourself.

Be sure to bring your personal laptop, paper, and pencil. Obviously we will be coding and using the computer. But most projects will start with a brainstorming phase that will require pencil sketches so you can quickly iterate ideas.

Homework Activities

Learning to program requires serious dedication and a lot of time designing, coding, testing, debugging, and revising. Expect to spend a considerable amount of time outside of class working on your programs. Programming is time consuming and mysterious bugs can send you on a tailspin at any moment, thus, if you begin working on a program immediately after it's assigned, you'll have enough time to seek help in the event you get stuck.

START EARLY. START EARLY. START EARLY. START EARLY. START EARLY. When you are pulling the all-nighter before an assignment is due because you waited until then to start, remember, with a cold, lonely sense of regret, that I told you five times to START EARLY (six times now!). It is always better to submit non-functional code that includes pseudo-code than nothing at all.

You should plan for 4-6 hours of work, at least, outside of class. If assignments take you substantially more or less time than this, please do let me know.

Assignments

Programming explorations

You will be assigned weekly programing sketches, described in class, and due the following week at midnight before the next class. These explorations are designed to help you develop your programming skills and are not intended to yield completely polished programs; instead, they consist of building blocks which you might find yourself drawing upon when building your final project.

Every student will be assigned a Dropbox folder & code should be submitted there; each programming exploration assignment must include a brief written explanation of how the code works in the form of a README.txt and might include scans or snapshots of your sketches and drawings in addition to written explanations.

Previous week's assignments will be discussed in every class; students will be randomly asked to present their explorations.

Final project

The final project allows you to explore a specific area of interest, for example: interaction design, data visualization, generative design, animation, particle systems, physical computing etc. The deliverables of project proposal, functional specification, final code, and documentation will be discussed in class. You are expected to begin thinking about and preparing for the final project early in the semester and take advantage of office hours to discuss possible approaches to the final project and the best way to prepare for it.

Course Infrastructure

  • Course materials will be posted online at: https://github.com/davidnunez/ARTG-2260-Fall-2015 You should refer to this site often as I will update it throughout the semester with changes, lecture notes, assignment hints, and resources.

  • Students are expected to participate in our class google group at: https://groups.google.com/forum/#!forum/artg-2260-fall-2015

    When you have specific code questions, instead of emailing me directly, please post to the Google group. Most likely others have the same question. That way any of us can answer the question and others have a reference when confronted with a similar problem.

  • Google Hangout will be used for Virtual Office Hours and potential class meetings.

  • Dropbox will be used to submit assignments and to share materials.

  • Blackboard will be used for "official" class reports (ex. grades, attendance, etc).

Collaboration, Original Work, & Use of 3rd Party Source Code

For your code exploration assignments and project work you are expected to write original code. You must be able to explain how your program functions whenever asked. It is acceptable and encouraged to seek design, coding, and debugging assistance from other students, staff, or faculty in order to complete your work. Likewise, you are encouraged to help other students whenever possible. You are encouraged to study and learn from code examples. You may use third-party libraries to simplify coding, however, grading is based on the functionality of your original code along with the clarity of your comments and documentation. Whenever you incorporate third-party open source materials in your work you must properly attribute the works. Any student submitting work that can be reasonably believed to not be their own will be reported to the Office of Student Conduct and Complaint Resolution according to the Northeastern University Academic Integrity Policy.

CELL PHONES, TEXTING/INSTANT MESSAGING, EMAIL, SOCIAL MEDIA, & WEB BROWSING DURING CLASS

We have a simple policy concerning the above: no. It is a strict policy and will be enforced. There will be ample, periodic break times during class when you will be able to check your email, etc.

Food and Drink

Feel free to bring snacks to class, but if they are noisy, smelly, or otherwise disruptive you'll be asked to wait until a break time to eat them. Please make sure trash and crumbs are cleared out. Drinks in closed containers are permitted.

Attendance Policy

You are expected to attend every class. Out of respect for myself and your fellow classmates, you are expected to arrive on time for each class. I will intentionally wait 5 minutes after the class start time to begin the session to give people a couple extra minutes of buffer.

Three unexcused absences will result in a failing grade, as will chronic lateness. If you are going to be absent or late, please, at the very least, email me. Per University policy, excused absences must be documented. Except for extreme emergencies (you are in an ambulance), do not expect to receive an excused absence if you email me during or after class.

Grades

Within 14 days after an assignment is due, grades will be posted. If you have any questions about how your grade was determined, don't hesitate to make an appointment.

The overall grade you earn in this course will be based on the following, with adjustments made for attendance as described above:

  • 30% Active participation in presentation, discussion, and studio sessions
  • 30% Programming explorations
  • 40% Final project

The general criteria for grades is as follows:

  • A, A-, B+: Outstanding achievement, exceptional effort and work in all respects, clearly stands out in comparison to other work, all deliverables submitted on time and complete, programming solution is functional, aesthetically coherent and with style, well documented, and without any bugs
  • B, B-, C+: Good achievement, above average effort and work, all deliverables submitted on time and complete, programming solution is functional, aesthetically coherent, well documented, and without any serious bugs
  • C, C-, D+: Satisfactory achievement, average effort and work, some or all deliverables submitted on time, may or may not be complete, programming solution is for the most part functional, aesthetically coherent, documented, and without any catastrophic bugs
  • D, D-: Poor achievement, incomplete deliverables submitted late or on time, programming solution is not functional, and/or aesthetically incoherent and/or exhibits catastrophic bugs
  • F: Failure

Schedule

Topics Subject to Change

Date Topic
sept 10 Introduction, Getting Started, Drawing
sept 17 Interactivity Pt 1, Variables, Loops, Conditionals Exploration 01 Due (11:59pm)
sept 24 Interactivity Pt 2. Animation Exploration 02 Due (11:59pm)
oct 1 More about Functions, Arrays, Objects pt 1 Exploration 03 Due (11:59pm)
oct 8 Work at Home week
oct 15 Images / Sounds
oct 22 Lab Day Final Project Verbal Proposal in class
oct 29 Data / File I/O / Document Object Model Exploration 04 due (11:59pm)
nov 5 VIRTUAL CLASS: Video / Transformations / Mega-Review
nov 12 Data Visualization / APIs Exploration 05 due (11:59pm)
nov 19 Bonus Topics: ex. Mobile / Sockets / 3D Exploration 06 due, Written Final Project Proposal Due (11:59pm)
nov 26 THANKSGIVING BREAK
dec 3 Lab Day
dec 10 Lab Day
dec 14 FINALS WEEK (Final project Presentations) Class on 12/14, Project writeups due 12/17 (11:59pm)

LAPTOP AND SOFTWARE REQUIREMENTS

You must bring your laptop to all class meetings fully-charged and ready to roll. A student-owned laptop is necessary for all students to complete assignments and projects. Generally, Apple laptops are the standard for most majors in Art + Design, however, Windows computers are also suitable.

More details related to the laptop requirement at http://www.neu.edu/camd/artdesign/about/laptop- software-fonts/.

The importance of backing up files cannot be stressed enough. Apple laptops include Time Machine backup software, which is easy to use. Online storage services like DropBox and backup services such as BackBlaze should be considered.

If you don’t have a laptop and purchasing one now presents a hardship, or if your laptop is broken and out for repairs and you need one to use in class, contact Chris Franson, College of Arts, Media and Design Technical Director, with questions via email to [email protected] or call 617-373-7168.

Disabilities statement

Northeastern University strives to provide academic accommodations to students with documented disabilities. Accommodations are approved by the Disability Resource Center at 20 Dodge Hall. Students need to register with the DRC and bring their instructors a letter from that office stating approved accommodations. If you will be requesting accommodations in this class, please let the instructor know as soon as possible to avoid delays. Visit http://www.drc.neu.edu for more information.


Resources

Example works

References

artg-2260-fall-2015's People

Contributors

davidnunez avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.