Stack Exchange Network

Stack Exchange network consists of 174 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.

Visit Stack Exchange
Join us in building a kind, collaborative learning community via our updated Code of Conduct.

This tag is for questions about presenting specific algorithms or general principles of algorithmic design and analysis to students. It IS NOT for questions about writing or fixing algorithms.

1
vote
1answer
56 views

How to structure a Predictive Keyboard project similar to GBoard

Many are now familiar with GBoard, the Google / Android predictive Keyboard. I don't actually know how it works. Obviously it must gather usage data on the device where it is being used, but it ...
18
votes
4answers
344 views

Difficulty of algorithms homework problems

I have a question for educators, from the perspective of a TA. I'm happy to post my question elsewhere if it's not appropriate for this site. Homework problems in algorithms classes often involve ...
5
votes
4answers
213 views

Will you tell students that Algorithms + Data Structures = Programs now(21st century)?

Algorithms + Data Structures = Programs occurs in 1976 (in Niklaus Wirth's book). In the past, we (teachers) may usually cite this equation to emphasize the importance of algorithms/data structures. ...
4
votes
3answers
124 views

“Computer sciency” and “practical” exercices involving dictionaries

I am teaching a course in data structures to a 2o semester. We hear often that the dictionary is a very versatile data structure, and solves quite so many problems. I'd like to illustrate that, but, ...
3
votes
4answers
148 views

How to avoid misconceptions about while loop when using null loop

Is it problematic to teach students to use an empty while loop to create an until loop? If so, what learning progressions avoid ...
3
votes
2answers
107 views

Is there any pedagogically motivated reason to teach quadratic probing?

I'm currently preparing a unit on the implementation of hash tables for a data structures and algorithms course (this is a university-level class, if it matters). Specifically, I'm focusing on ...
7
votes
6answers
407 views

Single-dimensional array and simple looping activities of significance

I give a lab on single-dimensional loops and arrays. By "single dimensional loops", I mean that there is no nesting of loops. (I will later give a second lab on multi-dimensional loops and arrays, ...
2
votes
2answers
97 views

How do I construct a basic lesson on computational complexity and undecidability?

Essential Understanding 4.2 of the AP CS Principles curriculum is as follows: "Algorithms can solve many, but not all, computational problems." Among the topics I am expected to cover in the context ...
7
votes
3answers
171 views

How to teach algorithms: implementation or application?

One unit of CS50 AP's curriculum focuses on three main sorting algorithms: bubble sort, selection sort, and insertion sort. There is also discussion of something more efficient like merge sort. One ...
18
votes
17answers
6k views

How can I help my students to think algorithmically?

I teach 13-14 year old boys an "Introduction to Computer Science" course. For most of them, it is their first structured coding experience. Before we even touch an IDE, I have them walk through ...
5
votes
3answers
1k views

Pseudocode or Flowcharts?

For GCSE CS in the UK, students have to analyse, design, code, test and review a solution to a problem. For the design section of their project, students have to plan out the algorithm for each part ...
8
votes
6answers
620 views

How to bring attention to computational complexity?

Many beginners strive to solve given problems, without thinking about efficiency of solution. Consider such Python code: ...
4
votes
1answer
104 views

Significant algorithm from CS for DrRacket that emphasize cons, car, and cdr

When my students move up to junior year, they make a series of transitions: from programming to theoretical computer science, and from imperative to functional programming. We use DrRacket, and one ...
4
votes
2answers
198 views

Introducing A* Search Algorithm

I created a group lab where one student makes a random maze generator, one student makes a corresponding maze solver, and the last student calls the methods created by both students and creates an ...
-2
votes
3answers
632 views

How to explain to people the importance of algorithms in computer programming?

Many computer science problems can be solved by more than one algorithm. Usually those algorithms have different problem-solving approaches and therefore different strengths and weaknesses. My ...
13
votes
3answers
371 views

What are effective approaches for teaching dynamic programming?

Dynamic programming is a subject that's notoriously difficult to learn and to teach. It's one thing to educate oneself, say by reading the appropriate chapters in Kleinberg & Tardos or CLRS, and ...