Skip to main content

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.

Filter by
Sorted by
Tagged with
0 votes
0 answers
41 views

In teaching introductory databases to graduates and undergraduates how would you differentiate in exams/assignments?

If given the opportunity of teaching a course in databases for two different groups of students grad/undergrad, mostly from CS/Data Science majors, what are the approaches in order to differentiate in ...
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'...
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 ...
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 ...
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 ...
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 ...
2 votes
0 answers
124 views

ML Andrew Ng course as practical university course

I was tasked to help in the practical sessions of the Machine Learning course in my university, the plan was to give exactly the same materials as this course. We should be teaching the assignments of ...
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 ...
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?
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 ...
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 ...
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 ...
1 vote
1 answer
72 views

Teach smart pointers to beginners with no knowlege of OOP or templates

I have to teach an Intro to Programming class of students with some exposure to proccedural programming, arrays and loops etc. However, they have not taken any course in oop and templates. It is a ...
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 ...
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 ...
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 ...
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 ...
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 ...
0 votes
1 answer
100 views

How do I teach problem solving and logical thinking to students of age group 12-18yrs through online session

I am currently researching some good content/problems to teach my students. I am referring to Mensa's Book on Logical thinking, which has a good amount of puzzles for all age groups. Is there any ...
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?
2 votes
2 answers
156 views

What would be your ideal first lecture in a databases course?

As they say, you don't get a second chance to make a good first impression. Are you aware of any notes/slides appropriate for a first lecture in databases?
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 ...
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 ...
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
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?
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 (...
1 vote
2 answers
87 views

How to introduce problem solving to primary school pupils?

I'm interested into knowing your experiences about introducing problem solving to primary school pupils. I'm a PhD candidate in Operations Research and, together with my University or my public ...
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,...
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
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 ...
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 ...
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 ...
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, ...
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 ...
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 ...
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 ...
2 votes
2 answers
141 views

Teaching intermediate Java to students familiar with C

The class I teach (a class whose teacher I assist1, to be precise) is learning intermediate Java this year (data structures, basic OOP and a few lessons about how Java actually works). A few of the ...
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
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 ...
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
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
8 votes
6 answers
885 views

Analogy for abstract classes

Abstract classes are peculiar things. Consider: ...
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 ...