Web Programming

Tuesdays 10:10–1:00 PM Hunter North, Rm 432 29 January–21 May 2019

Description

The Undergraduate Catalog describes this course as…

Advanced programming skills for website design. Dynamic content development explored through state of the art programming languages for the creation of interactive web sites. Students will create web pages that utilize the most current techniques in web development. The curriculum in this class emphasizes an integrated and creative approach to web programming, including detailed instruction and practice in the technical aspects. It is designed to give students a basic introduction to the tools and techniques used by web programmers.

Elaborating on the “most current techniques in web development,” this class will expose students to various modern-day, JavaScript-based web programming techniques. Using tools such as Node.js, WebRTC, Tone.js, Gulp, jQuery, and HTML5 Canvas, students will produce creative, interactive web sites revision-controlled with Git and GitHub.

Exposition-quality work created in this course can be showcased in the iArt Mix exhibition that is held every semester.

Prerequisite: Students need to have taken Web Production I (MEDP 28500) or demonstrate competency in HTML and CSS to enroll in this course.

Learning Outcomes

Upon successful completion of this course, students will understand...

Class Rules

Consuming food in class. There is no eating inside our classroom, either during class or while on break. The smell of food is very distracting, even offensive to some, and can linger in a room. Please eat before or after class, or outside the classroom during a break. Drinks in covered containers are allowed.

Succeeding in Class. Read carefully what is outlined in this document as a set of policies you can adopt to do well in this course.

Attendance. Attending lectures is crucial, for obvious reasons. Aside from emergencies, everyone should attend each session. If you are absent for any reason, you are responsible for all the material and announcements covered in the session you missed. Please do not ask me for notes, as I do not have any to share. Make one or more note-taking friends in class so you can share notes.

Lateness. If you come to class late and miss roll call at the beginning of class, I will not interrupt the lecture to update my roster from “absent” to “late.” It is your responsibility to come to me after class to let me know that were late. This has to be done in person and on the day you are late. Otherwise, the absence remains. Also, bear in mind that you are responsible for any announcements and/or material you missed before your late arrival to class.

Academic Integrity. Unless a project requires collaboration with one or more classmates, ensure all the work you submit for this course is your own. The College’s full disclosure on academic integrity is available here.

Sexual Misconduct and Violence. Any incident of sexual misconduct or violence on- and off-campus should be reported to NYPD and/or The College’s Public Safety Office on 212.772.4444. Students are further encouraged to contact The College’s Title IX Campus Coordinator, Dean John Rose (jtrose@hunter.cuny.edu | 212.650.3262) or Colleen Barry (colleen.barry@hunter.cuny.edu | 212.772.4534), and seek complimentary services through the Counseling and Wellness Services Office, Hunter East 1123. CUNY’s Policy on Sexual Misconduct is available here.

Software Requirements

All the required software for this course is free.

For Mac users, most of the installation process is automated using this script. Items below marked with a are not included in the installer script — they must be installed manually.

For Windows and Linux users, all the software listed below must be installed manually.

GitHub (Mac, Windows, and Linux)

All in-class examples, assignments, and help is done via GitHub. Once you’ve opened an account at GitHub, download the client for your computer here.

Text Editor (Mac, Windows, and Linux)

The code you write will require a text editor. And, although there are many on the market, such as Brackets (open source), Sublime Text (nagware), and Visual Studio Code (open source), Atom (open source) is the only editor supported in class.

Markdown Editor/Viewer (Mac, Windows, and Linux)

Although a text editor will suffice to view and edit Markdown files, some may want a full-featured program to deal with Markdown. We’ll use Typora in class.

Browsers (Mac and Windows)

Download all the browsers available at Browse Happy. Some of the students in my more in-depth classes might also want Chrome Canary, Safari Technology Preview, Firefox Developer Edition, and Firefox Nightly. I use Chrome and Firefox in class.

File Transfer Protocol (Mac, Windows, and Linux)

To transfer files between our local machines and a server, we’ll use FileZilla.

Fonts (Mac, Windows, and Linux)

In addition to the stock issue, monospace/fixed-width fonts included with your OS, give IBM Plex, Fira Mono, Ubuntu Mono, Anonymous Pro, or Inconsolata a try.

Command Line Interface

Mac and Linux users do not have to install a Command Line Interface, or CLI, because these operating systems already have The Terminal installed. Windows users, however, might want to install Cygwin.

Browser Extension for Accessibility Testing

Available for Chrome and Firefox, Axe is a browser extension that checks the accessibility of your web pages.

Web Development Environment Configuration Files

Once all the software above has been installed, go here and follow the instructions in the README.md file.

Students with Disabilities

Hunter College complies with the Americans with Disabilities Act of 1990 (ADA) and Section 504 of the Rehabilitation Act of 1975. All information from The College is available from http://catalog.hunter.cuny.edu/content.php?catoid=28&navoid=5728.

Contact

My email address is rvanegas at hunter dot cuny dot edu. However, I only communicate with students over email in emergency situations (death, divorce, personal tragedy, pet emergency, etc). For matters related to the course, see me before class, during the break, after class, or make an appointment.

Schedule

Instead of slides, in-class examples are posted to GitHub. Readings are posted under the Homework column.

Important Dates

WeekTopicsHomework
One
(29 Jan 2019)
  • Thorough breakdown of syllabus
  • Software installation
  • GitHub introduction
  • Command Line Interface, or CLI, introduction
Two
(5 Feb 2019)
  • Revisit the HTML tags discussed this week.
  • Revisit the CSS tags discussed this week.
  • Study and modify the Gulp tasks discussed and shared in class.
Three
(19 Feb 2019)
  • Revisit your understanding of HTML and CSS.
  • Implement the HTML and CSS warm-up project.
Four
(26 Feb 2019)
  • Start familiarizing yourself with Gulp.
Five
(5 Mar 2019)
  • Update the HTML/CSS warm-up project to use Gulp.
Six
(12 Mar 2019)
  • Convert the CSS from the HTML/CSS warm-up project to Sass.
  • Create dev and prod work flows in Gulp, testing your work flow with the HTML/CSS warm-up project.
Seven
(19 Mar 2019)
  • Revisit the JavaScript syntax from this week’s repo.
Eight
(26 Mar 2019)
  • TBA
Nine
(2 Apr 2019)
  • TBA
Ten
(9 Apr 2019)
  • TBA
Eleven
(16 Apr 2019)
  • TBA
Twelve
(30 Apr 2019)
  • TBA
Thirteen
(7 May 2019)
  • TBA
Fourteen
(14 May 2019)
Complete final project
Fifteen
(21 May 2019)
  • Final project presentations
Happy summer!

Projects

All projects will be available on GitHub.

Resources

Below is a short list of HTML, CSS, and JavaScript companion resources useful to the material we cover in class.