"Objectivist concepts of learning assume that knowledge can be transferred from teachers or transmitted by technologies and acquired by learners" (Jonassen, 1999, p. 217).
"Constructivist conceptions of learning, on the other hand, assume that knowledge is individually constructed... by learners based on their interpretations of experiences in the world. Since knowledge cannot be transmitted, instruction should consist of experiences that facilitate knowledge construction" (Jonassen, 1999, p. 217).
"The constructivist approach [to learning] is... based on the premise that students should be able to use what they have learned rather than simply to be able to remember it" (Mayer, 1999, p. 156).
"Remember" vs. "use" can lead to confusion between how teachers instruct and how students learn. Students often study to take an exam, while teachers ask questions like they were interviewing a job candidate.
Learning
"The characteristic that distinguishes someone who learns by understanding from someone who learns by rote is the ability to engage in problem-solving transfer" (Mayer, 1999, p. 147). That means you understand something well enough to transfer that understanding to a new problem and solve it.
"The hallmark of deep understanding is the ability to transfer what was learned to novel situations" (Mayer, 1999, p. 156).
Education
"A primary goal of education is to promote effective problem-solving transfer, that is, to prepare students to solve problems that they have not previously encountered" (Mayer & Wittrock, 1996, p. 47).
"The constructivist approach [to learning] is... based on the premise that students should be able to use what they have learned rather than simply to be able to remember it" (Mayer, 1999, p. 156).
Memorization
Rote memorization is based on rehearsal (e.g., using flashcards). It is appropriate for terminology, definitions, and basic information (e.g., resistor color codes or matching element names with symbols). However, rotely memorized information is unorganized, difficult to recall, and quickly forgotten without reinforcement. Rote memorization is a good starting point but doesn't prepare us to effectively use the information, so it can never be the end of learning. For example, this semester, we will learn that polymorphism has five requirements. But as practicing computer scientists, it's not enough to remember those requirements - you must be able to recognize their presence or absence in a program to understand the program's behavior.
"Understanding is gained by an active process of construction rather than by passive assimilation of information or rote memorization" (Greeno, Collins, & Resnick, 1996, p. 22).
Automation (aka experiential learning) is memorization through use and repeated practice. If practice occurs in authentic contexts (i.e., in realistic problems), the context helps trigger recall when the information is needed to solve a real problem. As a programmer, I didn't try to memorize the for-loop or function definition syntax, but I've used these constructs often enough always to remember how to write them. "Automaticity occurs after practice, normally extensive practice. With sufficient practice, a procedure can be carried out with minimal conscious effort" (Sweller, van Merriënboer, & Pass, 1998, p. 256).
Effective Study
Self-testing: "Unlike a test that evaluates knowledge, practice tests are done by students on their own, outside of class... Although most students prefer to take as few tests as possible, hundreds of experiments show that self-testing improves learning and retention… Short, frequent exams are most effective, especially when test takers receive feedback on the correct answers" (Dunlosky, Rawson, Marsh, Nathan, & Willingham, 2013, p. 49).
Distributed practice: "Students often 'mass' their study - in other words, they cram. But distributing learning over time is much more effective... In an analysis of 254 studies involving more than 14,000 participants, students recalled more after spaced study... than after massed study...." (Dunlosky, Rawson, Marsh, Nathan, & Willingham, 2013, pp. 49-50)
Truly learning something implies that you can use it to solve new problems. As you are studying, ask yourself, "Is how I'm studying going to help me write a new program to solve a new problem in the future?"
Elaboration
To elaborate means "to work out carefully or minutely; develop to perfection" (3), or "to add details to; expand" (4).
"Research comparing excellent adult learners with less capable ones also confirmed that the most successful learners elaborate what they read and construct explanations for themselves" (Greeno, Collins, & Resnick, 1996, p. 19).
Students elaborate what they study by mentally connecting general concepts to problems and identifying which techniques to use to solve a problem and why those techniques are appropriate. At the expense of losing some generality, we can describe elaboration for specific domains or areas of study. Computer scientists can ask themselves a series of questions as they study a program to start the elaboration process. The answers to these questions are an elaboration.
Every program solves a problem.
"How does the problem and the program connect?"
"How does each statement in the program help to solve the problem?"
When comparing similar programs (such as an example and an assignment), ask yourself, "How are the problems similar and how are they different?"
For each statement in the program, ask yourself:
"What does this statement do?"
"How does statement connect with and help solve the given problem?"
"Could this part of the program be written in a different way?" If it can, "Is one way better than another?"
"Does this statement need to be here or can it move to a different location?"
Dunlosky, J., Rawson, K. A., Marsh, E. J., Nathan, M. J., & Willingham, D. T. (Sept/Oct, 2013). What Works, What Doesn't. Scientific American Mind, 46-53.
Greeno, J. G., Collins, A. M., & Resnick, L. B. (1996). Cognition and learning. In D. C. Berliner & R. C. Calfee (Eds.), Handbook of Educational Psychology (pp. 15-46). New York: MacMillian Library Reference USA.
Jonassen, D. H. (1999). Designing Constructivist learning environments. In C. M. Reigeluth (Ed.), Instructional-Design Theories and Models: A New Paradigm of Instructional Theory (Vol. 2, pp. 215-239). Mahwah, NJ: Lawrence Erlbaum Associates.
Mayer, R. E. (1999). Designing instruction for constructivist learning. In C. M. Reigeluth (Ed.), Instructional-Design Theories and Models: A New Paradigm of Instructional Theory (Vol. 2, pp. 143-159). Mahwah, NJ: Lawrence Erlbaum Associates.
Mayer, R. E., & Wittrock, M. C. (1996). Problem-solving transfer. In D. C. Berliner & R. C. Calfee (Eds.), Handbook of Educational Psychology (pp. 47-62). New York: Simon and Schuster Macmillan.
Sweller, J., van Merriënboer, J. J. G., & Paas, F. G. W. C. (1998). Cognitive architecture and instructional design. Educational Psychology Review, 10(3), 251-296.