Course Format

This course is offered in a hybrid format. Lectures will be delivered simultaneously in-person (when possible) as well as over ohyay (via an ohyay room hosted on the instructor's device). For lectures, we will work to provide a seamless experience for students attending in either modality through the entire class. The midterm exam will be held remotely (half during class time, and half take-home style). The studio sessions (held during certain lectures) and projects for this class involve collaborative work. Studios will be held remote-only until the end of January, at which point we will reconsider hybrid studio formats. For projects, we will consider working location preferences when forming pairs or groups.

Attendance

The lectures for this course will not be recorded, and the class features extensive in-class work. We encourage attendance at all lectures, but attendance is required for studios (typically once a week, exact dates subject to change), the midterm, and the final presentation. During the last six weeks of the course, final project studio will take place during lecture time. Attendance during the last six weeks will factor into the teamwork and participation grade for the final project.

Enrollment and Credit

Enrollment of this course is limited to 55 students due to the quantity of feedback and hands-on work required. CS 378 is open to students of all backgrounds who have basic programming experience (e.g., Data Structures or equivalent). We will assume that you are comfortable coding a large-scale project. Auditors are welcome to sit in on lectures and sections, but they can not receive feedback on course work (e.g., assessments, projects) or participate in studio due resource constraints.

Grading

Final grades will be determined with the following breakdown:

  • 30% Practice projects: The practice projects each consist of several checkpoints (e.g., Cycle I, Cycle II, and Cycle III). Each checkpoint will be graded independently on a check scale (described below).

  • 30% Final project: Final projects take place during the last 5-6 weeks of class in assigned groups of 4-6. For grading, we will take into account several aspects of the final project process: teamwork and participation, design checkpoints, observation/needfinding, evaluation, implementation, and deliverables (e.g., presentation, poster, article).

  • 20% Studio: Studio will take place on select days during the first 8 weeks of class. Studio grading will be based on attendance and preparation (e.g., bringing in your design to critique), and participation (e.g., critiquing other students' designs). Revision based on studio critique will be turned in during Cycle II for each weekly project.

  • 20% Assessments

Check scale
Label Points Description
checkplusplus 20/20 Reserved for design awards (top 3 submissions)
checkplus 19/20 Exceeds expectations: The assignment is complete and some elements exceed expectations. Shows strong engagement with the design cycle through clear improvements. Presentation impeccable.
check 17/20 Satisfactory completion of the assignment: The assignment is complete and fulfills expectations. Student engaged with the design cycle, though some issues remain. Presentation understandable.
checkminus 15/20 Needs improvement: Some components of the assignment are incomplete. Some engagement with the design cycle, but many issues remain. Presentation may fall short (e.g., poor scans, incomplete descriptions).
minus 0/20 Unsatisfactory: No submission, or missing substantial assignment components. Does not represent engagement with the design cycle.
Late Work

Each weekly project consists of 3 checkpoints (Cycle I, Cycle II, and Cycle III). Late work will not be accepted for Cycle I and Cycle II (!) because the cycles within a project build off of one another. But, we will drop the lowest cycle score. For Cycle III (and IV when relevant), we have a policy of slip hours. Students will have 96 slip hours to use over the course of the semester. After these slip hours have been used, students will receive a 0 for work (save them for emergencies!). Extensions will not be granted due to the fast pace of the class, so plan accordingly.

Hours and Workload

CS 378 is time consuming. We expect students to commit 3 hours of "instructor presentation of course materials per week" (i.e. lecture and studio, MWF 11a-12p CT), 1-3 hours of class preperation per week, and 2-12 hours of outside work per week (e.g., completing design and coding projects, providing feedback).

Cheating policy

Cheating and plagiarism will not be tolerated, and will get you an F in the class. Please take time to view the UTCS Rules to Live By. We expect all students and teaching staff to conduct themselves according to the UT Honor Code.

Citing sources

For the design portion of weekly projects (typically cycles I/II) we encourage you to draw inspiration from existing work and seek feedback on your designs. Be sure to cite your inspiration sources and feedback partners. When drawing inspiration from existing designs, focus on elements you want to incorporate (e.g., bold colors, low contrast, sharp corners) rather than copying the design as a whole. One rule of thumb is that your design should differ significantly (>30%) from existing examples. We will assess what value your assignment adds to the examples you used (e.g., if the most interesting portions are copied, this will be taken into account).

For the implementation portions of weekly projects, you must work independently when noted. Cite resources that contributed significantly to your project (e.g., a comprehensive tutorial).

FAQ

Some quick answers to frequently asked questions:

What do I need to know before taking this class?

You will work on significant programming projects during CS378. To get the most out of the class, you are required to have taken Data Structures or have equivalent programming experience. The more programming experience you have, the more you can focus on the user-centered design concepts which are the focus of the course.

What language will we use for the course?

The course will primarily use front end web development languages: HTML, CSS, and JavaScript. Students will be expected to program in these languages independently. Supplemental material will help teach programming in these languages, while lecture will primarily focus on core concepts. We will additionally use a backend (Python), but we will provide support and skeleton code for backend programming.

Is the class project based? Do I need to find a group?

During the first half of class, you will complete small weekly projects, usually split ~2/3 design and ~1/3 programming. These will be designated as individual or pair projects on the syllabus. When pairs are required, you may pick your own pairs (or ask to be assigned), but you will not be allowed to repeat those pairs. There is one final group project during the last 6 weeks of class. You will work with an assigned group of 4-6 people (we'll take into account things like preference from prior pairs, your complementary strengths, and work time/place preferences).

Is a textbook required for the course?

No, there is no required textbook. Required readings will be linked online or distributed using Canvas.

Any required supplies?

Yes. In lieu of a text book, we will require supplies for design and prototyping tasks. The supply list lives here. Ideally, you will acquire your design supplies for the first assignment. At the latest, you will need supplies for the first wireframe assignment.

I have a different question, how should I contact the teaching staff?

Please use Piazza for all course-related questions. If you have a technical or logistical question about an assignment, please use the class messaging feature on Piazza. If you have a personal issue pertaining to the course, you may use the private messaging feature on Piazza to message staff. Piazza lets us organize and efficiently respond to questions. Please refrain from sending emails.