WELCOME
As your instructor, it is my pleasure to welcome you to CSE 380. It is important to me that every student feels welcome and be set up for success. While it is assumed that you have programming experience as programming courses like CSE 114 and 214 (or equivalents) are prerequisites for entry into this course, the assumption is game programming is new to you. Note you will be using the TypeScript programming language in this course, which has its peculiarities. But do not fear, it is a language much like JavaScript with some object-oriented features that make it perfect for our purposes. Before we get going, please be sure to read through the complete course syllabus.
FOCUS
As the instructor it is important to me that all students feel they can learn our course material and improve their skills. You can get better at anything using the proper approach, and perhaps the most important component is focus. Note that learning to properly focus is maybe the most important skill students should develop. Doing focused work is how one can achieve great things. But focused work can be exhausting, and being able to do focused work takes practice. Note that schooling is about learning, but it’s also about practice and developing good habits. Doing great, focused work is habit-forming. Doing mediocre, unfocused work is also habit-forming. If you look at the people who are able to solve the most complex problems in the world of tech, they all share in their ability to wrangle their brain for focused work. Note that different people have different work habits and what may work for some may not for others, but I'll share my own experiences:
- I take on the most complicated tasks for first thing in the morning - when the day begins and I've had my first cup of coffee, with my mind clear, I can take on the most complex problems I need to solve. As the day moves along, I am less able to do so. Working at night, and especially late at night, is fine for me to work on repetitive type tasks where the decisions are already made, but at some point it's diminishing returns and I'm not solving anything new.
- Top-down then bottom-up problem solving - When I'm focused on a problem, I can see the big picture and how all the big pieces will fit together from the top level of abstraction, and then break them down (called decomposition) into smaller problems that I can then examine at the most fundamental level and solve separately bottom-up. This is called Decompose-Solve-Assemble and is an essential skill for developers and takes careful, disciplined focus.
- I need to block out all distractions - I find I can only solve complex problems when all distractions are blocked. No TV, no YouTube, no Social Media, even no music. Some people can do focused work while listening to music, I cannot, it simply causes my mind to wander into the song and my brain works best while working on only one thing at a time. Complex problems require complex connections in ones brain's working memory, and so long uninterrupted focused work has advantages.
- It takes practice - As you move along and become a Software Engineer the problems become more and more complex, and so your ability to focus is more and more important in order to solve more and more complex problems. Just as you may go to the gym regularly to get into go physical habits to increase your health and strength it is important that you develop and maintain your ability to do focused work. Again, it can be exhausting, but it is a skill that one can continuously get better at.
FAIRNESS
As your instructor, it is important to me that students feel this course is run in a fair manner. Nothing makes people angrier than when a system is perceived as to be unfair. As such, note that our course policies and rules regarding assignments, quizzes, and exams that are set at the beginning of the semester will not change and that all students are subject to the same policies without prejudice.
FEEDBACK
In order for me to do my job as your instructor, it is important that I know how a semester is going from my students' perspective. Should you ever feel you have been treated unfairly by me or a Teaching Assistant or have received an improper grade, please let me know right away. Corrective action regarding any issue is always best handled immediately and not left unresolved. Additionally, students are encouraged to provide course feedback throughout the semester regarding the courses strengths and weaknesses. It is my hope to make this course better every semester I teach it and student feedback is always important.
AI
We wish to use a modern approach for software engineering our games in this class and such an approach these days would likely make use of AI. Note our course rules regarding AI:
- For your Individual Programming Assignments, you may not use AI to author your code, but you may use it for content creation (like sprites in HW 1). It is important in these assignments that students learn how our games fit together and so must learn the architecture and components of our game engine and how to make use of it. Additionally, we will be emphasizing both the design patterns and algorithms needed in designing such software as these are essential skills for game programmers and these topics will be emphasized in exams.
- For your Team Projects, you will be working using our same game engine but this time teams are permitted to use AI to help make further design decisions and author code but note that teams must document all uses of AI in their project via comments in Source Code and notational messages in Repository Commits.
- Students may not use AI while taking any course Exams or during the Project Presentation. Violating these rules will be taken seriously and such violations will be referred to the Academic Judiciary regarding Academic Integrity.
- No other person should be making contributions to your HWs or project. In the HWs, plagiarism-checking tools will be used to ensure students are implementing things independently. For the team project, each team has three members working with the assistance and power of modern AI software. Teams may not have any other developers working on the project.
- Students should understand that these rules only apply to CSE 380 for the Spring 2026 semester and that other courses may have completely different policies and students should apply appropriate policies to those courses
COURSE DESCRIPTION
COURSE OUTCOMES
At the end of the course you should have the following knowledge and skills:
PREREQUISITES
CREDITS
This course earns students 3 credits.
COURSE TOPICS
LECTURES
INSTRUCTOR
GRAD TEACHING ASSISTANTS (Grading)
UNDERGRAD TEACHING ASSISTANTS (Old CS 2126)
OFFICE HOURS
| Start Time | End Time | MONDAY | TUESDAY | WEDNESDAY | THURSDAY | FRIDAY |
|---|