Syllabus

DateDescription
08/19/2025First draft released for Syllabus
08/22/2025Syllabus Release
08/22/2025Syllabus Release
08/26/2025First day of class and Final Release

Engaging in Virtual Worlds

This is a 400-level computer science course about virtual worlds.

2025 Fall Semester Details

Status of Syllabus 

  • The syllabus is subject to change, as long as it is communicated to the class.
  • Date Created: Draft mode (August 19, 2025)
  • Syllabus Released Data August 22, 2025 @ 5:16 pm
Updates to Syllabus

COVID-19 

The protocol for COVID-19 has changed. Please refer to https://covid.colostate.edu/ for more information.

Profesor

Francisco R. Ortega, Ph.D (NUI Lab).

  • Associate Professor (tenured)
  • Office: CSB-360. Available for Zoom/Teams.
  • Office Hours: Tuesdays from 10:10 to 10:55 and 10:55 to 11:40 in CSB 360 (unless otherwise stated. Please check Teams always). Available for Zoom/Teams if you are an online student.
  • Phone Number: 1-970-491-7445 (I don’t use this number as much)
  • Email: fortega@colostate.edu

Note: Office hours will begin the second week of school (week of 8/26/2024). My preferred method of communication is via e-mail. Other times may be available upon requestTime are subject to change. I will announce it via teams My office hours are subject to change.

  • Office hours are subject to change, but if this happens I will inform the class.

Graduate and Undergraduate Teaching Assistants (GTAs & UTAs)

Jacinda Li (Ph.D. Student)

Zahra Faeze Borhani (Ph.D. Student)

Regan Williams (Undergraduate)

  • Office Hours (MS Teams): Mondays 9.00-9:50 am; Tuesdays, Wednesdays, and Thursdays 9:00-9:50 am and 10:00-10:50 am.
  • Email:  Regan.Williams@colostate.edu

Alessia Gambera (Undergraduate)

  • Office Hours (MS Teams): Thursdays and Fridays 8:00-8:50 pm and 9:00-9:50 pm; Saturdays 1:00-1:50 pm, 2:00-2:50 pm and 3:00-3:50 pm.
  • Email: Alessia.Gambera@colostate.edu

Note: TAs will hold office hours in the CSB-225 lab or Teams. Remember, office hours start the second week of classes. There also no office hours for anyone the week of final exams.

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 recorde,d but I can’t guarantee the functioning of the system. 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 important, but time resolution is not important.  When emailing me, CC the GTAs. In the subject line, please start with “CS-462-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).
  • Do not use the Canvas communications system to message the TAs or the instructor.
  • If an email requires you to reply two or more times, I may ask you to please arrange to come see me instead, so you can explain your concern in detail, which will allow me to provide a proper and prompt response.
  • Use Microsoft Teams as much as 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 very broad and segmented (in my opinion) field. 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 while in class, unless it’s an urgent matter. If you will be using your computer while in class, ensure that it is only for taking class notes and that your activity will not distract the other students around you.

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 / Design Courses 

While Human-Computer Interaction (HCI) courses may vary, some, including this one, concentrate 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 focus on programming (e.g., CS310h), this particular course contains a greater emphasis on reading and diverse topics, while still requiring programming. Please ensure you are comfortable with this style of class. Otherwise, you may not like it. 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 sparked 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 with 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, in some of my course. Yet, you are lucky with CS-462, as there is no research paper to write. This does not mean that you don’t have to write code; however, given the amount of time and style of some of these classes, the class will have more lectures about 3DUI/AR/VR Theory. CS 462 will be a combination of theory and hands-on work. It is a capstone, and professional/student maturity is expected at this level. You may be required to write a small document about your project in terms of the design choices you made. However, it is not a research paper.

Overview 

This senior course covers virtual worlds and the Unity Game Engine. We will not use virtual or augmented reality in this course. My objective is for you to demonstrate the ability to create a virtual world using Unity Game Engine while learning more enduring concepts and theories.

CS 462 will cover theoretical topics related to virtual worlds, gaming, and other relevant material. On some occasions, we may discuss code (not in many of the classes). As a 400-level course, we will provide the resources to support your learning needs. We have a book that takes you step by step, and the TAs to support you along the way. It will be a fun class.

This is my first time teaching CS-462; therefore, I appreciate the understanding you may have, as I have understanding with you all, given that we will be working towards one common goal. It is to learn. My objective is for you to learn a few particular topics and leave you with the ability to succeed in other computer science tasks in the future. How? I believe I provide an interesting approach that provides the support you need while also allowing you to take responsibility as a computer scientist. It is my hope that you will learn key topics in this class, as well as how to be a computer scientist.

In all honesty, no one knows what the computer scientist of the future will be like. We are in a transition due to LLMs, and we need to come to terms with what this will become for the profession. My outlook is positive in the long run.

Labs 

There are no actual labs, per se. Meaning, no labs for you to attend. However, there will be labs for you to do.

Groups 

The professor will allow groups of 3 to 4. He may choose to make exceptions for groups of 1 or 2.

Students can form their own groups, and the professor can provide assistance if needed.

Prerequisites 

See advisor or CS website.

Grading Scale

GradeRange
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 a total of 1,000 points; therefore, 1,000 points = 100%. This is the breakdown by percentage:

Grading GroupPercetangeNotes
Syllabus1%Quiz about the syllabus.
GitHub + Team Actions2%The setup and continuous use of the repository for assigned tasks.
Participation & Attendance2%See note below *
Labs4%5 Unity Game Engine Labs. You can drop the lowest one.
Videos6%About games and virtual worlds (Group)
Quizzes5%7 Quizzes. You can drop the two lowest quizzes.
Exams30%There will be 2 exams; the exam with the lowest grade will be dropped.
Final Exam15%Final exam. Cumulative.
Final Project35%Final Project (Rubric will be released late second week of classes with additional info) (Group)
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.

If you are an online student, this 1% will come from MS teams participation.

# 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 

CS 462 will likely not need any additional equipment. However, just in case, if you borrow equipment, please note that it will be provided by the TAs (e.g., 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. For online students, you will receive it by mail unless you can pick it up. You will return it by mail. This is paid by CSU Online. We don’t need the headset right away. If you think you need it sooner, please don’t hesitate to contact us.

Exam Dates 

Exams 1 and 2 will be administered during class time (in the same classroom) using a paper exam. Online students will take a proctored exam on a computer. Online students will have a reasonable time interval to take the exam, but the duration will be the same as that of the face-to-face students.

Tentative Exam Dates:

ExamDate/Time
Exam 110/14/2025 (Tuesday) @ class time
Exam 211/13/2025 (Thursday) @class time
Final Exam *Monday 12/15/2025 940 AM to 11:40 AM
(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 (Online students only)

You will need to have a computer or laptop in a quiet location to take the exam. The exam will be proctored by the system provided by the university. You will be required to take the practice quiz by a specific date to test your system, either on your laptop (for face-to-face students) or on your laptop/desktop (for online students). If you have trouble obtaining a laptop, please contact me and the GTAs. The practice quiz will be open by the second or third week of classes.

Face-to-face exams

Paper Exams will be in class. No electronics allowed unless they are for medical purposes. A list of exclusion elements includes (but is not limited to) smart glasses, smartwatches, regular watches, headphones, laptops, tablets, computers, and other similar devices. If you require accommodations, please work with the SDC and the testing center to arrange them. We are always very supportive of any accommodations that are in your SDC letter.

About Exam Questions

I use Grammarly to correct some of my spelling at times. Additionally, I may utilize an LLM to refine questions in the exams I write and adjust their difficulty.

Groups 

TBA — See website (to be ready second week of courses, by design)

Advance Project Track

There is an advanced project track, where the project is worth 45% of the total grade. This track requires approval from the instructor and is intended for individuals who are capable of conducting research related to this topic. Please talk to me. This will allow you to skip the labs (4%) and the videos (6%). Advance project track is a research project and I will have to be sure you qualify for it. The bar is higher in terms of getting a high grade here and I look for research experience or having taken a research course here in CS before in HCC. I reserve the right to refuse the project.

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. The reason, as you may already know, my job requires many hours of research (in addition to service and teaching). It is important that we do research. This is how we improve the quality of our university and allow us to stay 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 teach the majority of lectures.

About the Class Schedule 

It is essential to recognize that the needs of students from one semester to the next can vary significantly. Therefore, it is challenging to have a single schedule that suits everyone; consequently, the schedule is subject to change. I have created some lectures that can be swapped if needed, without affecting the class flow. I would also like to cover a few additional topics, if time permits. Given that this is my first time teaching this class, I’m preparing the material as we go. If this is not ok with you, another class may be a better fit.

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 thing we do is view 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’re unable to come. Try to minimize the times that you don’t come. Videos are for online students. Face-to-face students are responsible for the material covered in class. Material in class is as valuable as anything written. On very rare occasions, if there is a CSU sanction event (and you will still be using those 5 absences for those) or a documented conference travel, I may choose to release videos to those face-to-face students who were involved in that activity.

I may choose to release specific videos when I think it serves the class (e.g., exam review) or release a video to a specific student if I think it is needed given special circutances. This is the first time I’m not making videos available to face to face student and it is design to bring additional students to class. However, one of the criteria to release a video to a specific student will be weighted against factors including the past attendance.

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 

The use of electronics in class should be limited to taking notes or following 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 if this behavior persists, and/or request that you leave the classroom. Finally, TAs will be monitoring your laptop usage, ensuring that you are not engaging in social media, completing homework from other classes, or playing games. If you are going to use the laptop, try to sit in the back. I do reserve the right to ask you to stop. Please, do not come to play video games or do homework for other classes.

Late Assignments and Make-ups 

The course offers a late-assignment policy of 24 hours from the deadline, 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). I reserve the right to refuse the request. If I extend an assignment, the 24-hour (10%) deduction may be removed.

When it comes to exams, we offer drop options in case you are sick or something unexpected happens. I usually do not allow makeup unless there is a major event. You have the drops for those events.

Extra Credit 

There will be an opportunity to earn up to 3% of extra credit (30 points or more). Sometimes, I will allow 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. Up to 3% but there may not be enough experiments to reach that amount. The experiment will have a set of points. You will have to be on the list, and we will rotate who we call. 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 combine 3% and 1%. The WOW Factor is for the final project.
  • Exams may have extra credit questions. In the past, I have stayed away from this, but you never know, it may come back!
  • Additional options may appear.
  • For face-to-face students, the pop-up quiz will be included as extra credit.

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, and one credit is for the 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. Please note that lab hours are optional and 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) — These are times for 2025, but they are subject to change

DayTime
MondaysALL Day
TuesdaysALL Day
WednesdaysALL Day
ThursdaysALL Day
FridaysAll Day
After-HoursAlways open
WeekendsFridays 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: These are new computers now in CSB 225. More info to come if needed.

Respect for others 

I do ask everyone to be respectful of others. We want to respect everyone’s right to be themselves. This includes respect for people in the LGBTQ+ community, in minorities (e.g., race, ethnicity, etc.), gender, and gender identification, etc. This also includes respect for everyone, regardless of their beliefs or political views. We want to respect all people. We also want to be respectful of people who are different, have different cultures, and personalities, and strive to be understanding of these differences. I ask that you all respect each other in my class. If anything bothers you, please don’t hesitate to reach out to me. This class deals with humans; therefore, there may be topics on which people differ in their opinions. However, we will always use facts and science to understand the topics we talk about. We ask for respect for everyone, even when you disagree politically or otherwise.

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 is a course that requires an understanding of theory and a hands-on project. In other words, we will emphasize hands-on experience as well as theory. Therefore, a level of programming maturity is needed to be able to be self-sufficient with the project and assignments. In addition, reading and writing will also take your time.

I ask that you reserve the necessary time for this class, taking into account your own understanding of yourself. 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 only need 5-10 hours in total, while another one may need 20-30 hours. Given that you have taken many classes by now, I do trust that you will manage your time wisely.

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 through the Canvas system (no emails — any email sent with a project will not be graded).

Required Textbook 

Unity 6 Game Development with C# Scripting: Leverage C# scripting in Unity to create immersive games and VR experiences by Lem Apperson. ISBN-13 ‏ : ‎ 978-1835880401

Performance measures that will be considered for grading 

In some cases, the questions in exams are not multiple-choice. Therefore, if the answer is not clear, the instructor will use judgment and experience to determine the evaluation of such an answer. The instructor’s judgment is used for all questions, projects, and exams. The judgment is based on the expected answer, the instructor’s experience, and the understanding of the level at which this class is set.

About Non-Graded Quizzes 

We may release some quizzes to gather more information from you. These types of quizzes are non-graded quizzes 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 quizzes, 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 

  1. 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 discussing it with the instructor/TA/coordinator. B. The discussion with the faculty member/TA/coordinator should address specific requests listed on the SDC memo, their applicability, and arrangements that are within reason for each individual course.
  2. To the extent possible, students are strongly encouraged to register for lab sections that meet on Monday or Tuesday, allowing for possible rescheduling later during the week if circumstances require it. Since labs follow a weekly cycle, it is generally not possible to make up a lab the following week.
  3. 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 upon the skills and concepts learned and developed in prior labs. An extension as a reasonable accommodation may be considered, although circumstances may limit this possibility.
  4. It is understood that accommodations cannot fundamentally alter the nature of a course.
  5. Retroactive accommodations are generally not permitted.

Teaching Philosophy and Other Matters

While not all my classes can share the same syllabus, I have some common practices when I teach that I would like to explain.

  1. My objective is for you to learn core principles for a given class. These principles may change depending on the topic of the class but I make sure you learn them whenever possible. In some classes, these topics are easier to identified. For example, if I teach CS 464, introduction of human-computer interaction, it is my goal that you learn how to run experiments, how to analyze them, and how to write a research report while coding a prototype. In classes that I’m teaching for the first time, sometimes the core principles may not be notice (like in this class, Virtual Worlds) but there are in the class and I will do what I can to learn them.
  2. My objective is for you to learn. I try to follow science-based approach from science of learning. I do talk a lot with my friends in Science of Learning. I recommend this book for anyone that want to figure out how to improve learning: A Guide to Effective Studying and Learning: Practical Strategies from the Science of Learning by Matt Rhodes et al. Some of the methods that I use include repetition, spacing, etc.
  3. 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 feel that they are in a police classroom state. I will not look to trick you into your assignments or exams. My exams and assignments can have errors or be difficult, but my goal is how can I improve my teaching and the learning process for you all. This does not mean cheating is acceptable in my class. In the contrary, it is not, and you must know the rule for each of my classes. What it does mean is that I see the students working together with the professor for a common task. Given the rise in AI, I rather whenever possible increase the weight of exams to evaluate your learning. If you cheat, you will do damage to yourself more than anything. It is true that some classes may need to prohibit AI and the use of AI can be controversial. However, we are in a transition from what computer science was and what computer science will be, and during this transitions, different approaches are being tried. I will err in trusting you whenever possible. There is no reason to trick you into cheating (that I think of it as entrapment) because I will evaluate you in the exams. There is also no need because if you search reddit and other sites, you will see many extremely bright students writing programs to remove some of the constraints that people are putting in different activities. I’m here for you to learn.
  4. I want you to 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 paid. However, if you are not able, I’m providing a copy to those that need it using under the Fair Use (provided by copyright law). The point is that AI detectors and other uses, not only can be incorrect but they could disproportionate 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.
  5. I’m a reasonable professor. However, by design, there is a separation between myself and the students. 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. Having said this, there are behaviors that I will put a stop to it. This also means that TAs do not date students, professors don’t date students or TAs, etc. I also ask to please be respectful of the TAs. The TAs are here to help you and they will not appreciate being asked in a date.
  6. It is important that when in doubt, you ask me. This is a another way that I try to clarify anything to students. Make sure it is in written, so I can’t say later, I forgot.
  7. I’m the ultimate arbitrer of this class; however, you are within your right to appeal your grade or even email my superiors. However, one lesson that I want to provide to you as computer scientists, all emails become known to the person who is being targeted in most cases. Unless there is major abuse. Learn this because before you argue, talk to the professor.
  8. Remember, your grade is just an evaluation of where you were during the given class during a given period. It does not say anything about you. While wanting to have an A is the goal, getting a B or a C does not mean you are a bad computer scientist, it just means, given the evaluations metrics given, you were not able to get an A for a given class in a given semester. It does not say anything about you.
  9. I will not tolerate sexual harassment or abuse and I will report it. The same thing with physical violence or intimidation to others. Keeping a safe space in the classroom (not safe from debate but safe from violence, abuse, etc.) is critical for learning.
  10. I want you to have fun, as much as one can when there is grading!

Collaboration in this class CS-462

Collaboration within a group and within the class is extremely encourage 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, I will allow the use of LLMs/AI. All students get Copilot / ChatGPT. I have heard that CSU will have RAMGPT starting in October.

While it 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 properly 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 critically evaluate the content it produces. AI-generated data can carry biases, and results may be inaccurate, with 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.

Regarding this class, if you use a tool like ChatGPT or a similar one, you will need to acknowledge its use in your work. Yet, I’m encouraging you to use it. You can’t use it in all classes. You can use it in CS-462.

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 useful, but generating code without understanding and simply copying and pasting it will be detrimental to your learning.

About Cheating (Tradional, 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 when it is indicated to be group work (e.g., 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.