A project-based course on the integration of web applications, services, and infrastructure to scale.
Taught by Professor Karl Stolley,
Spring 2020.
Course Description
From the Catalog: In this project-based course, student teams will build an enterprise-grade
website and web infrastructure integrating server-side applications, databases, and client-side rich
internet applications as a solution to a defined business problem.
Extended Description: Students in this class will have the opportunity to conceive of web
applications as more than just standalone, siloed systems. The course treats web applications as
modular components that must integrate with complex infrastructures for computing, communication,
and data across and even outside of an organization. The course emphasizes methods and approaches
for designing and developing robust but loosely coupled systems, always in anticipation of any one
system’s inevitable failure in production. The course’s preferred methods will require students to
create and maintain extensive testing suites and other automated quality-assurance measures.
Students will also learn to practice chaos engineering, where systems are not only built and tested
but actively and intentionally stressed, attacked, and misused to expose additional points of
failure, ranging from clueless users to straight-up bad actors. Finally, students will immerse
themselves in some of the core values of the class: appropriately scoped features, progressive
enhancement, granular commits, semantic versioning, rigorous code reviews, automated builds,
continuous integration/continuous deployment, accurate code-adjacent documentation, and a healthy
suspicion and pessimistic view of frameworks, libraries, and other dependencies in production.
Course Outcomes
At the conclusion of this course, successful students will be able to:
Analyze complex computing problems and apply principles of computing and other relevant
disciplines to identify solutions
Assist in the creation, execution, and ongoing revision of an effective project plan
Design, implement, and evaluate a computing-based solution to meet a given set of computing
requirements
Communicate effectively in a variety of professional contexts
Function effectively as a member or leader of a team engaged in activities appropriate to
web-systems integration tasks
Identify and analyze user needs and take them into account in the selection, creation, evaluation
and administration of computer-based systems
Apply security principles and practices to maintain operations in the presence of risks and
threats
Course Objectives
Students completing this course will learn to:
Problem-solve and create innovative answers to provide technology solutions for the problems of
business, industry, government, non-profit organizations, and individuals.
Perform requirements analyses, design, and administration of computer and network-based systems
conforming to policy and best practices, and monitor and support continuing development of
relevant policy and best practices as appropriate.
Apply current technical and mathematical concepts and practices in the core information
technologies and recognize the need to engage in continuing professional development.
Books
Required
Keeling, Michael. Design It! From Programmer to Software Architect. Dallas, TX:
Pragmatic Bookshelf, 2017. $27 (eBook), ISBN 9781680502091
Nygard, Michael. Release It! Design and Deploy Production-Ready Software.
2nd ed. Dallas, TX: Pragmatic Bookshelf, 2015. $26 (ebook), ISBN 9781680502398
Materials
Required
A blank, bound sketchbook of 100 pages or more
A wide-tipped black marker, like a Sharpie
An email account that you check daily
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 during and outside of class.
A GitHub account (see note about anonymity in the course technology policy below)
A personal computer, Unix-based (Linux, BSD, macOS) or virtualized to run a Unix-like OS, with the
following software installed:
A plain-text editor capable of Ruby syntax highlighting and configured for UTF-8/Unicode
character encoding and Unix-style line endings (LF), entabbed with spaces (two spaces per tab)
Firefox Developer Edition (free)
Git (free)
Recommended
A tablet with a pencil/stylus, running a fully featured drawing or illustration program
Wide-tipped markers in a variety of colors (shopping hint: try a search for “professional art
markers” on Amazon)
Special Needs
I make it my very top priority to create 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 - 3F3-1 (third floor, in the northwest corner across from the
Student Health and Wellness Center). 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
successfully participate in and complete the class should contact me privately, either in person or
electronically, at the start of the semester or as a documented difficulty arises. I will adjust
methods, materials, or deadlines as necessary to ensure equitable participation for all students.
Mental Health and Well-Being
It’s no secret that attending school while managing and balancing other life concerns is incredibly
stressful and at times completely overwhelming. All of us, no matter how outwardly strong,
successful, or put-together we might appear, struggle sometimes. Illinois Tech provides all students
with a variety of free counseling services. I encourage all students to seek support and help from
the Counseling Services unit of the Student
Health and Wellness Center. Students facing a crisis situation, especially outside of the Counseling
Services unit’s operating hours, may wish to call the National Suicide Prevention
Lifeline at 1-800-273-8255. The Student Health and Wellness
Center maintains a list of other emergency
resources worth bookmarking.
Attendance & Participation
Your timely submission of work and active participation in the electronic discussions for this class
are required both for your own success and for the success of the class as a whole. I do not
squander students’ time with reading quizzes, but I do assign a lot of reading. And I expect you to
be prepared to discuss that reading on Basecamp by quoting or making direct references to each
week’s assigned reading. Additionally, you should be posting to Basecamp about your individual and
group progress, questions, and challenges as you complete the course’s major projects.
Students intending to earn an A for Participation should be posting substantively on Basecamp five
times or more per week, with contributions appearing multiple days per week, all semester long.
Students earning a B will post three to five times, and students earning a C will post two times,
every week. Fewer than an average of two discussion contributions per week will result in a failing
Participation grade.
Assignment Submission
All major projects for this course will be submitted via Basecamp for instructor and peer feedback.
Certain deliverables, such as critiques of team members, will be submitted separately via email. See
each major project’s description for exact submission instructions.
Late Work
I do not accept late work. All work must be submitted before the date and time specified in each
project description. The deadlines in this class, including for draft work, are no different
from exam dates in classes that have exams. I expect you to treat them accordingly. If you
believe you are in danger of missing a deadline, be sure to contact me well ahead of time to see if
there are any options available to you. I will not negotiate with you on deadlines that are hours
away or have already passed.
Grading Policy
ITMD 467 Students
Project 1: 10 pts
Project 2: 20 pts
Project 3: 25 pts
Project 4: 15 pts
Discussion Participation: 30 pts
TOTAL: 100 pts
A = 90+ pts; B = 80-89 pts; C = 70-79 pts; D = 60-69 pts; E ≤ 59 pts
ITMD 567 Students
Project 1: 10 pts
Project 2: 20 pts
Project 3: 25 pts
Project 4: 15 pts
Discussion Participation: 30 pts
TOTAL: 100 pts
A = 90+ pts; B = 80-89 pts; C = 70-79 pts; E ≤ 69 pts
Grading Criteria
ITMD 467 Students
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.
ITMD 567 Students
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 submitted work that is
acceptable as graduate level.
C - Student has turned in all required components of a project, but the work is below graduate
level.
E - Student has not turned in all required components of a project.
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 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.
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 Information Technology and Management Department, who may take
additional disciplinary action, including reporting violations to the relevant offices of
Undergraduate or Graduate Academic Affairs.