Ubiquitous Learning and Instructional Technologies MOOC’s Updates
NAND2Tetris: Learning Applied Computer Science through Simulations
Simulations are instructional scenarios where the learner is placed in a "universe" defined by the teacher/simulation designer or even the student himself in some cases. They represent a reality within which students interact with the simulated artifacts. Students experience the reality of the new, expected or unpredictable scenarios and gather new meanings from them. A simulation is a form of experiential learning which fits well with the principles of student-centered and constructivist learning and teaching (UNSW, 2018). Instructional simulations also have the potential to engage students in "deep learning" that empowers understanding as opposed to "surface learning" that requires only memorization (Carleton, 2018).
In 2011, when I and my educational initiatives founding team, were planning and preparing to setup a tertiary education institute, we had done detailed simulations using MS-Excel, along with writing Excel Macros (code) for various scenarios, based on our previous experiences and advice from subject matter experts. At that time, without the actual experiential learning for that particular enterprise in a real world setting, which none of the founding team members had, simulations were the only thing we could do. We knew that it was not the perfect solution and we could be off by a margin of 3X or 5X, but at that time, in the absence of too many other viable options, it gave us enough courage to get things started. Also, no amount of theory or textbook could make us feel comfortable enough to start building a University from scratch. Fast forward 2018, once the institute was up and running, and when we repeated the same exercise to project for the next 10-years, we made quite a bit of changes to the original model; however, this time based on our immersive and transformative experiences of the last seven years. This time, we felt a lot more confident in our simulations and they were a lot more detailed and precise, compared to what they were seven years ago. In short, simulations are only as good as the research and more importantly experience of the design team; and improving upon them is a two-way iterative process. Using simulation tools, you make certain decisions and learn new things, and sometimes give new meaning to old ideas, and depending upon how they pan out, you make changes to your simulation model; hence, your real world learning feeds into your simulation models. Of course, this was dependent upon us being able to distill complex decisions into numbers and equations and eventually a comprehensive financial model. It was an invaluable method and guides us to this day.
On the other hand, if it were some sort of negotiation with an adversary and/or multiple parties, a scenario-based mock negotiation simulation would have yielded new learning and enhanced our understanding of the complex bargaining positions of various adversaries. This is also an excellent way of seeing textbook theories being applied in real-world situations. Business schools across the globe have extensively used such simulations, at least for a couple of decades now, to teach Managerial Negotiations, mostly to graduate students. A similar understanding can be derived from mock legal trial simulations, i.e. even in matters of life and death; even if such simulations cannot be reduced to simple numbers, equations, laws of physics, or lines of code.
From all the three simulation examples above, it is evident that simulations are being used to learn in uncertain and unpredictable situations where the human element is very dominant. Interestingly, in Computer Science and/or Computer Systems Engineering, it is the exact opposite. The various Simulators are used to enforce exactness. I.e. Simulators are used to ensure that hundreds of rules are exactly followed to build a complex system, layer by layer.
As an example, which I will now elaborate upon, when it comes to teaching Introductory Computer Science, especially, in a higher education setting, my absolute personal favorite, and simply a masterpiece is the NAND2Tetris course/platform. It has a 12-week, intensive, weekly projects centered course which takes a students from a very basic NAND logic gate, to building a simulated computing/hardware platform, to building an Operating System, to building a programming language and to eventually writing code to run a Tetris game on the platform that student has built. Normally, this level of understanding is achieved after at least 2-years of undergraduate computer science study; and all these twelve building blocks beautifully covered in this course, generally require students to take 12 different courses, albeit they enable students to have greater depth at each layer of abstraction, if taken as part of traditional undergraduate degree; however, none of them give an integrated view of an entire Computing System, which this course nicely does. Besides an integrated epistemic view, each week’s concepts can be practiced, via small projects, on the NAND2Tetris Simulation platform, which is also a marvel in its own right; and the students can continue building their simulations on top of each layer of abstraction, which is a deeply fundamental and an essential concept to the entire field of Computer Science.
Furthermore, a course/platform, which ordinarily would have required at least 2 or 3 different computing hardware labs to conduct, has been extraordinarily energized as a MOOC due to deeply integrated simulators which simply run on a student’s standard PC. It enables self-paced learning; it enables differentiated learning; and there are numerous directions that the students / teachers can expand this course towards; and finally, using the same concepts and tools, this course can be made simpler for High School students or can be made very challenging even for doctoral students. I have rarely seen a platform which has this level of expansive capacity to teach audience of various backgrounds.
Nand to Tetris courses are now taught at 100+ universities and high schools around the world. The students who take them range from high school students to Ph.D. students to Google engineers.
– 2017 Shimon Schocken and Noam Nisan.
To summarize, the new learning afforded by this learning technology – NAND2Tetris simulators - (Cope & Kalantzis, Instructional Technologies, 2018) are multi-modal, enables active knowledge making, i.e. changes the balance of agency, and in many cases are the only option to proceed to the next steps of learning and understanding Computer Systems, especially at large scale, since it takes away the dependence of having physical labs. I believe various types of simulators will continue to play an integral part in the 21st century New Learning Affordance framework, especially, because it pushes the epistemic dimensions of learning, rather cost effectively and at scale, which we need to thrive in the 4th Industrial Revolution to quickly learn and re-learn at a fraction of the costs and time ubiquitously.
References –
1. (UNSW, 2018): https://teaching.unsw.edu.au/simulations
2. (Carleton, 2018): https://serc.carleton.edu/sp/library/simulations/why.html
3. NAND2Tetris Introductory Video: https://www.youtube.com/watch?v=wTl5wRDT0CU&feature=youtu.be
4. NAND2Tetris Course: https://www.nand2tetris.org/
5. (Cope & Kalantzis, Instructional Technologies, 2018): https://www.coursera.org/learn/ubiquitouslearning/lecture/CPtz1/welcome-to-ubiquitous-learning-and-instructional-technologies