CodeEasy utilizes a unique set of rules in its curriculum design, setting it apart from traditional programming platforms and tutorials. Our distinct factors include adventure stories, non-sequential presentations of educational topics, and the effective blend of theory and practice.
At CodeEasy, students are given only the essential information needed to complete a task. For example, a traditional approach to teaching data types presents a comprehensive table, like so:
This method, backed by the idea of providing all available information, is common in many programming books and tutorials. While we at CodeEasy support this approach for deep dives into specific topics, we believe it can be overwhelming for beginners. Instead, we select one concept, such as 'int', and focus on it. After students master 'int', we assign practical tasks. Only after these tasks are successfully completed do we introduce new theoretical concepts. This way, learning follows a spiral pattern:
Practice lies at the core of CodeEasy's teaching methodology. No matter how much computer science theory you've amassed, you're only a programmer once you can solve standard tasks in at least one programming language. Every theoretical concept explained in CodeEasy's lessons is immediately followed by practical application; we don't wait until the end of the lesson. Task complexity increases incrementally. To solve the first task, usually, copying the example from the lesson with minimal changes is enough, while solving the last task requires applying all learned concepts from the lesson and usually previous lessons.
All tasks are automated, freeing teachers from checking solutions manually. Once the student's solution meets CodeEasy's criteria, the task is marked as successfully solved. Metrics such as progress percentage, grades, and automatic course complexity adjustment are calculated based on the students' task performances.
When I was studying sorting algorithms at university, our teacher asked us to code 10 different sorting algorithms to understand their workings. I diligently coded several and got a good grade. While I understood how they worked, I didn't grasp why so many existed. A few years later, I took Algorithms 1 and 2 courses by Robert Sedgewick. He not only explained how the algorithms worked but also why they were invented. This context greatly aids understanding and retention. This is the principle behind how we use adventure stories in CodeEasy. Our main character, Teo, encounters problems in the story that require the use of new programming structures, providing context for when and why certain skills or algorithms should be used.
The tech world evolves rapidly, making it challenging for educators to keep up. Conversely, many developers lack pedagogical skills, struggling to effectively explain what and why they do things. We believe that the best education results from a partnership between pedagogical expertise and industry knowledge. That's why all our courses are crafted by software developers with at least five years of industry experience, in close cooperation with college teachers.
Every problem in programming can be solved in various ways. Some methods, considered as industry best practices, are more commonly used than others. With our industry knowledge, we've designed CodeEasy to focus on technologies and approaches that align with these "best practices". This concept is highly subjective and difficult to define concretely. For each task, we include an example solution from our teachers that adheres to all the standards we uphold, such as naming conventions, commenting, memory usage, computational complexity, etc.
The attention span of today's teenagers is notoriously short. As platforms like Instagram and TikTok compete for their time, we aim to engage them in programming theory. This presents a unique challenge.
We've merged an adventure story with programming theory to accomplish several objectives:
Contrary to what some might think, our aim is not to eliminate the need for computer science educators. Instead, CodeEasy is designed to facilitate the teaching process, equip teachers with the necessary tools, and maximize their time efficiency. By employing CodeEasy, teachers can devote more time to individualized student attention, answer unique questions, and collaboratively work on larger projects like games or websites.