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 exchange 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

ITMD 467 Students

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

ITMD 567 Students

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
  • Manage 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, derived from thoroughly investigated problems
  • Communicate effectively in a variety of professional contexts
  • Function effectively as a member and leader of a team engaged in activities appropriate to web-systems integration tasks
  • Identify, analyze, and assess user needs and take them into account in the selection, creation, evaluation, and administration of computer-based systems
  • Assess, apply, and continually monitor security principles and practices used to maintain operations in the presence of risks and threats

Course Objectives

ITMD 467 Students

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.
  • Design and administer 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 core information technologies and recognize the need to engage in continuing professional development.

ITMD 567 Students

Students completing this course will learn to:

  • Explore problems and develop actionable 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.
  • Investigate and apply current technical and mathematical concepts and practices in core information technologies and recognize the need to engage in continuing professional development.
  • Develop familiarity with the academic research and scholarship surrounding web design and development.

Books

Required

  • Amundsen, Mike. Design and Build Great Web APIs: Robust, Reliable, and Resilient. Dallas, TX: Pragmatic Bookshelf, 2020. $25 (eBook), ISBN 9781680506808
  • 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 JavaScript 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)
  • Virtually hosted server space through Linode or another provider (this may be required later in the course; there’s no need to purchase before then—it’s just something to budget for to the tune of about $10 per month)

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 difficulty arises. That includes difficulties with housing, internet access, and anything that otherwise compromises your sense of safety, security, and support—especially if it impacts your ability to complete this class. Please reach out.

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. And that’s when there’s not a global pandemic raging, disrupting all aspects of our lives. 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.

Illinois Tech’s Policy on Sexual Harassment and Discrimination

Illinois Tech prohibits all sexual harassment, sexual misconduct, and gender discrimination by any member of our community. This includes harassment among students, staff, or faculty. Sexual harassment of a student by a faculty member or sexual harassment of an employee by a supervisor is particularly serious. Such conduct may easily create an intimidating, hostile, or offensive environment.

Illinois Tech encourages anyone experiencing sexual harassment or sexual misconduct to speak with the Office of Title IX Compliance for information on support options and the resolution process.

You can report sexual harassment electronically at iit.edu/incidentreport, which may be completed anonymously. You may additionally report by contacting the Title IX Coordinator, Virginia Foster at foster@iit.edu, or the Deputy Title IX Coordinator, Esther Espeland at eespeland@iit.edu.

For confidential support, you may reach Illinois Tech’s Confidential Advisor at 773-907-1062. You can also contact a licensed practitioner in Illinois Tech’s Student Health and Wellness Center at student.health@iit.edu or 312-567-7550

For a comprehensive list of resources regarding counseling services, medical assistance, legal assistance and visa and immigration services, you can visit the Office of Title IX Compliance website at https://www.iit.edu/title-ix/resources.

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 the Discussion & Announcements 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. (While you are certainly encouraged to post to the Social Hour Basecamp, that activity does not affect your participation grade.)

Attendance at live class meetings does not impact your participation grade, but I do hope that everyone who is able joins those meetings.

Class Meeting Expectations and Etiquette

If you are able to attend our class meetings on Google Meet, here are just a few simple guidelines:

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

All work must be submitted before the date and time specified in each project description. Weekly work, including reading discussions, is due by the start of the first class meeting each week. The deadlines in this class, including for draft work, are no different from exam dates in classes that have exams. I expect you to do your best to treat them accordingly. If you believe you are in danger of missing a deadline, be sure to contact me well ahead of time so we can work something out.

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
  • Project 5: 10 pts
  • Discussion Participation: 20 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 for incomplete 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. I want everyone in here to succeed, but each of you has to take the first step and reach out for help.

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. That being said, 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 Information Technology and Management Department, who may take additional disciplinary action, including reporting violations to the relevant offices of Undergraduate or Graduate Academic Affairs.