Turtles, termites, and traffic jams: explorations in massively parallel microworlds
Turtles, termites, and traffic jams: explorations in massively parallel microworlds
A state-of-the-art distributed system: computing with BOB
Distributed systems (2nd Ed.)
The Rational Unified Process: An Introduction
The Rational Unified Process: An Introduction
A Note on Distributed Computing
A Note on Distributed Computing
Principles of Concurrent and Distributed Programming (2nd Edition) (Prentice-Hall International Series in Computer Science)
Is abstraction the key to computing?
Communications of the ACM
Hi-index | 0.00 |
Software development is a highly knowledge-intensive and collaborative activity. Problem resolution processes are performed iteratively during software development. Some students, as novice software designers, possess obstacles that impede the problem solving process and often lead to an inability to solve problems correctly. Students are not proficient in identifying abstractions at different levels as required by distributed systems. The process of generalization by reducing the information content of a concept or of an observable phenomenon is hard to master for novices, who rely on surface features. Implementations of poorly designed distributed processes can exhibit a bizarre behavior. We use an inductive learning approach using several classroom assessment techniques (CAT) to assess how well students are learning. The learning approach is a spiral approach based on reflection and knowledge collaboration for problem resolution. We introduce each level of abstraction with concrete, practical examples of a case-study, relating the abstract concept to students' concrete experiences. The techniques of argumentative essay writing recommended for undergraduates in Liberal Studies and English courses and the CATs for "Assessing skill in problem solving" ("Problem Recognition Tasks", "What's the Principle" and "Documented Problem Solutions") are used for the reflection on the concepts.