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. 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.
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
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.
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, running a Unix-based operating system, such as Linux, BSD, or
MacOS. A Linux running virtualized on Windows is fine, but Windows itself is not—you
will need access to a variety of dev tools that are hard to come by on Windows. Your
computer should also have the following software installed:
- A plain-text editor capable of 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)
- 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)
- 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)
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)
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
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 Compliance
Coordinator, Virginia Foster, at foster@iit.edu, or
the Deputy Title IX Compliance Coordinator, Molly Fleck, at mfleck2@iit.edu.
For
confidential support and reporting, you may reach Illinois Tech’s Confidential
Advisor (Resilience) 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.
Class Meeting Expectations and Etiquette
In-Person Meetings
If you are able to attend our class meetings on the Mies Campus, here are some
important but simple guidelines:
-
In keeping with the University’s
masking policy, everyone in the classroom, including all students and the
instructor, must wear a mask, regardless of vaccination status. Changes to
University policy will be reflected here.
-
If you are sick or even just think you’re sick, stay home. You can
watch class live via Google Meet or later on YouTube. Stay home. There is no penalty
for missing an in-person class, and definitely no reward for trying to be heroic and
showing up if you’re unwell. Seriously, stay home. Your health—and the health of
those around you—is the top priority. So again: stay home. But do check in with me so
that you keep on track as you are able.
Online Meetings
If you are able to attend our class meetings via Google Meet, or if our class has any
online-only meetings, here are just a few simple guidelines:
-
You do not have to broadcast your camera. For any reason. The choice
is yours. It’s helpful for me to be able to glance at faces and see how at least some
of you are reacting, but it’s totally up to you whether to broadcast your camera or
not.
-
Please mute your mic if you’re not speaking. Self-explanatory. Muted
mics cut down on ambient noise and occasional echo that can be real problems for
people who have hearing difficulties. I encourage you to turn on the live closed
captioning when we’re in Google Meet, too.
-
Neither you nor our Meet room will appear in class videos. I will
always teach class with our Google Meet room on a second screen that will not be
recorded. If you opt to speak, your voice may be in the video, of course. But you
also have the option of messaging in the Meet room by text; I will keep an eye on
that as class is going, in case you wish to raise questions, drop a corny joke, or
ask for clarification that way.
-
If my Internet connection fails, I will still record and post class.
That kind of thing does happen: sometimes before class, sometimes during. If I’ve got
Internet troubles, I’ll try post to Basecamp somehow and let everyone know what’s
going on.
-
All class meetings will be posted to YouTube. You’ll be able to
watch class on your own time if you’re unable to attend the live class. I invite
students to contribute markers to index the videos on YouTube, too, to help anyone
who needs to go back and find and rewatch something. Again, I will take great care
not to accidentally record our chat room. I will share a playlist link for all of our
videos on Basecamp and on the course website.
ITMD 467 Students
- Project 1: 10 pts
- Project 2: 20 pts
- Project 3: 25 pts
- Project 4: 15 pts
- Basecamp Participation: 30 total points, tallied at three Checkpoints:
- Checkpoint One (~ Week Six): 9 points (30% of 30 total points)
- Checkpoint Two (~ Week Ten): 12 points (40% of 30 total points)
- Checkpoint Three (~ Week Fifteen): 9 points (30% of 30 total points)
- TOTAL: 100 points
Lowest A, 90 points; B, 80 points; C, 70 points; D, 60 points.
ITMD 567 Students
- Project 1: 10 pts
- Project 2: 20 pts
- Project 3: 25 pts
- Project 4: 15 pts
- Project 5: 10 pts
- Basecamp Participation: 20 total points, tallied at three Checkpoints:
- Checkpoint One (~ Week Six): 6 points (30% of 20 total points)
- Checkpoint Two (~ Week Ten): 8 points (40% of 20 total points)
- Checkpoint Three (~ Week Fifteen): 6 points (30% of 20 total points)
- TOTAL: 100 points
Lowest A, 90 points; B, 80 points; C, 70 points.
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, or student has
not turned in work, including drafts, by the deadline without contacting the instructor
ahead of time.
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, or student has
not turned in work, including drafts, by the deadline without contacting the instructor
ahead of time.
Technology is an essential part of this class. You are just as responsible for learning
to configure, command, and troubleshoot various technologies as for any other course
content. Difficulty with technology is not an acceptable excuse for being unprepared for
class or for submitting late, incomplete, or substandard work.
If you are having trouble with technology or any other material covered in this course,
it is your professional responsibility to find supplemental materials to troubleshoot and
solve your problems. Ask questions on the weekly Q&A threads on Basecamp, too. Just
make use of the search feature on Basecamp first: it’s entirely possible that someone has
experienced your same difficulty and gotten an answer from someone else in the class or
the instructor. Don’t earn yourself a reputation for asking the same question that’s
already been asked and answered. And yes: you absolutely should monitor the Q&A
threads. You’ll find students asking questions that might not have even occurred to you.
You are discouraged in the strongest possible terms from using Windows in this class.
Running Windows in a development class is like showing up to a cooking class with
an Easy-Bake Oven. Windows is
not suited to professional development, other than perhaps developing Windows
applications. This class uses professional-grade, POSIX-compliant environments and tools.
If your operating system doesn’t support something as basic and ancient as the
ls
command, you need to get an
operating system that does. Immediately.
If you think you know better and opt to run Windows, you are 100% on your own when it
comes to getting the required tools and technologies to run on your machine. And even if
you’re successful at that, know that by continuing to use Windows, you are hamstringing
your education and growth as a developer—as well as your future career prospects.
Dual-boot into or at least virtualize a POSIX-style operating system.
Git and GitHub
We will be running a number of important tools from the command line in this class.
That includes Git. You must make all commits and manage branches, etc. from the command
line. It is neither good nor acceptable professional practice to use GUI-based Git
software or to make commits directly on GitHub itself. Your primary interactions with
GitHub will be pushing, fetching, and pulling via the command line.
Speaking of GitHub, 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
similar 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.