
A good quote from the paper introduction "students lack the metacognitive awareness to self-regulate their progress" meaning we begin the implementation before thinking about the problem, get frustrated when our solutions don't work or are filled with bugs, and give up too early. The whole paper is worth a read since you are doing the same course the paper is about. Watching the lecture, if you look up the professor's Brown university page he has a paper about on Examplar detailing how many tests the students typically write which is 30+. In such a case, the species as a whole can be thought of as having found a better solution through natural selection. The gazelle with the better solution stands a better chance of living to reproduce. A single gazelle cannot exploit all of the posed solutions to the problem of avoiding lions simultaneously, but the species as a whole can. Some gazelles may be fast, others may be more wary and timid, while others may be more aggressive and protective of their young. For example, gazelles as a species actively seek a solution to the problem of avoiding lions.

As an added bonus, subtle variation among the units of a parallel system allows for multiple problem solutions to be attempted simultaneously. If some ants die, a task still has a good chance of being finished since similar ants can substitute for the missing ones. Parallel systems that are redundant have fault tolerance. A parallel system is inherently more efficient than a sequential system, since tasks can be performed simultaneously and more readily via specialization.

This is obvious, but consider the implications. Ant colonies owe much of their sophistication to the fact that they consist of many ants. There is a book The Computational Beauty of Nature where recursion, parallelism, iteration and other computational properties are all exampled with nature:Ĭollections, Multiplicity, and Parallelism Complex systems with emergent properties are often highly parallel collections of similar units. In other words every aspect of introductory CS has been carefully considered with feedback on what actually works to teach this material, instead of opinion based curriculums which is what you find everywhere else.
FROM SCRATCH SOFTWARE
As this is research driven curriculum, understanding the input/output behavior of these functions was found to help students later understand gigantic system APIs and industry software libraries. There is a heavy focus you will notice as we go through the course labs on higher-order functions, you will have to rewrite map/filter/fold for lists, trees, streams and your own MapReduce. He has tried to fix this in the course we are about to take. He has a 2019 talk here on teaching computer science given at an acm conference on intro to programming books and the problems they have when students escape the subset of the language the book is trying to use like generating confusing error messages. "Even the students who have taken theory of computation (decidability) can't recognize the unsolvable problem (in another course)". See his talk here about curriculum design as an engineering problem and the failure of knowledge transfer defined to mean a skill learned in one context is used successfully in another. The professor teaching the course has a unique lecture style and specializes in research driven curriculum. If you only have access to a tablet or phone you can complete this entire course as there's nothing to install. Let's take Brown University's cs19 Accelerated Introduction to Computer Science which is 2+ semesters condensed into one semester. Leture 23 Detecting Cycles w/union-find.Lecture 10 Balanced Binary Search Trees.Check your work against the official solution.
