The City College of New York, EDM program, Art 49540, Fall 2014
Instructor: Dan Phiffer
Course website: github.com/ccny-edm/web2
Wednesdays, 9:00-11:50 am
Compton-Goethals Hall 122
Student pages
At this point you know a little bit about how to build websites. Design for the Web 1 showed you HTML, CSS, maybe some web design principles. You might be thinking to yourself, "well, maybe I just need to learn a little bit of JavaScript, and then I'll pretty much know how to do all the web things."
Unfortunately, you would be wrong. There is so much more! We won't possibly get through it all, but we'll cover as much as will fit into the next 14 or so weeks.
Building websites is extremely complicated. You might encounter people who disregard HTML and CSS as not being "real" programming languages. They even say that about JavaScript and PHP—"oh, well those are just 'scripting' languages," they'll say, "nothing like C++ or FORTRAN."
I disagree with this view, I think that everything involving keyboards and screens is effectively programming. You program your Facebook by clicking on little thumb buttons. The hard part about designing and building websites is that things keep changing. Every year JavaScript slips closer to being the de facto programming language for everything and brings us closer, as developers, to the bare metal of a computer's hardware. The same is true with other web technologies too, they're all adapting and improving at breakneck speeds.
The main thing I want you to take away from this course is that the web is still not really figured out. The web doesn't know what it is yet, it's barely older than most of you. So that's our job; we are all part of a collective figuring out of things.
A lot has been figured out already, of course. It was much fuzzier when I got started tinkering with building websites in college. Things have clarified, debates have been settled. The documentation is better. We don't have to care quite as much about whether a browser is in "quirks mode," or if it falls in line with established web standards. We can reliably use more and more of the cool new stuff.
This course will provide an introduction to slightly more advanced programming for the web, and guide you through the process of building creative web-based projects. Primarily this means HTML and CSS, but we'll cover some very basic JavaScript as well. There's a whole other EDM class devoted to JavaScript, in this class we'll mainly limit ourselves to using frameworks.
A lot of our time will be spent learning how to write good code. At first we're going to be focusing a lot on process: how to use developer tools, how to read documentation. We'll be learning good habits as we go along, such as properly indenting code, and being aware of strategies we can use to debug when things have gone wrong. (Things always go wrong!) Ultimately you will build, and rebuild, a responseive online portfolio site you can use to promote your work.
This syllabus will change throughout the semester, so keep an eye on this page and [its change log](https://github.com/ccny-edm/web2/commits/master/README.md). Once you finish reading this, please send me an email at dan@phiffer.org with a link to your first week's assignment.
- Understand and use proper semantic markup in designing with HTML and CSS
- Develop advanced skills in design and development using HTML5 and CSS3 and related technologies such as jQuery
- Develop pages and sites that will work across a range of different devices and support a range of media
- Become fluent in the range of digital tools, used by artists in a web design context
- Design and develop an online portfolio that can be used to gain an internship or employment after graduation
The University has a published policy on academic integrity that may be found at http://www.ccny.cuny.edu/about/integrity.cfm.
Two unexcused absences will lead to a grade reduction. If you are late three times, it is equivalent to one absence.
Each week you'll be given an assignment to work on, due at the following class meeting. These assignments comprise the largest portion of your grade, and will be graded along three axes:
- Completeness: does your implementation actually do the thing it's supposed to?
- Clarity of code: is the code itself written consistently, using good conventions?
- Aesthetics: are you making something people will actually want to use?
Grades are given based on:
- Assignments: 30%
- Midterm: 25%
- Final: 25%
- Professionalism: 20% (participation in class, meeting deadlines, and attendance)
- Week 1: Developer tools
- Week 2: Mobile-first development
- Week 3: Typography and layout No class meeting September 24
- Week 4: HTML semantics
- Week 5: CSS animation/transitions
- Week 6: Responsive images
- Week 7: Lab day
- Week 8: Midterms
- Week 9: The future and near future
- Week 10: Parallax & scrolling effects
- Week 11: Frameworks, Modernizr, Sass
- Week 12: Using audio and video
- Week 13: To be determined
- Week 14: Lab day