Policies

Course Description

A production-intensive course in applied theory and practice of developing web-based applications, emphasizing interface and experience design using HTML, CSS, JavaScript and the DOM; and backend development using Ruby on Rails. Students will learn agile, modular development techniques grounded in open-source technologies, including Linux, version control (Git), SCSS, CoffeeScript, and Ruby on Rails. Note: students should take COM 330/530: Standards-Based Web Design or have a solid command of Web standards (especially HTML and CSS) prior to enrolling in this course.

Course Goals

Students successfully completing this course will:

  • Learn and employ agile development methods for front- and back-end design of web applications
  • Become familiar with Ruby on Rails and model-view-controller (MVC) architecture
  • Develop responsive user interfaces in emerging web standards, including HTML5 and CSS3
  • Develop foundations in using CoffeeScript/JavaScript for manipulating the Document Object Model (DOM)
  • Connect course content to principles and practices in technical communication, information architecture, and technology and humanities
  • Apply course concepts and adjust/extend course projects to fit your own academic and professional interests.

Books and Technologies

Required Books

  • Pine, C. Learn to Program. 2nd ed. Pragmatic Bookshelf. $18.50 (eBook), 9781934356364
  • Ruby, Sam and David Bryant Copeland with Dave Thomas. Agile Web Development with Rails 5.1. Pragmatic Bookshelf. $28.00 (eBook). ISBN 9781680502510

My policy for assigning books: Required Books are all required in the edition indicated. Particularly with the Rails book, you will be hopelessly lost if you read an older edition. The total retail pricetag for the entire course should be less than $100 (this one is $46.50 on the high end, assuming you opt for the electronic formats), and each book should be worthy of a place on your bookshelf or electronic device of choice long after the class has ended.

I want to help you build your professional library while also being sensitive to your personal finances. While many things about the course calendar may change, the reading schedule will not. I invite you to hold off on purchasing specific books until closer to the time that we read them.

Required Materials and Technologies

  • A blank, bound paper sketchbook of 100 pages or more
  • An email account that you check regularly
  • A Dropbox, Google Drive, or other cloud-storage 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)
  • A Unix-based personal computer (Linux, BSD, MacOS); do not use Windows in this class. If you’re unwilling to install any operating system other than Windows, I’d urge you to drop this class now. You’re going to have a very bad time.
  • All of the following free/open-source software:
    • The Ruby programming language, v. 2.6.x, via rbenv, with the latest Rails 5.2.x gem and all of its necessary dependencies
    • A plain-text editor capable of syntax highlighting; set up to use UTF-8/Unicode character encoding and Unix-style line endings (LF). Atom works great (free).
    • Firefox Developer Edition (free)
    • Git (free)
    • Node.js (free)

Grading Policy: COM 331

  • Project 1: 25pts
  • Project 2: 25pts
  • Project 3: 10pts
  • Book Repos: 10pts
  • Participation: 30pts
  • 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.

Grading Policy: COM 531

  • Project 1: 25pts
  • Project 2: 25pts
  • Project 3: 10pts
  • Project 4: 10pts
  • Book Repos: 10pts
  • Participation: 20pts
  • TOTAL: 100pts

A = 90+ pts; B = 80-89pts; C = 70-79pts; E =< 69 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 graduate work.
  • C - Student has turned in all required components of a project and submitted work that is acceptable as graduate 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 Draft work will be posted to Basecamp for feedback from the instructor and others in the class. Emails should never include email attachments, but rather GitHub URLs pointing to either your project’s Git repository or a particular file or commit that is causing you problems. Examples will be demonstrated in class.

Late Work

I do not accept late work. All work must be submitted before the date and time specified in each project description. My deadlines, including for draft work, are no different from exam dates in classes that have exams. Treat deadlines accordingly. Weekly work, such as your commits to book repos, is due before the start of the first class meeting each week.

Participation

Your active participation in class and in Basecamp discussions 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, including on Basecamp.

A participation grade of A means you’re regularly posting to Basecamp 3 or more times per week, and that your posts include good questions. A grade of B means you’re posting 1-2 times a week. A C is a post per week, and anything less than that is a failing, zero grade for participation.

Book Repos

10 points of your grade is based on you completing repositories where you write the complete code examples for each of the two assigned books in class. Write frequent commits, study the code, and use Git branches to try your hand at any end-of-chapter enrichment exercises. Be sure to reference specific code examples from your repository as part of all reading discussions on Basecamp.

Course Technology Policy

Technology is an essential part of learning and day-to-day living, so it’s unsurprising that it is also 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 contact me during my office hours or at another arranged time. I prefer that you contact me via Basecamp Ping or email 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 Chair of the Department of Humanities, 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.