Welcome! In CS 209, we delve into the interdisciplinary endeavor of creating educational applications. This course covers technology, psychology (e.g., motivation, engagement), and pedagogy (e.g., constructivism) as they apply to educational technology so that students can design and build an educational learning application. Labs focus on developing expertise in technology, and readings supplement lecture discussions on the human components of education. The specific goals of the course are these:
  • Learn education theory on how people learn
  • Learn how to create large-scale software in a team
  • Learn a technology in which to implement a learning application

This course will consist of readings (with associated questions), discussion-based lecture periods to discuss readings, their relationships to our experiences, and implications towards game design, labs to develop technical skills, and a group design and implementation project that brings together everything learned in the course. Students will make presentations about their project progress as well as lead a discussion on a learning subject. Finally, there will be a final write-up in addition to the video demonstrating their game.

Getting Help

We do not make use of Canvas; We will use piazza instead - CMSC 209 Computers for Learning.

If you have questions about the course, and those questions are in a sense impersonal — that is, they are about course material or course logistics — we ask that you post those questions publicly on piazza, rather than contacting any of the staff members directly. This ensures you will receive the fastest, most consistent possible response from the staff. Since students usually have common questions, posting public questions is also very efficient for your classmates as well. As yet another advantage, it avoids duplication of work on the part of the staff.

If you have a specific question about your implementation - if any code or partial solution is involved - then ask a private question on piazza, which is invisible to your classmates.

In general, there should be no reason for personal email unless it is for extenuating circumstances.

Class Policies

Laptops will be provisionally allowed during class, provided any student using the laptop is engaged in lecture and wireless capabilities are turned off. If I feel at any time that use of laptops is interfering with the class atmosphere, they will not be permitted any more.

Lab Sessions

Students must register for and attend lab sessions each week. Lab sessions are held in the Computer Science Instructional Laboratory (also known as the CSIL); it is located on the first floor of Crerar Library. Attendance at the lab session for which you are registered is mandatory.

Because of the group project, once the groups have been formed, you may not attend the opposite lab period for credit.


Textbook: Game Design Workshop: A Playcentric Approach to Creating Innovative Games, Third Edition 3rd Edition

Software: The only software we will provide support for is IntelliJ. This is an IDE for compiling, debugging, and running Java programs. If you choose to do so in another way, you will be responsible for figuring out the development process.

Grading / Assignments

There will be weekly reading / writing assignments as well as programming assignments to build your game engine.

Each student’s final grade will be computed according to the following formula: per-lecture reading assignment questions 20%, in-class participation 5%, presentations 5%, midterm 15%, labs 25%, final project 30%. What precisely constitutes an A, B, etc. will be determined by the collective performance of the class. You are guaranteed not to get lower than straight scale (A>=93%, A- (90->93), B+ (97->90), etc.). Due to the group project, a student's final grade in the course can be no more than one letter grade higher than their performance on individually graded portions. For example, if a student has a C on individually-graded aspects of the course, then they are eligible to earn no better than a B when taking into account the group project.

Reading questions are submitted electronically prior to class time.

Late Policy

No late assignments will be accepted for any reason other than hospitalization or death in the immediate family.

Regrade requests

Regrade requests for weekly assignments and exams must be submitted within 5 working days of when you received the grade / feedback.

Academic Honesty

In this course, as in all your courses, you must adhere to college-wide honesty guidelines as set forth at http://college.uchicago.edu/ policies-regulations/academic-integrity-student-conduct. The college’s rules have the final say in all cases. Our own paraphrase is as follows:
    Never copy work from any other source and submit it as your own. Never allow your work to be copied or seen by another student. Never submit work identical to another student’s. Never look at someone’s working solution in order to solve your error. Document all collaboration. Generally, collaboration is forbidden on the reading portion of homework assignments. Cite your sources.

Groups obviously share code amongst themselves, but they are not allowed to share code between groups in any shape or form.

We will enforce the following rule as well: any student who is under suspicion of having violated academic honesty rules will not be allowed to withdraw from this course.

Withdraws, Pass/Fail Requests

All requests for withdraws or Pass/Fail must be received before the project presentations on the last week of class. Note that if you take this course P/F, you may not use it to satisfy requirements for a computer science major or minor.