Skip to content

Syllabus

CS 480: Topics in Computer Science (Virtual Reality Applications)

Class Times

T/Th 9:35 AM - 10:50 AM in King Hall 243

Your Instructor (aka me)

Dr. Isaac Wang

Dr. Isaac Wang (he/him)
Email: wangid@jmu.edu
Office: King Hall 246C
Phone: (540) 568-8177

Office Hours:

  • M/W 3 PM - 5 PM
  • Tu 1:30 PM - 2:30 PM

(and other times by appointment)

Please contact me primarily via email and include CS480 in the subject1.

Note

I typically do not answer email on the weekends or late at night, so please be sure to contact me early. Don't forget to also rely on your fellow classmates!


About the Course

Requirements

A Windows or Mac laptop capable of running the Unity editor is required (only integrated graphics needed at minimum). Please bring your laptop to class – you'll need it!

Textbook

No textbook is required for the course. Assigned readings will be provided, including excerpts from Steven LaValle’s free virtual reality textbook.

Goals and Objectives

At the end of this course, you should be able to:

  • Create VR applications for the Meta Quest, using the Unity game engine
  • Understand the principles of human perception and how to leverage them in VR
  • Apply design principles and concepts for developing virtual reality apps
  • Compare the strengths and limitations of different VR technologies
  • Create low-fidelity prototypes for designing VR applications
  • Conduct user tests to evaluate and iterate on VR applications
  • Read and analyze research articles on VR

Course Format

This course will be a combination of lectures, in-class activities, and lab sessions. Typically, Tuesday will be a lecture/activity day where you learn and discuss about a specific concept and Thursday will be a lab day where you practice coding that concept. Later in the semester, we will have class days dedicated to project updates and working time.

Assignments

Type Weight
In-class activities 5%
Weekly readings 10%
Labs 15%
HW assignments 30%
Group project 40%

Grading Scale

Letter grades will be assigned on the scale A=90-100, B=80-89, C=70-79, D=60-69, F=0-59, with potential minor adjustments after considering the overall performance of the class and actual distribution of numeric scores. I will use "+" and "-" grades at my discretion. I do not assign WP or WF grades except in extreme circumstances.

In-class Activities / Attendance Policy

While I don’t usually take attendance, you are expected to show up for every class session. I give credit for in-class activities, so you must be present and participate in order to receive credit!

If you will be absent for any class period for a legitimate reason, please email me before class begins and I can make sure you get the material we will cover and make arrangements as needed. I will automatically excuse up to two activities to make up for missed class days.

Weekly Readings

There will be assigned reading each week, posted on Canvas. These will consist of textbook excerpts, blog posts, research articles, etc. A Canvas quiz will accompany each reading and ask you multiple choice and short answer questions about the assigned reading. You may also be asked to discuss readings in class.

Quizzes will typically be due on Mondays at 11:59 PM, unless otherwise specified on the assignment.

Late Policy

No late work will be accepted for readings. If you may miss the deadline due to an extraneous reason, please contact me early to discuss a possible extension.

Labs

We will have in-class labs where you practice developing VR apps and interacting with the headset. Labs are designed to be completed during class time, but submissions will be open for at least an additional 24 hours in case you need more time to finish. You will submit your code to Gradescope. I may use autograders to assist in grading your submissions.

Individual HW Assignments

Throughout the first part of the semester, I will assign regular HW assignments for you to complete at home. These may vary from coding assignments, to creating sketches, to recording short videos, etc. HW assignments are meant to be completed individually. Due dates will be posted along each assignment in Canvas.

Late Policy

You may submit HW assignments up to 24 hours late for an automatic 20% penalty off your grade.

Group Project

The latter part of the semester will comprise a larger group project where you work in a team of 4-5 to develop a full VR application or experience. You will be required to submit multiple deliverables, including a project pitch, progress reports, prototype videos, user evaluations, and the final project with accompanying presentation. You will receive a grade as a team for each deliverable. Peer grading and feedback may also be factored into your grade.

Late Policy

No late work will be accepted for deliverables. In order for me to give you timely feedback, please make sure to submit before the deadline!

Each team member will be expected to perform a fair share of the work – I may make adjustments to an individual member’s grade if it is clear that social loafing or another issue is occurring. If you encounter any issues working as a team, please contact me ASAP!


Academic Honesty

Students who violate the Honor Code (http://www.jmu.edu/honorcode/code.shtml) will receive a reduced or failing grade in the course. Other penalties may be imposed, and all violations will be reported to the Honor Council. Automated tools may be used on any assignment, at any time, to detect inappropriate collaboration and to determine the originality of submissions.

Warning

You may not submit code written by other people as your own. If you use references or sources outside of what is provided in class, you must include a link to the resource and a description of what you learned/applied from it. This does not give you a pass to freely copy and paste code found on the internet.

Representing someone else's work as your own, in any form, constitutes an honor code violation. Directly copying or using the same code is an honor code violation. It is also a violation of the honor code to “render unauthorized assistance to another student by knowingly permitting them to copy all or a portion of an examination or any work to be submitted for academic credit.” That means that you can be written up for an Honor code violation if you share your code with someone else, even if you wrote it completely on your own.

AI/ChatGPT Policy

Unless otherwise specified, you may not use generative AI or similar tools for readings, activities, labs, and individual homework assignments. This includes both using it as a reference and as a code-generation tool.

For the cumulative group project, you may utilize AI tools freely. You may also include code as long as you clearly note and cite the tool that was used, and where it was used (e.g., a comment stating that the code below was generated by ChatGPT).

Warning

Assume that any code generated by AI is inherently flawed, meaning that it is your responsibility to verify its correctness, modify it as needed, and integrate it into your project.

The large majority of the work must still be your own – this is a learning environment, and relying heavily on AI may do more harm than good. If you have questions about this policy, or what constitutes appropriate usage of AI tools, please ask!


University Requirements

Adding/Dropping Courses

Students are responsible for adding and dropping courses. Please consult the appropriate academic calendar for the exact withdrawal deadlines. I will not give "WP" or "WF" grades to students requesting a drop after the deadline except in extraordinary circumstances.

Disability Accomodations

If you have a documented disability and need accommodations in this course, please register with the Office of Disability Services (http://www.jmu.edu/ods, Student Success Center, Room 1202, 540-568-6705). They will provide you with an Access Plan Letter to verify your need for services and make recommendations for the course. I will be happy to discuss your access plan with you.

Excused Absences

Students who are unable to attend class due to JMU sponsored activities (such as sports, band, academic competition, field trips, etc.) or personal religious observances may request reasonable accommodations. Please notify me during the first week of class regarding potential absences so that we can determine alternative methods for you to complete the required work.

Disruptive Behavior

Disruptive conduct disrupts the process of teaching and learning, and such behavior will not be tolerated in the classroom, lab, online discussion or other place of student learning. Failure to live up to these responsibilities carries with it the possibility of sanctions, up to and including removal from a class, removal from a program and/or removal from the university. The full policy regarding class disruptions is available from the Academic Affairs website.

Inclement Weather

For severe weather and other unexpected circumstances, watch for announcements relating to make-up dates. See http://www.jmu.edu/JMUpolicy/1309.shtml for JMU’s cancellation policy. Although the schedule may adapt to canceled classes, assignment deadlines generally do not change.

Your Wellbeing

Last but not least, as a university student, there may be times when personal stressors interfere with your academic performance and/or negatively impact your daily life. If you or someone you know is experiencing mental health challenges at James Madison University, please connect with the Counseling Center located within the Student Success Center on the 3rd floor. You can learn more about available services by visiting https://www.jmu.edu/counselingctr or calling 540-568-6552. Their services are free and confidential. Other available support resources to consider include, but are not limited to, the Office of the Dean of Students, the Health Center, and Learning Strategies Instruction.


  1. Otherwise, your email could get lost in the flood... If you include CS480, I notice and reply to it sooner 😉