Course Syllabus

Instructor: Wes Modes
TAs: Isola Tong, Nicki Duval
Term: Spring 2022
Lectures: Tue & Thu 8 - 9:35am
Location: Tue & Thu 8 - 9:35am, J. Baskin 152
Sections:

  • A: MW 8:00 - 9:05 am, Soc Sci 2 159 (Isola Tong)
  • B: MW 9:20 - 1:25 am, Soc Sci 2 159 (Isola Tong)
  • C: MW 10:40-11:45 am, Rachel Carson 250 (Nicki Duval)
  • D: MW 9:20--10:25 am, Rachel Carson 252 (Nicki Duval)

Labs: After each class session, due before next class
Quizzes: Occasional surprise quizzes
Final: Tue, June 7 8:00–11:00am, Team project presentation
Weekly: 2 lectures, 2 Sections, coding homework, occasional short quizzes
Office: Tue 12pm - 1:30pm  (reserve a slot)

Course Description

An introduction to both programming and web markup languages, designed to help students code their creative projects. Programming is all about methodical problem solving and learning to see the world differently. These skills will serve you well in many things you do. As this is a 5-unit course, expect to spend at least 15 hours a week on lecture, sections, and assignments.

Course Learning Outcomes

The course will consist of lectures and demonstrations followed by in-class and homework exercises focusing on mastering skills with modern web scripting concepts including HTML, CSS, JavaScript, and jQuery.

Upon successful completion of this course, students will be able to: 

  • Read and write advanced HTML5 and CSS.
  • Implement open source CSS frameworks.
  • Write JavaScript code using variables, arrays, objects, functions and control structures.
  • Write jQuery scripts to update the content and the style of web pages.
  • Create interactive forms and dynamic web pages.
  • Find and read open source JavaScript libraries that can be used to solve problems.

Lecture

Lectures are twice weekly and are 1 hour and 45 minutes long. This is where new ideas and concepts will be introduced. You will be expected to be intellectually present and involved, take notes and be ready to apply these concepts to your homework, projects, and section discussions.

Sections

You will be attending two hour long sections a week. TAs for this class are experienced programmers and talented instructors. Sections are where you will receive further detailed instruction, and get help in areas in which you need help. If you fall behind, it will be your responsibility to schedule time with your section leaders to help you.

Attendance

Only through continuous practice and discussion and problem-solving will you learn the skill of programming, so attendance in both lecture and sections is mandatory. 

Course Requirements

Required Texts/Readings

No textbook is required.  Required readings will be distributed via Canvas.

Other Outside Resources

Students struggling with the newness of the material, or those wanting to expand their knowledge beyond the course, are encouraged to check out free coding tutorials such as:

Electronic Devices

You are encouraged to use your electronic devices in class for note-taking, research, or experimentation as long as these devices are not a distraction to you or your classmates. If you are not paying careful attention in class, you will not pass it and since the class is participatory, any distractions will be embarrassing when I call on you. If your devices become a distraction, I will ask you to put it away.

Required Stuff

You'll need:

  • Laptop for lecture and section. A tablet may work if you have an external keyboard.
  • Chrome Web Browser (available free)
  • Atom Text Editor to create your code files (available free)
  • GitHub Desktop to upload your files to GitHub and your website (available free)

Course Requirements and Assignments

Expect to spend roughly 6 hours​ a week outside class working on this course. This course will be organized as follows:

  1. Each day we'll have a lecture during which you'll follow along on your machine, followed by a lab about the lecture. The lab will give you working experience with the concepts we're covering. 
  2. Scattered throughout the course we'll have occasional readings and quizzes.
  3. Near the end of term, you'll be working primarily on a midterm and final project with your team of 3 to 5 students.

Learning programming is a difficult challenge and requires consistent practice. Therefore, attendance is mandatory. 

Labs

Labs will be assigned after each lecture and will be due an hour before the next class session Your completed labs will be submitted as a professional-quality PDF summarizing your efforts, showing captioned screenshots of your code and the results of your work.

All late labs will have a deduction of one letter grade per day late. Complete it early so if you encounter problems or surprises you have time to get help. A good guideline is that your homework should generally be started by the time you go to your first section of the week and nearly complete by the second lecture.

The labs will  often be open-ended allowing you to exercise your creativity. You are welcome to build on a single project with each new homework assignment.

Projects

Two team projects will be completed in the course, due at the mid-term and final periods. These substantive stand-alone projects will leverage what you've learned in class and encourage you go beyond. As well as effective coding, creativity, style, and playfulness will be well-rewarded.

Final

The final exam will consist of presentations by teams of 3 to 5 students about your final projects . The team will present their project in the final exam period.

Grading Information

Students are responsible for all of the material presented in class. All assignments must be presented on the due date. Late assignments will be accepted no more than 2 weeks after the due date, but with a letter grade reduction and no class critique. Students are expected to meet with the instructor to review progress and discuss individual approaches.

Grading Criteria

All assignments are graded considering the following criteria:

  • Does it work? Is it complete and finished?
  • Does the project use many of the JavaScript elements we learned?
  • Is the code elegant, well-structured, and well-commented?
  • Is the presentation beautiful and complete?
  • Are you challenging yourself and your team? Did you go beyond what we learned in the class?
  • Did you put extraordinary effort and creativity into the assignment or project? 

Assignment Percentages for total grade

  • Class Participation (10%) - Students are expected to actively participate fully in class discussion, brainstorming, and problem solving. Attendance is a part of this evaluation. Initiative, communication, and collaboration will be valuable skills. This includes quizzes.
  • Assignments (60%) - Students are expected to do the assigned homework. You are evaluated on your understanding of the class concepts and your effort in completing assignments.
  • Group Projects (30%) - Students will work together to solve problems and accomplish tasks in organizing, preparing and presenting the archive, as well as individual projects. These tasks will have clear milestones and goals.

Important Grading Note

If you show up and do all the work adequately, you will earn a B grade (good) in this class. To earn an A grade, you must do consistently excellent work demonstrating hard work, creativity, collaboration, and expertise. This allows you to get an honest evaluation in this class, and rewards those who are willing to work harder and put more energy and creativity into their work.

A

93-100%

Extraordinarily high achievement. Unusually complete command of the course content; outstanding level of scholarship

A-

90-92%

Excellent achievement. Very thorough command of the course content; very high level of scholarship

B+

87-89%

Very good achievement. Significantly above average understanding of materials and thorough command of course material

B

83-86%

Good achievement. Signifies mastery and fulfillment of all course requirements; Solid, acceptable performance

B-

80-82%

Fair achievement. Acceptable performance on most, but not all, aspects of the course

C+

77-79%

Not wholly satisfactory achievement. Marginal performance on some aspects of the course

C

70-76%

Marginal achievement. Minimally acceptable performance on most aspects of the course

D

60-69%

Unacceptable work. Little or no command of most aspects of the course

F

< 70%

Unacceptable work. Little or no command of the course

Disputed Grades

If you have questions about the grading of your work, please make arrangements to meet with your TA. If your questions are not resolved, please see me in office hours. If the matter still remains unresolved, I will advise you on further options.

Classroom Expectations

Here are some of the expectations I have for your participation in Programming for the Arts lecture and sections.

Attendance

Attendance at lectures is required. The reason for this is simple: Mastering programming requires consistent experimentation and practice. While the instructor understands that things may come up, every lecture you miss regardless of the reason counts as an absence. You will be required to mark yourself present at the beginning of each class. If you forget, it will be marked as an absence. Students are expected to show up to class on time and conduct themselves professionally. 

Devices

You are welcome to use your electronic devices in class for note taking, research, or experimentation. Please do not text, email, web surf, or use social media outside of class context. If these become a distraction for you or your peers, their use will be restricted.

Participation

The instructor values your skills, experience, and interests. Your views are important and we want to hear them. Involvement in the readings, discussions, critiques, class collaborations, and final presentations are part of your participation grade and critical for each student and the class to thrive.

Collaboration and Respect

We encourage collaboration and building a community of collaborators. Don't be afraid to ask for and offer help! Explaining what you have learned to fellow students can help solidify what you've learned. This class requires a significant amount of student collaboration, both in class and online. Discussions should be civil and based on mutual respect.

Students doing collaborative projects must plan out and document what their roles and accomplishments are in the project so as to be graded individually in terms of both their technical and conceptual skills. The instructor must approve all collaborations before the assignment is due. 

Communication

Be honest and clear about where you are at, what you know and need to know, and what you've accomplished (or not). Ask for what you need to succeed. Bring up issues before they become problems, and allow us all to work together as a team to solve them.

Support

We each bring different strengths and weaknesses. Working collaboratively, we support and teach each other in areas where we are not as strong.

Consultation

Students are encouraged to consult with the instructors whenever necessary throughout the semester. Short consultations are best handled by phone or email. Consultation will be more productive if you prepare a brief written agenda outlining the issues you want to discuss.

Other Important Information

Announcements and Communication

Announcements on Canvas and on Slack will be used to announce required information to the class so you should check that regularly. Email is the best way to contact your instructor if you have questions. If you have questions, observations, or references that might be of interest to the entire class, please use the class Slack channel.

A Note about Plagiarism

This is a technical course, so what constitutes plagiarism in this course is different than others. You are welcome to borrow limited code from others, including classmates and online sources. This is considered okay within the industry. However, you MUST acknowledge any sources from which you borrow code within the code (as comments) and in the documentation. Attribution like “Fixed my sidebar thanks to Tim Berners-Lee (tberner@ucsc.edu),” or “CSS vertical centering solution from stackoverflow#4785871” helps us understand your solution, but is also common practice in open-source communities and is considered good practice. If you borrow code, it is expected that you understand the code you borrowed. The instructor will be running scripts to compare code to your classmates. If the instructor sees wholesale copying of code, they will treat it as plagiarism and both students will receive a zero.

Disability Accommodation

UC SANTA CRUZ is committed to creating an academic environment that supports its diverse student body. If you are a student with a disability who requires accommodations to achieve equal access in this course, please submit your Accommodation Authorization Letter from the Disability Resource Center (DRC) to me via email, preferably within the first two weeks of the quarter. At this time, I would also like us to discuss ways we can ensure your full participation in the course. I encourage all students who may benefit from learning more about DRC services to contact DRC by email at drc@ucsc.edu.

Grade Disputes

If you have questions about the grading of your work, please make arrangements to meet with your teaching assistant (TA) if applicable. If your questions are not resolved, please email me.

Academic Misconduct

Academic misconduct includes but is not limited to cheating, fabrication, plagiarism, or facilitating academic dishonesty. Acts of academic misconduct during the course, including plagiarism, can and usually do result in failure of the course, at the sole discretion of the instructor of record. Your case will be reported to the College Provost as per the Academic Integrity guidelines found on the web at: https://www.ue.ucsc.edu/academic_misconduct

Course Surveys

Course Surveys (previously called evaluations) for faculty will be available online for students to complete towards the end of quarter. You will be sent emails to your @ucsc.edu email from the course survey system to complete your evaluations online for all of your classes. Please be thoughtful in your responses, as we take these evaluations seriously. Course surveys help faculty consider ways to improve instruction and are completely confidential.

Anti-Discrimination Policy

TITLE IX prohibits gender discrimination, including sexual harassment, domestic and dating violence, sexual assault, and stalking. If you have experienced sexual harassment or sexual violence, you can receive confidential support and advocacy at the Campus Advocacy Resources & Education (CARE) Office by calling (831) 502-2273. In addition, Counseling & Psychological Services (CAPS) can provide confidential, counseling support, (831) 459-2628. You can also report gender discrimination directly to the University’s Title IX Office, (831) 459-2462. Reports to law enforcement can be made to UCPD, (831) 459-2231 ext. 1. For emergencies call 911. Faculty and Teaching Assistants are required under the UC Policy on Sexual Violence and Sexual Harassment to inform the Title IX Office should they become aware that you or any other student has experienced sexual violence or sexual harassment.

Resources for Students

The art department has a list of many resources on campus available to students. Please take a look at these to see what is available for you.  https://art.ucsc.edu/links-to-student-resources

Schedule

Class General Topic Activity Assignment
1 Getting Started, Net.Art, Digital Art, and New Media Lecture: Intro to the Course, Digital & New Media
How This Class is Run
A note about grading
Join Class Slack Channel
Add photo of your face to Canvas
Join Class Slack Channel and post a brief introduction and photo
Read Course Syllabus
Install software (Atom, Github Desktop, Chrome)
Lab 1 Getting Started
Reading 1: Mark Tribe "Defining New Media Art"
2 Intro to the Modern Web, InstallFest Lecture: Intro to the Modern Web
Quiz 0 - Introduction
InstallFest!
Create Repository with GitHub and Publish Website
Lab 1 Getting Started
Reading 1: Mark Tribe "Defining New Media Art"
3 Intro to HTML Lecture: Intro to HTML Lab 2: HTML & CSS Starter
4 Intro to CSS Lecture: Intro to CSS Lab 2: HTML & CSS Starter
Project Group Registration and Reading 2: Effective Teams
5 File Structures and File Transfer Lecture: File Structures and File Transfer Lab 3: File Structure and File Transfer
6 Pseudocoding, Problem-solving, and Thinking Like a Programmer Lecture: Pseudocoding, Problem-solving, and Thinking Like a Programmer Lab 4: Pseudocoding and Problem-solving
7 Basic Data Types & Variables Lecture: Basic Data Types & Variables Lab 5: Data Types and Variables
Organize Your Project Group
Reading 3: Brainstorming Tools
8 Arrays and Objects Lecture: Arrays and Objects Lab 6: Arrays and Objects
9 Functions, Parameters, Arguments, and Return Values Lecture: Functions, Parameters, Arguments, and Return Values Lab 7: Functions
10 Anon Functions, and Callbacks Lecture: Anon Functions, and Callbacks Lab 8: Anon Functions and Callbacks
Reading 4: Guide to Paper Prototyping
11 Javascript For the Web and the Document Object Model Lecture: Javascript For the Web and the Document Object Model Lab 9: JavaScript for the Web
12 Javascript events and forms Lecture: Javascript events and forms Lab 10: JavaScript Events and Forms
Team Project Paper Prototype
13 Libraries and jQuery Lecture: Libraries and jQuery Lab 11: Libraries & jQuery
14 Conditionals Lecture: Conditionals Lab 12: Conditionals
15 Loops Lecture: Loops Lab 13: Loops
16 Debugging Tools and Strategies Lecture: Debugging Tools and Strategies Lab 14: Debugging Tools & Strategies
Team Project Working Prototype
Project Team Self Evaluation
17 AJAX Lecture: AJAX Lab 15: AJAX
18 JSON, APIs Lecture: JSON, APIs Lab 16: JSON and APIs
19 Production and Consultation Production and Consultation Lab 17: You Tell Me
Final Team Project
20 Final Project Production Final Project Production Final Team Project
Final Presentations
Final Project Presentations Final Project Presentations

Course Summary:

Date Details Due