Skip to main content

INFO 4340/5440: App Design and Prototyping Syllabus (Spring 2026)

warning

This course is experimental. All aspects of the course are subject to change.

Few resources are provided for this course. You should not expect slides for lectures or step-by-step instructions for assignments. You should feel comfortable interpreting open-ended requirements and learning independently.

If you want prescriptive directions, this is not the course for you.

Credits: 3, Letter Grade
Prerequisites: INFO 2310
Expected Weekly Workload: 6 hours/week outside class
Instructor: Dr. Kyle Harms (he/him); https://kharms.infosci.cornell.edu

Course Website: https://infosci.cornell.edu/courses/info4340/2026sp/
Course Email: info4340@cornell.edu

Send all private communication to the course email; do not directly email or contact the instructor or TAs. We strive to respond to each email within 2 business days (Monday-Friday, excluding holidays and breaks), during business hours (Monday-Friday, 9am-4pm). Only the instructor, course administrator, and select graduate TAs have access to the course email; undergraduate TAs will never see your messages.

Lectures: Tuesdays, Thursdays, 10:10am-11:25am, Upson Hall 216
Office Hours: calendar

Required Materials: Pen or pencil, paper, a functioning laptop, and an active github.com account.
Textbooks: None

Course Description

In this interactive studio-based course, students will gain practical experience independently creating high-fidelity prototype apps. This course has a significant software development focus, exposing students to software development methods and tools necessary for developing interactive software prototype applications. This includes employing UI component libraries, event-based programming, generative AI, basic command line usage, and debugging. Learning how to solve technical problems and use unfamiliar technology independently is emphasized; students should not expect step-by-step lectures or instructions for authoring their prototypes. Proficiency in dynamic client and server-side web programming is assumed.

Course Objectives

By the end of the course, a student will be able to:

  • Design and implement high-fidelity prototypes of interactive software applications independently.
  • Leverage the language of user interfaces to design interfaces that engage in a conversation with users.
  • Independently approach technical problems and use unfamiliar technology you haven't been directly "taught".
  • Explore unfamiliar code and technology as a strategy for building working prototypes.
  • Effectively utilize generative AI to assist in the design and development of prototype apps.
  • Demonstrate a high standard of professionalism and development best practices.

Beyond the learning objectives stated above, graduate students (INFO 5440) are expected to:

  • Leverage hardware and system APIs to add advanced functionality to prototypes.

Course Structure & Assignments

warning

This course is experimental. All aspects of the course are subject to change, including the number of assignments.

This is a studio-based course leveraging self-directed learning. Much of class time is dedicated to studio where you learn by doing. The primary means of learning the material is through 8 homework assignments and a team project designing and building a high fidelity prototype as a progressive web app. This course is designed to help you pick-up unfamiliar technology for building prototypes now and into the future.

Class is loosely structured. We will typically begin class with an activity or an occasional mini-lecture. In-class activities will help drive the progress of your project as well as expose you to design and software development methods. The remainder of class is typically studio time.

During the first half the semester, I will assign a series of homeworks to prepare you for the project. The second half the semester is dedicated entirely to a group project that constitutes the majority of your grade.

There are 2 oral exams: one mid-semester and one during the final exam period.

The primary resource for course content comes from lectures with in-class activities. Your notes are your primary resource for studying for exams. Few additional resources are provided to learn the course material outside of class. Attendance is required because attending class regularly is important to your overall success in this class.

Minimal direct instruction (i.e. lecture, slides, step-by-step assignments, etc.) is provided in this class. You will need to seek out additional resources and collaborate with your peers in order to independently learn how to complete the assignments in the class yourself. This experience is part of the learning outcomes of this course.

Grades

Grades are earned, not given. Your grade is a reflection of your mastery of the course content and your ability to apply that knowledge to the assignments. Your grade is not a reflection of your effort, your potential, or your worth as a person. There is no extra credit in this course.

Your grades are posted to Canvas. The course grade you see in Canvas is your current grade.

Assignment/Exam Grading

Most assignments (and exams) are graded for correctness. When assignments are graded for correctness, your grade is based on how well your submission demonstrates your mastery of the course learning objectives. Because you either master a learning objective or you don't, partial credit is only provided as half credit. When half credit is provided, it indicates that you demonstrated some mastery of the learning objective, but not full mastery.

Some assignments are graded for completion. You must demonstrate that you attempted all parts of the assignment, and you put forth a good faith effort to complete the assignment for full credit. No partial credit is provided for completion-graded assignments.

Final Grade Calculation

Your grade is computed using the following weighted averages:

ComponentWeight
Attendance0%
Class Preparation5%
Homeworks35%
Team Project35%
Mid-Semester Oral Exam10%
Final Oral Exam15%

Letter Grades

Grades are never rounded. Like your GPA, letter grades are assigned by the integer-part of your final percentage. For example: 96.01, 96.5, and 96.99 are all A's. 97.0 is an A+.

LetterPercentLetterPercentLetterPercentLetterPercent
A+97-100%B+87-89%C+77-79%D+67-69%
A93-96%B84-86%C74-76%D64-66%
A-90-92%B-80-83%C-70-73%D-61-63%
F0-60%

70% and above is a passing grade (S). Below 70% is an unsatisfactory grade (U).

Course Policy Summary

By being here, you have earned the right to be held to a high standard of professionalism.

The course policies can be summarized as the following. For additional details about each policy, see the respective policies.

Contact the Instructor:

  • Email info4340@cornell.edu using your Cornell email to privately contact the instructor.
  • We strive to respond to each email within 2 business days (Monday-Friday, excluding holidays and breaks), during business hours (Monday-Friday, 9am-4pm).
  • We do not respond to Canvas messages. Send all course-related communication to the course email.

Inclusivity & Accommodations:

  • Everyone belongs in this class. Let us know if you have any concerns.
  • Email us for accommodations. The sooner, the better (per university policy, accommodations are not applied retroactively.)
  • All students are provided with built-in accommodations: slip days, assignment resubmission, and oral exam retake.
  • The provided accommodations are specifically intended to support most student accommodation needs and should only be used for legitimate reasons for needing an accommodation.

[Inclusivity Statement] [Accommodations Policy]

Class Engagement:

  • As per university policy, class attendance is required.
  • Arrive and be seated before the start time of the course.
  • Catch up with a peer if you miss class.
  • You may not record or take photographs without the explicit permission of the instructor.

[Attendance Policy]

Assignments & Late Work:

  • Handwritten work should be legible; no credit is provided for illegible work.
  • It is your responsibility to ensure that your submissions are complete, valid, and ready to be graded; no leniency is provided for submitting broken or incomplete work, including the wrong file.
  • Late work receives 0 credit without an accommodation.
  • You have 3 slip day accommodations to use for the entire semester. You may submit any non-group work assignment (homework or project milestone only) 24 hours late using a slip day.
  • You may not combine late submission / deadline extension accommodations.
  • If you submit an assignment late, you should not expect timely feedback or grading of your submission; your grade may be delayed up to 2 weeks.

[Submission Policy] [Late Work Policy] [Accommodations Policy]

Exams:

  • Oral exam are held in-person during scheduled times.
  • Failure to schedule or attend an oral exam will result in a 0 for that exam.
  • You may retake the first oral exam using the oral exam retake accommodation within one week of receiving your grade. (The final oral exam may not be retaken.)

[Exam Policy] [Accommodations Policy]

Grades:

  • All assignments are graded exactly once; once your assignment is graded, the grade is final (unless there is a grading mistake).
  • You may resubmit up to one non-group work assignment (homework) to earn full credit using the resubmission accommodation one week after your grade was returned to you.
  • In the interest of fairness to all students, the instructor and TAs cannot pre-grade your work or tell you if your work is correct.
  • Submit a grade clarification request if you don't understand your grade on an assignment.
  • Submit a regrade request if there is a mistake with your grade on an assignment. You have one week to submit a regrade request from the date that your assignment's grade was returned to you.

[Regrade Policy] [Accommodations Policy]

Getting Help & Collaboration:

  • Only the instructor may clarify assignment instructions/requirements or course content.
  • The best place to get help with an assignment is from your peers and office hours. ChatGPT has been known to mislead students in this course.
  • When getting help, keep in mind that we prioritize helping you learn. We cannot fix nor debug your code for you.
  • You are encouraged to collaborate/work with your peers in this class so long as you do your own work. You may not share or copy code/solutions.
  • TAs do not have the authority to endorse solutions, provide clarifications, regrade your assignment, or debug AI generated code.
  • We answer questions on the course discussion forum exactly twice a day, once before noon and again before 4pm, Monday-Friday.

[Help Resources] [Collaboration Policy]

Citations:

  • Cite all content (text, images, videos, etc.) in your submissions.
  • Cite all resources you referenced to complete your work.

[Citations Policy]

Academic Integrity:

  • Submit your own work; write your own code. Do not copy from anywhere, including the course provided code.
    • Copy does not simply mean "copy and paste". You can also produce a copy by typing out a nearly identical code snippet, etc.
  • You are encouraged to use additional resources, like tutorials and generative AI. Though you may use them as reference material only: study the resource so that you understand it and can use the same ideas in your project/code independently.
  • Any copied work, including code, found in a submission will result in a 0 for the entire assignment.
  • All course materials are copyrighted. Do not share course materials outside this class.
  • This course is participating in Accepting Responsibility (AR), which is a pilot supplement to the Cornell Code of Academic Integrity (AI). For details about the AR process and how it supplements the AI Code, see the AR website.

[Academic Integrity Policy]