# Balancing Assignments: A Typological View
In my experience, all Computer Science assignments fall somewhere along two axes:
Academic <-> Real-world
Theory <-> Interactive
By placing an assignment on these two axes, you end up with four types of assignments. This document is a discussion of these four types of assignments, how they relate to student engagement, and how educators can use them to create fantastic student experiences.
## The 4 Types
### Type 1: Academic & Theoretical
An academic and theoretical assignment is the most abstract and conceptual type. The student does not write code, and the information is not clearly relevant to any real-world task.
Examples: Memorizing terminology, labeling diagrams, manual calculations.
*Student engagement: Low*
### Type 2: Academic & Interactive
This is the most common type of assignment in CS education today. An academic and interactive assignment involves real coding, but not for a real purpose. The programming is either purely academic or a heavily-simplified version of a real concept.
Examples of these assignments:
1. "Write a function that does X" exercises
(example: CodingBat.com)
2. Implementing a caesar cipher
*Student engagement: Medium*
### Type 3: Real-World & Theoretical
This is how industry relevance is typically addressed in CS education today. Students are given facts and figured about how the concept they are learning is applied in the real world, and asked to remember them.
Examples: Memorizing use cases, job descriptions, researching and writing about real-world CS
*Student engagement: Medium*
### Type 4: Real-World & Interactive
A real-world and interactive assignment provides a student with opportunity to code something they could actually use in a future career.
This is the most difficult type of assignment to develop, because you have to find ways to apply the student's limited experience to the topic in a meaningful way. When accomplished, it's the most powerful.
This is why in CS education, if you're going to find a project in this category, it will usually be for senior students.
Examples: Projects and labs that incorporate real-world concepts and applications
*Student engagement: High*
## Effects on Engagement
At the end of each assignment type description, I included my estimation of student engagement for that type. Here is a summary:
Academic + Theory -> Low
Academic + Interactive -> Medium
Real-world + Theory -> Medium
Real-world + Interactive -> High
#### Interactive vs. Theory
The reasoning behind interactive vs. theory is fairly straightforward. Humans learn better interactively. 9 times out of 10, a student will find it more interesting to *do* something than to just read or write about it. This is a well-known fact in modern education, and is evidenced by the common nature of academic-interactive assignments.
#### Real-world vs. Academic
Students are constantly being bombarded with information they're expected to learn, and it's more than they can reasonably retain. In order to prevent burning themselves out, they have to create mental filters as a means of survival. They ask themselves, *"Is this something I acually NEED to know?"*, and focus their attention accordingly.
As a result, real-world assignments feel more engaging to students than their academic counterparts. For tech students, academia is temporary, and as a result, academic knowledge only has temporary usefulness. Real-world information, however, informs their future career and long term success.
## Finding the Balance
So, if a real-world interactive assignment is the most engaging for students, why isn't that our only form of instruction?
The simple answer is: *"Because it's hard!"* For an interactive assignment to be effective for a student, it has to be at a sufficiently low difficulty level to be within the student's capabilities. This is directly in opposition of the goal of using real-world application, since the careers for which our students are preparing inherently require advanced knowledge.
An invariably real-world interactive curriculum is an impossible ideal, because if students were capable of doing the work of the future careers, they wouldn't be students! Instead, we as educators have to balance an appropriate mixture of assignment types.
Academic interactive assignments provide students a way to learn HOW to implement solutions in a simplified, accessible context. Real-world theory assignments let students explore topics beyond their technical capacity.
Even academic theory assignments, the least engaging, can be beneficial to students. Some degree of terminology and basic conceptual understanding is required to make a foundation for technical knowledge. Since these assignments are often unengaging for students, it's important that intersperse these assignments with more engaging activities.
Finally, it's worth consideration that these types are, in reality, not nearly as discrete as I have made them out to be. It's entirely possible to have an assignment that sits half-way between real-world and academic, or between theory and interactive. These are perfectly valid options, and worth consideration when designing an assignment.
It is my hope that this document can help other educators to think more critically about what kinds of assignments they're presenting to their students, and how those assignments affect student engagement and learning.
## Appendix
### Diagram: Topical Identification of the 4 Types
This diagram demonstrates planning a unit of cryptography curriculum by identifying which components fit on which axis.
