Course Policies

Course Description

From the Catalog: This course will cover the creation of Web pages and sites using HTML, CSS, Javascript, jQuery, and graphical [sic] applications as well as the client and server architecture of the Internet and related web technologies. The creation and deployment of modern, standards-compliant web pages are addressed. Students create and deploy a Web site with multiple pages and cross-linked structures.

Extended Description: The course emphasizes a research-driven approach to web development that adheres to the relevant standards specifications governing the use of the web’s languages and protocols. All practices covered in this class give priority to accessibility and long-term use and sustainability. The course avoids entirely the lore and half-baked, quick-fix shortcuts that too often plague web development practice and instruction. Student work is organized around several major projects, completed both individually and in teams. All projects emphasize the course’s hands-on, theory-grounded approach to web development.

Course Outcomes

Students completing this course will learn to:

  • Recognize HTML, CSS, and JavaScript markup and code in a web page/application
  • Select the proper mark-up tags or code to achieve a particular result
  • Identify improperly used markup and code
  • Produce modern standards compliant web pages
  • Deploy web pages to a public server
  • Thoughtfully evaluate and adopt only the most standards-compliant documentation, libraries, and development techniques
  • Write valid, well-formed semantic HTML; error-free, backward- and forward-compatible CSS; and error-free, progressively enhanced JavaScript over HTML pages that continue to function in the absence of JavaScript
  • Effectively comment on and format source code for maximum readability
  • Track the development of a project over time and collaborate with others using version control

Course Objectives

At the conclusion of this course, successful students will be able to:

  • Explain the client and server architecture of the internet and related web technologies
  • Use a basic text editor and other software tools to create web pages using HTML, CSS, JavaScript, jQuery, and images
  • Deploy web pages to a Linux-based web server using sftp and more leading-edge methods, such as automated deploys integrated with version control
  • Understand the history and track the ongoing development of web standard specifications from the W3C, ISO, IETF, and other specifications-issuing groups
  • Research and argue for particular methods of web development that keep structure in HTML, design entirely in CSS, and progressively enhanced behavior in JavaScript
  • Engage in agile, iterative web development, supported by version control
  • Write useful, descriptive messages attached to granular commits in a version control system

Books and Technologies

Required Books

My policy for assigning books: they are all required in the edition indicated; the total retail pricetag for the entire course should be less than $100 (this one is $84 on the high end, assuming you opt for the electronic editions); and each book should be worthy of a place on your bookshelf or electronic device of choice long after the class has ended. My aim is to help you build your professional library, while also being sensitive to your bank account.

  • Haverbeke, M. Eloquent JavaScript, 2nd ed. No Starch Press, $31.95 (eBook), 9781593275846
  • Keith, J. & Andrew, R. HTML5 for Web Designers 2nd ed.. A Book Apart, $9 (eBook), 9781937557249
  • Marcotte, E. Responsive Web Design, 2nd ed. A Book Apart, $9 (eBook), 9781937557188
  • Santa Maria, J. On Web Typography. A Book Apart, $9 (eBook), 9781937557065
  • Swicegood, T. Pragmatic Version Control Using Git. Pragmatic Bookshelf, $25 (eBook), 9781934356159

Required Materials and Technologies

  • A blank, bound paper sketchbook of 100 pages or more
  • An email account that you check regularly
  • A Dropbox account
  • A browser- or cloud-based bookmarking scheme to aid your information management
  • A Basecamp account (invite will arrive via email); Basecamp, not Blackboard, will be where we coordinate our work and communication in- and outside of class.
  • A GitHub account (see note about anonymity in the course technology policy below)
  • The domain of your name (e.g., karlstolley.com belongs to the instructor) or, if privacy is a concern, the domain for your public alias
  • A personal computer, ideally Unix-based (Linux, BSD, OS X), with the following software installed:
    • A plain-text editor capable of syntax highlighting; set up to use UTF-8/Unicode character encoding and Unix-style line endings (LF), entabbed with spaces (two spaces per tab)
    • Firefox Developer Edition (free)
    • Git (free)
    • Node.js (free)
    • Image-editing software (such as the free and open-source GIMP)
    • As many different browsers as your operating system supports (e.g., Chrome, Opera, Firefox, Vivaldi; all free)

Grading Policy

  • Project 1: 15pts
  • Project 2: 25pts
  • Project 3: 25pts
  • Production Problems: 20pts
  • Participation: 15pts
  • TOTAL: 100pts

A = 90+ pts; B = 80-89pts; C = 70-79pts; D = 60-69pts; E =< 59 pts

Grading Criteria

  • A - Student has turned in all required components of a project, the work is exceptional in quality, and reflects the student’s dedication to adjusting the project to his or her own interests.
  • B - Student has turned in all required components of a project, and the work is exceptional for undergraduate work.
  • C - Student has turned in all required components of a project and submitted work that is acceptable as undergraduate level.
  • D - Student has turned in all required components of a project, but the work is below undergraduate level.
  • E - Student has not turned in all required components of a project.

Assignment Submission

All major projects for this course will be submitted via email to the instructor, at karl.stolley@gmail.com, as will your initial Production Problem (thereafter, the instructor will directly check your fork of the Production Problems repository for your work). Emails should not include email attachments, but rather URLs pointing to your project’s Git repository or, for certain assignments as indicated, Dropbox Share URLs. Examples will be demonstrated in class.

All HTML in project and Production Problem submissions must pass validation with the W3C HTML validator. Any work whose HTML does not validate will receive a zero-point, failing grade. In the unlikely event that you discover a validation error or warning that is a genuine bug in the validator, you must acknowledge that bug in the email that accompanies your project, and point to the relevant documentation, such as specifications or an existing reputable bug report, that your source is in fact correct. Get in the habit early of validating your HTML each time before you commit your work to Git.

Late Work

I do not accept late work. All work must be submitted before the date and time specified in each project description. Weekly work is due before the start of the first class meeting each week.

Participation

Your active participation in class and in online discussions and chats is required both for your own success in the class, and for the success of the class as a whole. I do not give reading quizzes, but I assign a lot of reading. And I expect you to be prepared to discuss that reading, especially on Basecamp.

Course Technology Policy

Technology is an essential part of learning and day-to-day living. It is therefore essential to this class. You are just as responsible for learning to command various technologies as for any other course content. Difficulty with technology is not an acceptable excuse for being unprepared for class or late with assignments.

If you are having trouble with technology or any other material covered in this course, it is your professional responsibility to do research beyond the resources and guidance provided in class and find supplemental materials that work for you. I also encourage all students to meet with me during my office hours or at another arranged time. I prefer that you contact me via Basecamp Ping, email, or GChat well in advance of assignment and project deadlines.

Note that coming to class with broken or malfunctioning work is far better than showing up with nothing but an excuse like “I just didn’t get it.” For most of the semester, it is expected that you’ll show up with broken work. When you’re learning, effort is more important than perfection. Just be sure to put in the effort early, and not the night before a project is due.

Also, I have asked you to sign up for a GitHub account for this class. Note that GitHub accounts are public, as are most social-type accounts. To protect your privacy you are certainly allowed to use a pseudonym/alias for GitHub and any other account. You may also push to repositories that you keep private, so long as you add the instructor as a collaborator, for grading purposes. At the same time, you might want to think about the high value of establishing GitHub and other accounts under your own name or professional alias. Public accounts where you conduct yourself professionally might well be an asset to your online presence, improving the search results that future schools or employers turn up when they look for you on Google and elsewhere.

Academic Integrity

As with any course at IIT, you are expected to uphold the Code of Academic Honesty as described in the IIT Student Handbook). All work for this course must be your own original effort, including print and digital page design and computer code. Summarizations and quotations of text, as well as any use of open-source code libraries and images not of your own making, should be clearly cited as legally and ethically warranted and rhetorically appropriate. Access, storage, dissemination, and other use of data from third-party sources must conform to the source’s terms of service, licensing, and other relevant legal and ethical restrictions.

If you are at all uncertain as to whether you are submitting work that in whole or in part may violate the Code of Academic Honesty, please contact me immediately and before the work is due. The consequences of academic dishonesty are severe. Any student who violates the Code of Academic Honesty will be subject to expulsion from this course with a failing grade, and I will report the student to the Dean of the School of Applied Technology, who may take additional disciplinary action, including reporting violations to the relevant offices of Undergraduate or Graduate Academic Affairs.

Special Needs Statement

I place a very high value on developing courses that are welcoming and accessible to all students. I will make additional reasonable accommodations for students with documented disabilities. In order to receive accommodations, students must obtain a letter of accommodation from the Center for Disability Resources. The Center for Disability Resources is located in IIT Tower, 3424 S. State Street - 1C3-2 (on the first floor). Contact the Center by telephone at 312-567-5744, by TDD at 312-567-5135, or via email at disabilities@iit.edu

Students who have any difficulty (either permanent or temporary) that might affect their ability to perform in class should contact me privately, either in person or electronically, at the start of the semester or as a documented difficulty arises. Methods, materials, or deadlines will be adapted as necessary to ensure equitable participation for all students.