Questions tagged [teaching-analogy]
Questions looking for analogies with which to teach computer science principles or concepts, or questions discussing specific teaching analogies for such computer science principles or concepts. Metaphors used in teaching is also an appropriate topic here.
57
questions
43
votes
31
answers
8k
views
Analogy for teaching recursion
When teaching recursion, what is the best analogy people use to teach the idea of recursion. There are some nice artistic representations
And the idea of repeatedly cutting a phone book or ...
30
votes
21
answers
13k
views
Teaching students that printf() is not the same as return
For a few years, I have been teaching a programming class to first-year electrical engineering students -- thus, this is their first contact with computer programming. The language used is C (although ...
27
votes
19
answers
25k
views
What are some good examples of using a stack data structure?
I'm looking for examples to give my students when lecturing about stacks, for use-cases of the stack in programming and life.
So far I've been thinking of a pole of rings (when you can insert or ...
22
votes
9
answers
5k
views
The Tao of TeaChing (Making Mistakes in Front of the Class)
How do you handle it when you make a mistake while teaching? I used to get confused, stammer, blush, etc. But now I just pause and notice that something is incorrect, then correct it if I can figure ...
20
votes
18
answers
6k
views
What is a good analogy for the Object Oriented paradigm?
What is the most effective analogy that you have used or have thought of to teach the object oriented paradigm? Hopefully the analogy can translate well to inheritance as well, and includes the ...
18
votes
10
answers
4k
views
How to respond to the two-handed approach to swapping
I was introducing lists to someone young (in Scratch). Creating a list is boring, so I opted to introduce something that you can do with lists, but requires some thinking: swapping. I introduced it by ...
17
votes
11
answers
3k
views
Explaining access levels and visibility in OOP
While teaching OOP in a high school CS major (in java), it is important (and part of the curriculum in any case) to explain "what is the meaning of this public ...
14
votes
8
answers
7k
views
What would be a good analogy for IP addresses and ports?
What would be a good way to describe ports? I learned about it using this analogy, but it seems pretty inadequate to me:
IP addresses are like street addresses of apartment buildings, and ports are ...
13
votes
12
answers
3k
views
What is a good analogy for pass by value vs by reference?
In general, there are two ways arguments can be passed to a function. Functions can either be passed a reference to an object, or the value of that object. This is something that my students often ...
11
votes
7
answers
514
views
Intuitive example of an NP problem
I was talking to a student today, and explaining that NP problems are hard to solve, but easy to verify. I used password encryption/decryption as an example, but he got stuck. He was unable to ...
11
votes
5
answers
7k
views
What are some good real-life examples of pipelining, latency, and throughput?
The textbook Computer Organization and Design by Hennessy and Patterson uses a laundry analogy for pipelining, with different stages for:
washing
drying
folding
putting away
The analogy is a good ...
10
votes
10
answers
6k
views
Explaining how an Interface is a contract
When teaching Interfaces (in Java, for example), it is common to describe them as a contract. Which means that if a class implements an interface, it has to use the methods in the interface.
As an ...
10
votes
6
answers
1k
views
How can I make database normalization more clear?
Database normalization is needlessly clouded by over-explanation. I reviewed a wide array of web articles and several textbooks before starting to teach it. After I became thoroughly familiar with the ...
9
votes
7
answers
529
views
Introduction to programming class: use Spreadsheets to introduce fundamentals
Are there any "pros" or "cons" I have overlooked regarding using Excel
as a means to introduce a range of fundamental programming concepts.
This question relates to teaching a programming module at ...
9
votes
8
answers
416
views
Exercise or example to reinforce idea of functions?
I have a group of students with a very shaky understanding of functions and their purpose (encapsulation, reuse, modularization). The assignments I give them require them to write simple functions ...
9
votes
7
answers
1k
views
Analogy for static objects (or members)
I'm trying to think of an analogy to explain how static members, references and objects work.
What I have in mind is saying that static is like the number of computers in the world. That parameter ...
8
votes
6
answers
926
views
Students' confusion over C structure members and structure variables
Before I ask my question, some background may be apposite to provide context. Please indulge me.
At the institute I teach, our Intro to Programming. It involves a coverage of C language. We believe C ...
8
votes
4
answers
2k
views
What are some non-CS concepts that can be defined using BNF notation?
I'm preparing a class on the modified BNF notation that python uses. I.e.,
Each rule begins with a name (which is the name defined by the rule) and ::=. A vertical bar (...
8
votes
6
answers
885
views
Analogy for abstract classes
Abstract classes are peculiar things. Consider:
...
8
votes
1
answer
288
views
How can I explain lambda calculus to my class?
My students are pretty confused by lambda calculus. I'm looking for a way to start them off. Is there some image or analogy for lambda calculus that I can use to help them understand in the beginning?
...
7
votes
4
answers
562
views
Avoiding confusion about precedence
When mentioning operator precedence for AND / OR, I explained it wrongly. I re-explained it properly using the idea of binding: the operator "binds tightly" to the two expressions immediately on ...
7
votes
2
answers
337
views
Good, Motivating Examples for Algorithmic Complexity
I was recently reading a really good article on this topic, and I realize that it could be a very good added value for students to understand better and appreciate (and eventually put in practice) all ...
7
votes
3
answers
343
views
How to explain combinatorical principles like the rule of product to students who "just don't get it"?
I assist in courses that provide mathematical background to computing science students. Every year, there are some who "just don't get" (in their words) concepts like the rule of product or the ...
6
votes
4
answers
875
views
What is a good way to explain computer viruses?
As part of my class, pupils have to learn what a virus is.
I am looking for a better way to explain viruses or a better metaphor than the biological virus. The problem with a biological virus as a ...
6
votes
4
answers
4k
views
What is a good analogy to introduce databases and SQL?
I think that it is vital to introduce each subject area with a few handy, even if limited, images or concepts that make the idea clear. Here is how I introduce SQL (in part):
SQL takes a set of ...
6
votes
5
answers
798
views
Explaining how the Internet and the World Wide Web work
I have been having trouble finding a good resource (ideally a video) or analogy that helps me to explain how the Internet and the World Wide Web work.
It does not need to be too in-depth. Only enough ...
6
votes
2
answers
209
views
Principles of SOLID in OOP
I am trying to prepare lessons about the five SOLID principles of Object Oriented Programming to high school students that have learned about polymorphism, abstract classes and interfaces.
However, ...
6
votes
2
answers
179
views
Is the CRT still relevant when introducing display hardware
In the context of an undergraduate course on microprocessors and architecture, I'm looking at how to introduce a VGA display peripheral. This is with the specific goal that they implement the ...
6
votes
2
answers
439
views
How do I explain blockchain using an analogy?
One of the next big thing that will get people interested are block-chain based technology. Many people are asking about "WTH is blockchain" and it seems that this will be asked quite a lot in coming ...
5
votes
5
answers
174
views
Seeking Effective Examples to Teach OOP Concepts Beyond Common Analogies
As a computer science educator, I have extensively researched various books for relevant examples to teach programming concepts, particularly Object-Oriented Programming (OOP). A recurring challenge I'...
5
votes
5
answers
924
views
How Effective Is "Rosetta Code" as a Teaching Technique?
When working to teach developers Scheme (which is functional programming) I'll often show them analogous examples in C#. The ...
4
votes
5
answers
506
views
What non-programming book is vital for learning the CS mindset? [closed]
If you had to recommend a single book to introduce the way programmers think to anyone, but it had to be from outside the field of CS, what would it be?
For programmers, my hands down, all-time, ...
4
votes
3
answers
160
views
Simple use case for self-modifying programs
.NET expression trees can be used to write self-modifying compiled programs -- because it is possible to construct and compile a method at runtime, it is also possible for a method to rewrite its own ...
4
votes
6
answers
797
views
What are some examples that could be used when teaching subroutines or methods in the context of OO?
I'm going to be teaching a group of high school students about programming, and I have a general curriculum designed already, but I can't quite figure out how to introduce methods. I'll be teaching ...
4
votes
2
answers
2k
views
What are some real life applications of the knapsack problems class?
Students are very happy when they see some real applications of the theory. Any suggestions for interesting examples of knapsack problems?
4
votes
2
answers
90
views
Should an educator define terms rigorously?
I took a programming course from an open university in Finland. One task was something like the following:
Find largest connected sequence of numbers from given set. For example, if input is
1,2,3,...
4
votes
1
answer
107
views
Multi-client to server connection demonstration
I am trying to think of a way to demonstrate how a multi-client server works, from the aspect of the broadcast messages sent from the server in response to a message from one of the clients.
I ...
3
votes
6
answers
15k
views
A real world example for the divide and conquer method
Can someone give a real world example for the divide and conquer method? For example, I've heard the boomerang used to explain the idea of a loop back address. What is a real world example we can use ...
3
votes
6
answers
674
views
Real world examples for the difference between null and zero?
What can be real-world examples to teach the difference between null and zero to high school students of computer science?
3
votes
3
answers
1k
views
Is the algorithm-recipe analogy a good or a bad one?
I am growing suspects that the ubiquitous analogy between algorithms and recipes be not so well founded, especially for theoretically oriented students. I am wondering if this may contribute to the ...
3
votes
2
answers
289
views
Avoiding difficulties when teaching with metaphors
It is said that metaphors can do more harm than good, and I agree that other methods should be developed, like the "notional machine" idea. However, computer science is not like anything else, because ...
3
votes
4
answers
204
views
Analogy to teach beginners the concept of interrupt
What will be a simple analogy to use in teaching non-CS people the concept of interrupt as part of OS topic?
3
votes
2
answers
163
views
Teaching past the "symbology" of a language
I've been recently helping someone with their beginners Python programming course at their university (though I don't think the specific language is particularly important).
At times I'm frustrated, ...
3
votes
3
answers
179
views
Could physical (i.e. lego) models help teach CS?
In this video, https://www.youtube.com/watch?v=t5NszbIerYc Dr. David Brailsford uses an elegant Lego model to explain pointers and linked lists.
Do you think that using physical models could make it ...
3
votes
1
answer
243
views
How to embed TIC-80 into Computer science 101 course
I'm planning to design an introductory course to CS and programming for kids of 8-12 grade and see that we have Scratch for catching an eye in the beginning and getting instant result on place.
But I ...
3
votes
2
answers
87
views
Advise on a class project
Me and my friend are both in high school taking a “PLTW” Engineering class, where our goal is to design a solution to any problem and work on that solution over the course of the year. We’re reaching ...
3
votes
1
answer
82
views
What teaching techniques can be used, in teaching students from a medical background, to improve their programming?
Students from premedical background feel difficulty in programming. They have no basic concepts of programming, so they are unable to do good programming. I have searched but didn't get any solution ...
3
votes
4
answers
169
views
Clear example of the Object-Relational Mismatch
An important issue in programming is the Object-Relational Mismatch, but I have not seen any good explanations that use familiar terms. I came up with one involving a Family Tree application.
The ...
3
votes
4
answers
199
views
Physical analogy to introduce a Delegate in .Net programming
Delegates are strange beasts (think Pointers with aspirations) and I was planning to introduce them using a physical metaphor: a power strip. The power strip connects to an 'event' (wall socket) and ...
2
votes
3
answers
223
views
Classification of programming exercises
I wondered what attempts were made to classify programming exercises for students in their learning path, just like taxonomy in biology.
For example :
A "concept covered" criteria from generic to ...