CS 465: Multimodal Interaction for 3D User Interfaces
Status of Syllabus
- This page will not be updated. It is here for archival reasons only. See below.
Archival page only. Please go to actual page below
https://cs.colostate.edu/~fortega/courses/cs465sp25/
Updates to Syllabus
| Date | Description |
|---|---|
| Final draft released for Syllabus | |
| Syllabus Release |
Professor
Francisco R. Ortega, Ph.D (NUI Lab).
- Associate Professor (tenured)
- Office: CSB-360. Available for Zoom/Teams.
- Office Hours: TBA
- Phone Number: 1-970-491-7445 (I don’t use this number as much – Use Teams)
- Email: fortega@colostate.edu
Note: My office hours will begin the second week of school (week of …). My preferred method of communication is via Teams for quick questions. Use class email (…). Other times may be available upon request. Office of hours are subject to change. I will announce it via teams My office hours are subject to change.
* My office hours are subject to change, but if this happens I will inform the class.
Graduate / Undergraduate Teaching Assistants (GTAs)
Jacinda Li (Ph.D. Student)
- Office Hours: TBA
- Online Office Hours: TBA
- Email: Jacinda.Li@colostate.edu
TBA (Ph.D. Student)
- Office Hours: TBA
- Online Office Hours: TBA
- Email: Jacinda.Li@colostate.edu
TBA (Undergraduate)
- Office Hours: TBA
- Online Office Hours: TBA
- Email:
Note: GTAs and UTAs will hold office hours in the CSB-225 lab. Office hours for the GTAs will begin the second week of school (week of 8/26/2024).
Online Office Hours: While anyone can request to meet with a GTA during their online office hours, priority will be given to online students. Face to face (F2F) students can attend the regular F2F office hours. If there are multiple students on the queue, the GTA will answer only one question and move on to the next student in order to allow everyone a chance to ask a question.
Email, Canvas, Teams, and Zoom
Email, Canvas, Teams, Zoom, and this Syllabus are critical (including the project page whenever it becomes visible to you). You must check the syllabus, Teams, and Canvas every day. Classes will be recorded, but I can’t guarantee the system’s functionality. Online students will get a special recording if Echo360 fails.
How to communicate
First, be respectful and concise, but provide enough information for me to understand your question. Follow the following guidelines:
- Use Teams to communicate with me if you need a faster response. Use email if it is a private matter and essential, but time resolution is not necessary. When emailing me, CC the GTAs. In the subject line, please start with “CS-465-001”. I will reply, but I cannot guarantee a response on weekends or holidays. If I don’t reply within 48 hours, email me again. If it is urgent, write ‘URGENT’ (not ‘urgent’ that you need to call 911). USE CLASS EMAIL.
- Do not use the Canvas communications system to message the TAs or the instructor.
- If an email requires a reply beyond a single message, I may ask you to meet with me so you can explain your concern in detail, which will allow me to provide a proper and prompt response.
- Unless it is a private matter, use the class email: ….
- Use Microsoft Teams whenever possible. All official announcements will be sent via MICROSOFT TEAMS. You will be added to Teams in the first week of classes. Use the correct channel (as they become available) or use the main channel if you are unsure. Please be respectful to others, your TAs, and your professor. I will not tolerate any hate speech, improper comments, or anything that crosses boundaries at any point. All notifications will be sent using Teams.
- Please address me as Professor, Professor Ortega, Dr. Ortega, or Francisco. Those are your four options. Your preference. However, don’t email me like “Hey, or Bro, or Dude, or anything of that matter. My objective is for you to learn proper communication skills as soon as possible to become a successful CS professional.
- My pronouns are He/His/Him. If I make a mistake in your pronouns, you can correct me either in private or in class.
- It is hard for me to pronounce names. Not only I have an accent but I had (or still have?) a speech disorder. I will try my best, but feel free to correct me.
- I am open to being corrected in class if I make a mistake. Use your judgment and correct me; it is totally fine, just be respectful.
- I don’t know everything there is to know about Human-computer interaction or virtual reality. It is a broad and segmented field (in my opinion). I don’t even know everything in general. Don’t expect me to know every single possible answer, but I will always return with an answer if I can find one.
- I have hearing problems. This means two things: 1) my voice volume may vary, and 2) don’t talk in class, as I can’t hear myself, and it distracts the rest of the class. If you would like to discuss among yourselves, please do so outside the classroom. Also, refrain from texting during class unless it’s an urgent matter. If you will be using your computer in class, ensure that it is used only for taking notes and that your activity does not distract other students.
If a student behaves in a manner that is considered prohibited conduct, I reserve the right to ask that student to leave the classroom immediately and report the behavior to the appropriate department.
Style of HCI Courses
While Human-Computer Interaction (HCI) courses may vary, some, including this one, focus on concepts and theory. This is not common in all Computer Science (CS) undergraduate courses. In computer science, you will find different types of courses. What does this mean? While some HCI classes may concentrate in programming (e.g., CS310h), this particular course contains a lot more reading and different topics, while still requiring programming. Please ensure you are comfortable with this style of class. Otherwise, you may not find it acceptable. In previous classes, comments such as “this seems like a science class” or “this is the worst computer science course I have ever taken” have generated my curiosity. Comments such as “He is asking us to do his research” have also made it into the hall of fame of comments (and no, you are not doing research for me, nor have papers been generated from your work unless one of my research students is in my class). This means that you will be expected to read and write more than a typical CS course. This does not mean that you don’t have to write code; however, given the time and style of some of these classes, the course will have more lectures on 3DUI/AR/VR Theory. CS 465 will be theory and hands-on work. It is a capstone, and professional / student maturity is expected at this level.
Overview
This senior capstone course covers the theory of input devices, interaction techniques, and multimodal interaction for 3D user interfaces and their applications in augmented and virtual reality. A user interface (UI) is the medium of communication between a user and a computer system. A 3DUI is the medium of communication between a user performing three-dimensional interaction with a computer. While the definition of 3DUIs will be given in the class, for now, you can think of a 3DUI where either the input or the output of a system (or both) is in 3D space.
This senior-level undergraduate course is a capstone course. This requires the student to demonstrate proficiency in the course and in computer science. In short, the course covers input devices (e.g., controllers, gestures, gaze) and interaction techniques (e.g., world in a miniature). We will use virtual reality (VR) as the primary driver to accomplish the work, and we will discuss augmented reality interaction techniques. While most head-mounted displays will be Meta Quest 2 and Quest 3 (with AR video-see-through capabilities), some AR optical-see-through (e.g., Hololens 2) may also be available. Some input devices may also be available. The key part of the course is how to interact with the system, rather than the output (what you see). Of course, some minimal VR work will need to be done from the output perspective and to provide feedback on the interaction techniques.
Students may use any game engine they prefer. Some examples will be in Unity. We will have video examples on how to use Unity Game Engine (6.3). The class will concentrate on input and interaction techniques. You may also use GoDot4 and Unreal Engine, but the lab computers will not have them, and you will not receive the same level of support from us. We will provide lab computers in CSB 225 if you don’t have the right equipment to work with. For online students, it is crucial to have a laptop with a GPU compatible with the Quest 2 or Quest 3, at the very least, to push the development for mobile deployment. If you intend to use PCVR, the required GPU will be higher. Online students will be mailed a Quest 2 or 3. Face-to-face students will share a Quest 2 or 3 (or other devices) in a group of their choosing.
Unlike CS310H, which requires everyone to work on the same project, this course offers greater flexibility in project selection. The student will work on a project and understand theory derived from the latest research paper and foundational topics in Human-Computer Interaction and 3DUIs. Yet, there may be assignments given to you that are already defined.
It is important to remember that HCI is the field that studies the exchange of information between computers and their users. The field emerged in the 1980s, drawing on influences from psychology, computer science, human factors, and related disciplines. An alternate definition of HCI is the communication between computer systems and computer users. How communication enables the use of technology is a central focus of HCI research.
A field closely related to HCI is human factors, which concerns the capabilities, limitations, and performance of people when using various types of systems. From a system design perspective, human factors examine the efficiency, safety, comfort, and enjoyment of people using a given system. This seems quite close to HCI if you think of systems as computer systems, MacKenzie 12. The HCI field also draws knowledge from psychology. Examples include cognitive psychology and experimental psychology.
This is very useful, as it helps us to understand users and test how they interact with different types of computer systems. HCI is a very broad field. In HCI, you can find VR, 3DUI, accesibility, affective computing (which draws as much from psychology as it does from Artificial Intelligence (AI)), and others.
Significant events in the HCI community MacKenzie 12 started with the vision of Vannevar Bush with “As We May Think,” the development of the Sketchpad by Ivan Sutherland, the development of the computer mouse by Douglas Engelbart, and the launch of the Xerox Star system. Then, the first interest group formed (SIGCHI6) in 1982, followed by the release of the seminal book, The Psychology of Human-Computer Interaction, and the release of the Apple Macintosh, starting a new era for computer systems.
Class Objectives
I have the following objectives for CS-465.
- Learn how to run experiments for input devices and interaction techniques (a much briefer introduction compared to CS-464)
- Understand theory and concepts about input devices and interaction techniques.
- Developed research skills in HCI with input devices and interaction techniques
- Perform a capstone project that includes coding and research in the topics of the class while working in a group (in most cases).
- Understand basic VR development for input devices and interaction techniques while developing your own self-learning skills to be successful as a computer scientist
With this capstone course, you will be closer to becoming a computer scientist!
Labs
Labs are on your own. No actual lab you need to attend.
Groups
The professor will allow groups of 2-4. He may choose to make exceptions for groups of 1, but hardware is the limiting factor.
Students may form their groups, and the professor can assist if needed. You will be required to conduct constant evaluations of the group this semester (~3 times), in which you evaluate your team members.
Information about groups will be discussed starting the second week of classes. Information will appear as we discuss it.
Prerequisites
See advisor or CS website.
Grading Scale
| Grade | Range |
|---|---|
| A | [94,100] |
| A- | [90, 94) |
| B+ | [87, 90) |
| B | [84, 87) |
| B- | [80, 84) |
| C+ | [75, 80) |
| C | [70, 75) |
| D | [60, 70) |
| F | [ 0, 60) |
A+: A+ is given only to those top students that have gone above and beyond (and they already have an A). Sometimes, this means you need to have a 99% or higher, or have exceled in the class while mantaining an A grade. Remember that for your GPA, an A+ is the same as A.
I reserve the right to curve in your favor per assignment, exam, or class. Usually, I only curve at the end of the semester the whole class if needed. While this does not happen often, if it does, I will announce it.
Grading Breakdown
This course consists of 1,000 points; therefore, 1,000 points = 100%. This is the breakdown by percentage:
| Grading Group | Percetange | Notes |
|---|---|---|
| Syllabus | 1% | Quiz about the syllabus. |
| GitHub | 2% | The setup and continuous use of the repository for assigned tasks. |
| CITI Training | 1% | Final Project (Rubric will be released late second week of classes with addtional info) |
| Class Attendance | 3% | * See note below and difference for online students |
| Team Evaluation | 3% | Evaluate your peers |
| Assignments | 8% | Lab-like assignments where you attempt to follow video instructions (or from the solution). You can drop the lowest grade from 2 assignments. |
| Exams | 30% | There will be two exams; the lowest grade will be dropped. |
| Final Exam | 12% | Final exam. Cumulative. |
| Quizzes | 5% | 6 Quizzes. You can drop the lowest quizzes. See \% |
| Final Project | 35% | Final Project (Rubric will be released late second week of classes with additional info) |
| Hardware | — | # Hardware borrowed and not returned in the same condition. |
\% The description for each quiz will mention where the answers to the questions can be found. Answers that are found outside the resources mentioned, may be marked as incorrect.
* Class attendance will be recorded. While participation is the grade, you require to attend for get participation grade. Therefore, we will allow you (no question asked) to be absent five time in the semester. Unless in extreme cases with documentation from case management, I may consider other options. This five absences can be used to travel to a conference, because you are sick, or you just don’t want to come. You are required to come. We will keep track of attendance for face-to-face students to comply with student financial aid. In addition, in the past, we have provided extra credit to the people who attended the most (maybe above 90%). Finally, there could be an extra credit pop-up quizzes for face to face students only. We will release them later for online students but they don’t have to do it. There will be no announcement when will do it but they will be related to the previous 2-3 lectures that were attended. There will be multiple choice and probably two questions at max. They will be a five minute quiz during class. People that have accommodations and will want to continue later to use all their time or take them in a different location, they can let us know. However, they will still be required to be in class to get this option. For online students, the 3% will be added to the final project in the overall effort.
# If you borrow hardware for your final project, you are expected to return the equipment in the same condition as it was given to you. If the hardware (including the boxes and the accessories) are dirty, we may deduct up to 5% of your final grade. The person that borrow the harware must be the same that returns it. Upon returning the hardware, it will be checked by the GTAs, and if the HMD and/or the accessories are not in working order, we may deduct up to 5% from your final grade (individual grade) and may be partially or fully liable for the harware. More importantly, if you don’t return it with all its part or don’t return it at all, I reserve the right to either fail you or give you an incomplete until we get it back. 98% of the students do return the equipment.
Equipment will be provided by the TAs (e.g., Quest 2/ Quest 2/Quest 3) for face-to-face students. We will discuss this later in class. Whenever possible, we will try to provide additional equipment. Online students will receive it by mail unless they can pick it up in person. You will return it by mail. CSU Online pays this. We don’t need the headset right away. If you think you need it sooner, talk to us.
Exam Dates
Exams 1 and 2 will be administered during class time via the Canvas proctored application (dates to be determined; they will be noted below when available). If Canvas is unavailable, a hard copy of the exam will be provided (for face-to-face students). Online students will have a reasonable time window to take the exam, but the duration will be the same as for face-to-face students.
Tentative Exam Dates:
| Exam | Date/Time | |
|---|---|---|
| Exam 1 | TBA | |
| Exam 2 | TBA | |
| Final Exam * | Wednesday, May 13, 2026 6:20pm to 8:20pm (https://registrar.colostate.edu/final-exams/) |
*The final exam date and time has already been set by Registrar and cannot be changed. Exam will be proctor using CSU approved proctoring exam. We are aware of people using ipads and other devices under their shirt (and other tactics) and we will be in the look out. Any suspicius activity will get an F for the exam and will be reported.
Equipment for Exams
You will need to have a computer or laptop in a quiet location to take the exam. The university-provided system will proctor the exam. You will be required to take the practice quiz to test your system by a specific date, either on your laptop (for face-to-face students) or on your laptop/desktop (for online students). If you have a problem obtaining a laptop, please talk to me and the GTAs. The practice quiz will be open by the second or third week of classes.
Travel
I may have to travel a few times during the semester. The class will be covered by either the GTA or a guest speaker. As you may already know, my job requires many hours of research (in addition to service and teaching). It is important we do research. This is how we improve the quality of our university and remain current. I also understand if you need to travel for research purposes, hackathons, or work-related events. However, you are responsible for meeting deadlines and keeping up with the work. Don’t travel during exam days.
In addition to travel, I may need to miss a class due to a critical departmental need. I have worked all this into the schedule whenever possible, and we will always have someone teaching the class. Of course, I will deliver most of the lectures.
About the Class Schedule
It is essential to recognize that students’ needs differ from one semester to the next. Therefore, it is hard to have a single schedule that fits all; therefore, the schedule is subject to change. I have created several lectures that can be substituted as needed without disrupting the class flow. I want to cover a few additional topics if time permits.
Attendance (for in-class students)
If you are a face-to-face student (section 001), I expect you to attend every class. Only miss when it is necessary. When a student is having problems, the first step we take is to review their attendance. I expect you to be ready to answer questions during the class. I want you to be an active participant. This way, we all learn more.
College students are adults. I understand if you are unable to attend. Try to minimize the number of times you don’t come. Participation is graded for face-to-face students.
If a student behaves in a manner that is considered prohibited conduct, I reserve the right to ask that student to leave the classroom immediately and report the behavior to the appropriate department.
Electronics
Electronics should be used only to take notes or follow the lecture slides. If you need to text, take a call, or browse, please step outside the classroom to minimize any disruptions. I reserve the right to ask you to turn off your laptop, deduct points for persistent behavior, and/or ask you to leave the classroom. Finally, TAs will monitor your computer activity: no social media, no homework from other classes, and no games. If you are going to use the laptop, try to sit in the back.
Late Assignments and Make-ups
The course offers a 24-hour late-assignment policy, with a 10% penalty applied to the grade awarded (except for exams and the final project). Unless otherwise stated or due to unforeseen circumstances (with the instructor’s consent), no additional time will be granted. There will be no make-ups of exams or activities (unless there is a valid, verifiable excuse). If I extend an assignment, the 24-hour (10%) deduction may be removed. This applies to assignments, not to quizzes or exams. In addition, I will inform you in advance when we release an assignment whether it will not have a late policy.
Extra Credit
There will be an opportunity to earn up to 3% of extra credit (30 points or more). Sometimes, I will offer extra credit, up to 4%, as stated below or announced in class. Here are the ways you can earn extra credit:
- Participate in the CS experiment pool for face-to-face students. Up to 3%, but there may not be enough experiments to reach that amount. The experiment will have a set of points. You must be on the list, and we will rotate the order in which we contact individuals. Everyone will have the same number of opportunities. You will have to register for this list (Registration will open on Canvas at a date to be announced on that platform).
- WOW Factor: 1% — This one allows you to combined 3% and 1%. The WOW Factor is for the final project.
- Exams may have extra credit questions. In the past, I have avoided this, but you never know; it may come back.
- Online Students will have opportunities for extra credit.
- Additional options may appear.
As an alternate option, in case the student doesn’t/can’t do an experiment for extra credit, an alternate research writing will be given, up to the same percentage as the experiment.
Information about Lab Hours
This is a 4-credit course. Three credits are for the lecture; 1 credit is for a lab. The 1-credit is the time you are expected to work on your assignments and/or final project. While this class does not include a recitation, hours will be reserved in the CSB-225 lab for those who want to use those computers. Note that the lab hours are optional and are not graded. Lab hours are already accounted for in the general grade of this class, so use them wisely.
Computer Room Availability
Location: Computer Science Building, Room 225 (in addition to the lab section times on Friday)
| Day | Time |
|---|---|
| Mondays | TBA |
| Tuesdays | TBA |
| Wednesdays | TBA |
| Thursdays | TBA |
| Fridays | TBA |
| After-Hours | TBA |
| Weekends | Fridays 5:00pm to Mondays 8:00am |
Please note that there are other classes that have time blocks in CSB-225 for their students and be respectful of the instructor and TAs assigned to the other time blocks. If you decide to go outside the assigned time blocks for this class, the lab may not be available. In that case you can go after-hours or on the weekends. ALso note that during the hours specified for Monday to Friday, while we do allow other students to use computers, you do have a preference so if you can’t find a computer to use, contact us after you have politely ask the student. We can only use this lab due to the equipment.
Note (not sure if this is true anymore, as we have new computers): The computers have limited free space on the C: drive. Please save it in the D Drive, but note that anyone can access that. Therefore, it is important that you back up to a remote drive (e.g., via SFTP or an external drive) and use Git. We will delete the D drive periodically, so don’t assume your data will remain there. Finally, students can’t see the contents of the D drive. Therefore, please do not leave things that others can copy and use as their own
Respect for others
I do ask everyone to be respectful of others. We want to respect everyone’s right to be who they are. This includes respect for people in the LGBTQ+ community, in minorities (e.g., race, ethnicity, etc.), gender, and gender identification. We also want to be respectful of people’s cultural and personality differences and to be understanding of these differences. I ask that you all respect each other in my class. We want to be respectful of different political positions. However, order in class is a must. If anything concerns you, please contact me. This class deals with humans; therefore, there may be topics on which people differ in their opinions. However, we will always use evidence and science to understand the issues we discuss.
If a student behaves in a manner that is considered prohibited conduct, I reserve the right to ask that student to leave the classroom immediately and report the behavior to the appropriate department.
Important Notes about Projects and Assignments
This course requires an understanding of theory and a hands-on project. In other words, we will emphasize both hands-on experience and theory. Therefore, a level of programming maturity is required to be self-sufficient in the project and assignments. In addition, reading and writing will consume your time.
I ask that you reserve the time needed for this class, based on your understanding of your own schedule. In general, I think a good rule of thumb is to reserve 10 hours (outside of class) to study, while allowing sufficient time for projects. There may be weeks when you need to adjust this. One student may require only 5-10 hours, whereas another may require 20-30 hours. Given that you have taken many classes by now, I do trust that you will manage your time wisely. The rule of thumb is for every credit you need 3-4 hour studies. For a 4-credit course, you will spend 12-16 hours outside of class. This is why 12 credits are considered full-time in undergraduate courses. (Graduate courses require more work, hence 9 credits is full-time).
You should allocate at least 10 hours per week for your final project. Towards the end, you will need more hours.
Details and due dates will be posted in Canvas. Project deliverables must be submitted via Canvas (no email—any email sent with a project will not be graded).
Required Textbook
We will use different resources provided in the class. This may include PDFs and PPTs in Canvas. While we won’t use just one book, here is one of them that is free to download, but you can also get a hard copy in amazon or from other vendors:
https://lavalle.pl/vr : Virtual Reality by Steven M. LaValle. Cambridge University Press, 2023.
Latex
Latex will be required to be used for the research report and checkpoints related to the research report. More information will be available on the project page, which will be available in the second week of classes (by design).
Performance measures that will be considered for grading
In some cases, exam questions are not multiple-choice. Therefore, if the answer is unclear, the instructor will use judgment and experience to evaluate it. The instructor’s judgment applies to all questions, projects, and exams. The judgment is based on the expected answer, the knowledge of the instructor, and the understanding of the level at which this class is set. In addition, because this is a research course, the quality of the work is part of the grade, which may be new to some students.
About Non-Graded Quizzes
We may release some quizzes to obtain more information from you. These are non-graded or survey quizzes. One example of non-graded quizzes is those that are released for you to practice exam questions. While some quizzes might be non-graded, if they are project-related and you don’t do them, you can’t move forward in your project, and your project grade will be penalized.
Important information regarding accommodations for students
- Students should contact their instructor/TA/coordinator as soon as they receive their memo from SDC to discuss their individual needs. Students should read the SDC section of the syllabus for each course before the discussion with the instructor/TA/coordinator. B. The conversation with the faculty member/TA/coordinator should address the specific requests listed in the SDC memo, their applicability, and the reasonable arrangements for each course.
- To the extent possible, students are strongly encouraged to register for lab sections that meet on Monday or Tuesday, to allow for rescheduling later in the week if circumstances require. Since labs follow a weekly cycle, it is generally not possible to make up a lab the following week.
- All students are expected to submit all assignments, including laboratory reports or other assignments associated with laboratory courses, as defined in the course syllabus. Time extensions will generally not be granted for assignments or labs that are collected and graded on a weekly (or longer) basis. This is because scheduled due dates are sufficiently long to accommodate students who require extended time to complete assignments, and many labs build on the skills and concepts learned and developed in prior labs. Extension as a reasonable accommodation may be considered, although circumstances may limit its feasibility.
- It is understood that accommodations cannot fundamentally alter the nature of a course.
- Retroactive accommodations are generally not permitted.
Teaching Philosophy and Other Matters
While not all my classes share the same syllabus, I have some standard practices in my teaching that I would like to explain.
- My objective is for you to learn the core principles of the given class. These principles may vary by course topic, but I ensure you are aware of them whenever possible. In some classes, these topics are easier to identify. For example, if I teach CS 464, Introduction to Human-Computer Interaction, my goal is for you to learn to design and conduct experiments, analyze the results, and write a research report while developing a prototype. In classes I’m teaching for the first time, core principles may not be apparent (as in this class, Virtual Worlds), but they are present, and I will do what I can to learn them. See class objectives above.
- My objective is for you to learn. I aim to follow a science-based approach grounded in learning science. I talk a lot with my friends in the Science of Learning. I recommend this book for anyone seeking to improve education: A Guide to Effective Studying and Learning: Practical Strategies from the Science of Learning by Matt Rhodes et al. Some of the methods I use include repetition, spacing, and others. I recommend this book for every student.
- Like most of us, I want to start from a place of trust. I don’t want to live feeling that I’m being surveilled. I wouldn’t want my students to think that they are in a police state. I will not look to trick you into your assignments or exams. My exams and assignments may contain errors or be difficult, but my goal is to improve my teaching and the learning process for everyone. This does not mean cheating is acceptable in my class. On the contrary, it is not, and you must know the rule for each of my classes. Given the rise of AI, I would prefer, whenever possible, to increase the weight of exams in evaluating your learning. If you cheat, you will do more harm to yourself than anything else. Some classes may need to prohibit AI, and its use can be controversial. Yet, each professor and each level needs to make this decision, and I fully support my colleagues making those decisions as they know their style and their classes best. However, we are in a transition from what computer science was to what it will be, and during this transition, various approaches are being evaluated. I will err on the side of trusting you whenever possible. I’m here for you to learn.
- I was hoping you could read this very well-written blog. Accusatory AI: How a Widespread Misuse of AI Technology Is Harming Students — You may need to subscribe for free to obtain this article or pay for it. However, if you are unable, I’m providing a copy to those who need it under the Fair Use doctrine (as provided by copyright law), in Teams, as the start of class. The point is that AI detectors and other uses cannot only be incorrect but also disproportionately affect groups that have been historically marginalized. Note, you need to learn how to code with AI, but at the same time, you need to learn with AI. The computer science of the future is yet to be written, but it will not look like your father’s computer scientist. Yet it is essential that each class has distinct rules, and you must understand and respect them.
- I’m a reasonable professor. However, by design, there is a separation between the students and me. I’m in a position of power, and I can affect your grade. Therefore, I must be mindful of this and also remind you that we are not friends, even when I’m very friendly. That said, there are behaviors that I will stop. This also means that TAs do not date students, and professors don’t date students or TAs. I also ask that you please be respectful of the TAs. The TAs are here to help you, and they will not appreciate being asked on a date.
- It is essential that when in doubt, you ask me. This is another way I try to clarify concepts for students. Make sure it is in writing, so I can’t say later, I forgot.
- I’m the ultimate arbiter of this class; however, you are within your rights to appeal your grade or even email my superiors. However, one lesson I want to convey to you, as computer scientists, is that, in most cases, emails are read by many people. Unless there is significant abuse, first attempt to resolve the issue with the professor. This will help you navigate issues with a supervisor.
- Remember, your grade is just an evaluation of where you were during the given class during a given period. It says nothing about you. While wanting to have an A is the goal, getting a B or a C does not mean you are an bad computer scientist; it just means, given the evaluation metrics given, you were not able to get an A for a given class in a given semester. It says nothing about you.
- I will not tolerate sexual harassment or abuse, and I will report it—the same thing with physical violence or intimidation to others. Maintaining a safe classroom environment (not safe from debate but safe from violence, abuse, and related harm) is critical to learning.
- I want you to have as much fun as you can when there is grading!
The AI dilemma: To AI or not to AI, this is the question?
Here is the biggest problem that I don’t have an answer for yet. I will explore this in class, as I consider it imperative. In addition to ethical considerations (energy, copyright infringement, confidentiality, and others), there is the question of how computer scientists should use AI to aid their writing and coding. And these two are different. I don’t have an answer, but I will tell you what I think today, as of Spring 2026. This may change in the future.
Coding: If you ask AI to explain something, this can be useful. If you ask an AI to help you find something, this may be useful (though it may be incorrect). However, if you tell AI to code everything for you, then you will not learn at all. Not only that, even if you know how to code, at what point are you not able to maintain the code anymore? There are obvious telltale signs that AI coded it all. Then you face the following problem at work. If a company wants you to use AI all the time, how do you code? (I believe our department may have a class in the near future on how to code with AI). If you go to a company that exists but only allows you to use its “LLM” version, which, based on conversations I have had with recent former students, is not great, so people don’t use it, how would you code? If you go to a company that does not let you use any AI, how would you code? If you are doing this to pass the class, then why are you studying computer science in the first place?
Writing: Here is a more problematic use of AI. The text AI produces in many cases, it does not say anything but big words that are meaninless. The struggle to communicate science is key to learn this valuable skill.
I will describe how we will and will not use AI later in this syllabus.
Collaboration in this class CS-465
Collaboration within groups and across the class is strongly encouraged and expected. It is ok to ask someone. I was trying to do X, but it doesn’t work. Can you show me how you did it? As long as you implement this yourself later and understand it, it is ok. We want real collaboration in this class.
Using CHATGPT, CODE PILOT, or similar large (or small) language models for CS465 or other AI Agents.
While CHATGPT and similar AI agents can significantly help, you must understand when to use them in a university setting, as they can also be a detriment to you. For example, I have found ChatGPT to be very useful when I want it to describe a well-known concept (e.g., Fitts’ law). There are legal issues beyond the scope of this class that must be considered. There are also ethical issues, and I will discuss them in class. However, we can’t close our eyes to the fact that LLMs are helping people with coding and other tasks. They do make mistakes. In some companies, employees are asked to use them. In others, they may have their own LLMs due to restrictions, but they don’t function well.
In my class, when it comes to coding, I will allow the use of LLMs/AI. All students get Copilot / ChatGPT. However, what I will not allow is the entire code to be written by AI. You must use it as a tool. Finally, you are responsible for the code, so if I ask you a few questions about your code and you don’t know what it does, I can give you a zero. Therefore, make sure the code is yours, but use AI to support your learning process. You will not be able to tell me, “AI did it, so it is not my responsibility.” Ultimately, this is your code.
When it comes to writing, this is different. You can use AI to help you in a few things, but I don’t want you to use AI to rewrite your paper (other than tools like Grammarly). You remain responsible for the content, and if I ask you and you don’t know, you will also receive a zero. Don’t use AI to write your paper; use it to help you. However, if you cite something that is not relevant or does not exist, it is your responsibility.
You must acknowledge how you use it!
While this is not relevant to this class, it is essential to note that conferences, journals, and magazines now require that any content generated by Generative AI be appropriately referenced or acknowledged.
Refer to the IEEE submission policy and the ACM authorship policy.
According to these policies, IEEE: “The use of generative AI tools and technologies to create content is permitted but must be fully disclosed in work.”
ACM: “AI-generated text shall have a citation to the AI system used to generate the text.””
When using Generative AI to improve the quality of your text, be careful. Even when using it for enhancements, always double-check the output before incorporating it. The ACM policy clarifies that: “If you are using generative AI software tools to edit and improve the quality of your existing text—much like a typing assistant such as Grammarly to improve spelling, grammar, punctuation, clarity, or engagement—or to use a basic word processing system to correct spelling or grammar, it is not necessary to disclose such usage of these tools in your work.”
While Generative AI is a powerful tool, it’s essential to evaluate the content it produces critically. AI-generated data can carry biases; results may be inaccurate, including hallucinations, and references are often incorrect. Moreover, submitting a paper with vague or unsound text greatly increases the risk of rejection. Whether you aim to publish to enhance your CV or improve your skills, I am here to help you refine your writing skills. Quality will also factor into your grade.
Professionals who effectively use large language models (LLMs) as tools while critically assessing their outputs may thrive in their careers — I (francisco) do not personally like them too much yet — You can only critique AI-generated content if you have the foundational knowledge to discern accuracy. Critical thinking is key. Overreliance on LLMs is not the solution.
For this class, if you use a tool such as ChatGPT or a similar tool, you must acknowledge its use in your work. Yet, I’m encouraging you to use it as described above and in class. You can’t use it in all classes. You can use it in CS-465 this semester.
Finally, when it comes to coding, using LLMs or similar tools, I want you to be also aware. Understanding a piece of code may be helpful, but generating code without understanding, or simply copying and pasting it, will be detrimental to your learning.
About Cheating (Traditional, NON-LLMs)
I have adopted the following text from Prof. Thomas Cormen at Dartmouth College (with his permission). Note that for this class, group work is accepted only when explicitly designated as such (e.g., the final project).
Don’t cheat. You know what cheating looks like. I know what cheating looks like. Don’t do it. Make sure that you have understood the Academic Honor in CSU. If you need more details on what constitutes cheating, read on.
On exams, all work must be your own. You may work on short assignments individually or in groups. Programs that you turn in, however, should be created, typed, documented, and output generated, yourself. For the lab assignments (if any), you may consult freely with instructors and classmates during the phase of designing solutions, but you should then work individually when creating your programs—typing, documenting, and generating output. During the debugging stage you may discuss your problems with others in the class, but you should not copy code to “fix” bugs. To do otherwise is a violation of the Academic Honor Principle. If you work with a classmate on any assignment, you should tell us who you worked with in a comment at the beginning of your program.
You should attribute the proper source in any code that you submit that you did not write yourself. This includes code that you take from outside references—for example a book other than the course text. And it even includes code that you take from class examples, a book, or the assignments. (I agree that may be tedious to attribute the source in code that we have given you, but we want you to be in the habit of attributing your sources.) You may want to attribute sites or books that were helpful in any type of assignment.
Whenever we ask you to turn in sample runs of your program, the runs you turn in must be the result of actually running your program. It is a violation of the Academic Honor Principle to falsely represent output as coming from your program if it did not. If you change your program, make sure to generate output from the version of the program that you hand in. It’s amazing how a seemingly minor change to the code can cause a big change to the output of a program. Also, make sure that when you are running a program, that it is your program; it is easier than you might think on a public computer to run a program that someone else had left on the machine.
In the past, we have had a few incidents in which students turned in output that did not come from the program handed in. In each case, it turned out that the student had made a foolish mistake (in not rerunning the program or handing in an old version of the program or the output) and had not intended to misrepresent the work. Yet it caused many an uncomfortable moment for the student and also for the student’s section leader and for the professor as well. So please—pretty please with sugar on top—endeavor to verify that you’re handing in output that comes from the very program you’re handing in.
It is not easy to come up with good homework problems that help you learn a concept, are interesting, and require an appropriate amount of work. Over the years we have developed and refined a number of homework problems, and I plan to reuse some of them for this class. You should not look at any solutions to homeworks assigned in previous terms, including sample solutions, or solutions written by other students.
We have had some uncomfortable situations occur in the past, and I want to make it clear what the policy is. Two students, Alice and Ralph, discuss an assignment and design their code together. That is fine. But then they decide that since their programs would be so similar, they might as well have Alice type in the code, have Ralph make his own copy of the file containing the code, and then have Ralph make his own minor changes. This is a violation of the Academic Honor Principle. Although you may discuss and design with others, the code you hand in must be entirely your own.
Here’s another situation that occurred. Trixie and Ed start working independently on a program. Trixie finishes and has a working version. Ed has trouble with his. Trixie helps Ed debug. That is fine. But then Trixie realizes that Ed has a section of code that is all wrong and the program she wrote has just the right code for that section. She shows Ed her program. Or worse, she gives Ed an electronic copy of her program so that he can just paste in the correct code. Either action is a violation of the Academic Honor Principle.
I realize that it can be hard to decide when you might be violating the Academic Honor Principle when we let you collaborate to a limited extent. Here is a good rule of thumb. If you are talking in normal English (or Chinese or German or some other natural language) you are probably OK. If you find yourself talking in Python code, you have crossed the line. So saying, “Your program runs forever because you have the wrong condition in the while loop” is OK. But saying, “Change while x == 0: to while x >= 0:” is not.
If you have any question about whether what you’re doing is within the Academic Honor Principle, do not hesitate to check with me. If it’s late and you can’t find me, you’re better off erring on the side of caution.
Most violations of the Academic Honor Principle come down to failure to cite work that is not yours. If you copy any portion of your program from your friend Elvira and represent it as your work, then you either intended to deceive or were careless about citing. Either case is a violation of the Academic Honor Principle. If you copy your entire program from Elvira but include the comment, “This code was copied in its entirety from Elvira,” then you cited properly, though you didn’t actually do the work. In this latter case, I would not report a violation of the Academic Honor Principle, though your grade on the assignment would be 0. But that would be far preferable to a more severe penalty.
The same goes for code that you find in some other book or on the Internet. You are in violation of the Academic Honor Principle if you fail to attribute your sources.
You don’t need to cite if you wrote the code yourself. You don’t need to cite just because you’re using a construct you saw elsewhere. For example, you need not cite for using print(“Hello”), even though it was in the class examples. That would be like citing “printing press” in an essay! Nor do you have to cite just because you use a while-loop, even though you saw a while-loop in a class example. It’s when you lift several lines of code from elsewhere that you need to cite.
To cite, include in a comment—near the top of your file is fine—stating where you got the code from:
Please do not cheat. Cheaters—whether or not they are caught—bring dishonor upon themselves and upon everyone else at our institution. To do that, for just a few lousy points in a course, is not worth it. Furthermore, if you cannot solve the short assignments and lab assignments on your own, then you will be nailed on the exams. As you from the grading criteria, even if you get 100% of the points in the programming assignments, you won’t get a good grade if you do badly on the exams. This will be another sign that something is going on.
Special note for when you work on a computer that anyone else might use
If you are working on a computer that is not yours or that someone else in the course might use, you should be very careful to remove your code from the computer when you are all done. You should probably email your code to yourself before you remove the code. Why do we tell you to remove your code when you’re done? Because if you leave your code on a computer, and someone else can see it, then they can copy it and hand it in. If that happens, then we have a bad situation involving you (the copy-ee) and the other person (the copy-er), and it’s difficult—if not impossible—to tell who was the copy-ee and who was the copy-er. By removing your code from the computer when you’re done, you can avoid getting yourself into that situation. Of course, if the code is secure in our network, you may assume that it is fine. However, you are always erring on the side of caution.
I do understand that we are all busy. I do understand that sometimes we helped each other. However, copying is not worth it. Do your best. Work hard. Attend classes. Make sure you have the time for each class that you are taking. Finally, always attribute your information.
Strict Rules Against Copying in This Class.
Cheating will be reported. I will explain during class what constitutes cheating. You will only loose points for the assignment that you choose not to turn in. However, choosing to turn-in a plagiarised assignment may in a letter grade of F for the class and may be followed by additional consequences.