Course Syllabus

CSCI 5619: Virtual Reality and 3D Interaction

------------------------------------------------------------------------------------------

Instructor
Evan Suma Rosenberg  (they/them/their)
Office Hours: T/Th 3-3:50pm CDT
Location: Keller 6-201 or virtual Links to an external site.
Email: suma at umn dot edu

Jerald Thomas

TA
Jerald Thomas  (he/him/his)
Office Hours: M 12-1pm, W 1-2pm, F 2-3pm CDT
Location: Keller 2-217 or virtual Links to an external site.
Email: thoma891 at umn dot edu

------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------

Course Overview and Learning Objectives

The goal of this course is to provide a comprehensive overview of the state-of-the art in virtual reality technologies and 3D user interfaces.  Classroom topics will include display systems, motion tracking, spatial interaction techniques, human factors, and applications  Students will learn how to develop virtual reality experiences through hands-on programming assignments using Oculus Quest headsets.  Theoretical and practical knowledge will be evaluated through quizzes throughout the semester and applied in a course project.  This project will be the major deliverable at the end of the course; there will be no final exam.

Students will gain a deep understanding of the theoretical foundations, hardware/software technologies, and design principles for the creation of virtual reality experiences. After completing this course, you will be able to do the following:

  • Understand immersive input/output devices, software, and systems
  • Implement spatial interaction techniques, including:
    • Selection
    • Manipulation
    • Navigation
    • System control
  • Critically evaluate what makes a virtual reality experience effective and compelling (and conversely, what doesn’t)
  • Design and develop virtual reality applications that apply best practices for 3D user interfaces

I look forward to helping you develop these skills!

------------------------------------------------------------------------------------------

Prerequisites

Students must be self-motivated, interested in thinking critically about 3D interaction, and willing to commit a minimum of 9 hours per week for academic work, including lectures, assigned readings, virtual reality programming assignments, and project development. Familiarity with basic concepts of computer graphics and/or prior experience with game engines is also beneficial.

------------------------------------------------------------------------------------------

Course Structure

This course will be taught in-person. However, if the Covid-19 situation worsens, a mid-semester pivot to another teaching modality (e.g., over Zoom) may occur, depending on what the University decides. This may result in changes to the information on these pages.

------------------------------------------------------------------------------------------

COVID-19 Precautions

To ensure the health and safety of everyone during these difficult times, the following precautions will be taken in this course.

  • Vaccination and masking: The University requires that all students are fully vaccinated and that faculty and staff provide a written attestation of their vaccination status. Furthermore, everyone is required to wear a mask while inside a University building, regardless of vaccination status. More information on these requirements is here.
    Please ensure that you follow these requirements and, to the extent possible, practice appropriate social distancing in the classroom.
  • Stable seating: The University recommends that students try to sit in the same seat for every lecture. This will facilitate contact tracing in the event someone tests COVID-positive during the semester.
  • Coursework submission: To minimize potential virus transmission via surface contact, there will be no exchange of any paper materials during the semester. All coursework (homework assignments and exams) will be submitted, graded, and returned online only.
  • Online access to lectures: Lectures will be recorded and made available online in Canvas after class ends. This provides an alternative method of accessing this content to help reduce the risk of in-class exposure to the virus and to allow students who test positive to continue taking the course remotely. Although it will not be possible to interact with the instructor when viewing the recorded lectures, you will have 24 hours to complete the participation exercise to get credit for attending the class.
    You will not be penalized for staying at home if you are feeling sick or test positive for COVID-19.
  • VR headset sanitation: You will be able to check out an Oculus Quest headset for the entire semester.  To reduce the chances of transmitting an illness, I recommend that you avoid sharing the headset with anyone else.  If you would like to sanitize your headset or controllers, we have a CleanBox Links to an external site.decontamination system in the Keller 2-208, which has been reported to kill the virus that causes COVID-19 with 99.9% efficiency.  Please contact the TA to arrange a time to use it.

While this setup is far from ideal, every effort will be made to make the course as accessible, engaging, useful and fun as possible.  Thanks for your understanding and cooperation.

------------------------------------------------------------------------------------------

Communication and Help:

Communication: The best way to asynchronously communicate with the instructor and TA is through the course Slack workspace.  Of course, you can also contact us by email; however, this is less efficient and will generally involve a longer turnaround time.  

Office Hours: The instructor and the TA will hold regularly scheduled office hours in a dual format.  Students may choose to seek help during office hours either in-person or virtually using Gather.Town. We are also both available to meet outside the listed times, so feel free to reach out and request another meeting time.

------------------------------------------------------------------------------------------

Textbook (Required)

Understanding Virtual Reality: Interface, Application, and Design (Second Edition)
William R. Sherman and Alan B. Craig. ISBN: 978-0-12-800965-9
https://www.sciencedirect.com/book/9780128009659/understanding-virtual-reality Links to an external site.

Please note that this textbook is available for free through the University's subscription to ScienceDirect.

Students are expected to read the chapters associated with each lecture.  The textbook and lecture cover distinct material, and you will be expected to know the content from both sources.

------------------------------------------------------------------------------------------

Additional Reading (Optional)

3D User Interfaces: Theory and Practice (Second Edition)
LaViola, Kruijff, McMahan, Bowman, and Poupyrev. ISBN: 978-0134034324
https://www.amazon.com/3D-User-Interfaces-Practice-Usability/dp/0134034325 Links to an external site.

This textbook provides supplemental reading that more closely follows the lecture material.  This is entirely optional for those that are interested in taking a deeper dive into the topics covered in this course.

------------------------------------------------------------------------------------------

Hardware and Software

Software: In this class, we will be using the following software tools:

  • Unity 2020.3.18f1 Links to an external site. (LTS) - This is the most widely used game engine worldwide.  You can access it using the Windows computers in the CSE Labs, or you can download the personal version for free on your own computer. Please note that to facilitate grading and debugging, you will be required to use only the 2020 LTS version in this class. Assignments using Unity will involve programming in C#.  Note that the minor number of the latest version (18f1) may change during the semester if Unity releases an update.  However, projects are not backwards compatible. If you install Unity at a later point in time, make sure you use the exact version we are using in class.
  • Babylon.js Links to an external site. - This is a web-based game engine.  Assignments using Babylon.js will involve programming using TypeScript, a typed language that transcompiles to JavaScript.   These are free, open-source, and will run in major web browsers (e.g., Chrome, Firefox, Edge).  

Hardware: Each student in this course will receive an Oculus Quest virtual reality system, which will be used for programming assignments and the final project.  You will need to contact CSE-IT to schedule a time to pick up the headset.  Note that you will be required to return this device at the end of the course.  

The Quest includes two controllers, each of which requires one AA battery.  You are responsible for purchasing your own batteries.  I recommend always keeping a spare set in case they need to be replaced in the middle of an completing an assignment!

------------------------------------------------------------------------------------------

Expectations in this Course:

Time Commitment: This is a three credit course. This means that the course is structured such that an average student will need to put in 9 hours of academic work per week in order to receive a C in the course. To get a higher grade, expect to put in more time or work more efficiently.

Participation: Students are required to attend the lectures whenever possible and to watch the recorded videos for any missed classes.  Each lecture will introduce a participation exercise which is due within 24 hours of the end of class.  Each will be scored out of 2 points; one point for attempting the exercise, and one point for completing it correctly.  The lowest 2 scores will be dropped automatically to accommodate the occasional absence.

Quizzes: A total of 6 quizzes will be given throughout the course, which will be administered through Canvas.  Quizzes will generally be due within 24 hours of posting. They will be "open-book," so you are free to consult course materials such as lecture videos, slides, and the textbook. However, they must be completed individually; you cannot ask the instructor, TA, students, or anyone else for help.

Programming Assignments: Concepts introduced in lecture will be applied in 6 programming assignments that will involve implementing 3D user interfaces and spatial interaction techniques.   Each will be scored out of either 10 or 20 points, depending on the length and scope of the assignment.  (Generally, 10 point assignments are due one week after posting, and 20 point assignments are due in two weeks.)  These assignments will also often include a bonus challenge for additional points, which typically involves implementing something original or creative.

Project: Students in the class will be expected to complete a multi-part project during the semester, in teams of two. Although I can try to help facilitate team matching, it is your responsibility to find a project partner early in the semester (well before the first milestones).  Individual projects or teams of three may also be considered with instructor permission.  You will be able to choose either Unity or Babylon.js for your project, depending on your preference.

------------------------------------------------------------------------------------------

Grading:

Your final grade is based on the following items and weights:

  • Programming Assignments- 35%
  • Project - 35%
  • Quizzes - 20%
  • Participation - 10%

The grading in this course is on an absolute scale.  This means that the performance of others in the class will not affect your grade.  Your percentage will earn you the following grade:

  • A    ≥ 93.0% 
  • A-    90.0% - 93.0%
  • B+   87.0% - 90.0%
  • B     83.0% - 87.0%
  • B-    80.0% - 83.0%
  • C+   77.0% - 80.0%
  • C     73.0% - 77.0%
  • C-    70.0% - 73.0%
  • D+   67.0% - 70.0%
  • D     60.0% - 67.0%
  • F      < 60.0%

For S/N grading, a satisfactory grade (S) requires a grade of 70.0% or above.

------------------------------------------------------------------------------------------

Late Policy:

All students in this course will be granted a total of 7 "late points" at the beginning of the semester.  Each point is worth a 24-hour extension for any programming assignment with no penalty.  You are free to allocate them however you want throughout the course.  For example, you could use all your points for a 7-day extension on a single assignment, or a single point for 1-day extensions on 7 different assignments.   You cannot spend less than one point at a time, so the deadline can only be extended in 24-hour increments.

Late points will be deducted from your total automatically when you submit an assignment after the posted deadline.  Each student is responsible for keeping track of their remaining points.  No other late assignments will be accepted without permission from the instructor.  

The late policy is intended to provide students with flexibility for missed work, including those due to legitimate absences.  If you have points remaining, you do not need to contact the instructor for an extension on programming assignments.  If you have not missed a total of 2 classes, you do not need to contact the instructor to request an extension on participation exercises.   If you go over these limits and anticipate further difficulties in completing work on time, then you should contact me to discuss your situation.

------------------------------------------------------------------------------------------

Standard Policies:

This class relies on standard university policies. It's your responsibility to familiarize yourself with:

------------------------------------------------------------------------------------------

Academic Dishonesty:

First, please review the Departmental Policy on Academic Dishonesty Links to an external site.; this is a little more specific than the university-wide policy above.  How this applies to this class specifically:

1. You are permitted to use course material without citing: this includes the lecture videos, slides, textbook, and any other material the instructor posts on Canvas. You can also use anything from the official Unity documentation Links to an external site. or the official Babylon.js documentation Links to an external site.. Links to an external site.

2. You are permitted to use art assets (e.g., 3D models, textures, etc.) from the internet in programming assignments and the final project, but you must cite all third-party content used in a readme file.

3. Copying code from the internet (other than the sources noted above) is Academic Dishonesty.

4. Posting class material to the internet without permission is Academic Dishonesty.

5. I consider searching for a currently assigned programming problem on the internet to be Academic Dishonesty, even if you don't actually use the code.

6. If you submit a solution that you do not understand, that is Academic Dishonesty, because it is not an accurate representation of your own knowledge of the content. 

7. Any collaboration with another person on a quiz or programming assignment is Academic Dishonesty.

8. In general, Academic Dishonesty in this class will result in a 0 on the assignment or exam in question for the first offense, and an automatic F in the class for the second. 

9. Remember, your instructor is here to help.  If you have any questions about whether something counts as academic dishonesty, please ask!

Academic Freedom and Responsibility: Academic freedom is a cornerstone of the University. Within the scope and content of the course as defined by the instructor, it includes the freedom to discuss relevant matters in the classroom. Along with this freedom comes responsibility. Students are encouraged to develop the capacity for critical judgment and to engage in a sustained and independent search for truth. Students are free to take reasoned exception to the views offered in any course of study and to reserve judgment about matters of opinion, but they are responsible for learning the content of any course of study for which they are enrolled. Reports of concerns about academic freedom are taken seriously, and there are individuals and offices available for help. Contact the instructor, the Department Head, your advisor, the Associate Dean of the college, or the Vice Provost for Faculty and Academic Affairs in the Office of the Provost.

------------------------------------------------------------------------------------------

Aspects of this syllabus (including this statement) were adapted from Blair MacIntyre, Nathan Taylor, Shana Watters, Lana Yarosh, Ravi Janardan, or the American Association of University Professors Joint Statement on Rights and Freedoms of Students, because writing a good syllabus is hard.

Course Summary:

Date Details Due
Loading