# Tag Info

71

There are a number of reasons why students don't learn, but few non medical ones why they can't. Leaving aside the medical reasons, such as hormonal imbalance or other disorders, I think that students who don't learn either have little desire to learn or have had poor teaching in the past. Even students with some learning disorders can learn given desire and ...

55

The difficulty of CS (true or imagined) and the drop out rates are not the same thing. Let me start an answer, but it might take several iterations to get all my thoughts together on the two ideas. Two themes come immediately to mind. The first is periodic and I don't know where we are in the period at the moment. But in certain combinations of economic ...

54

Maybe. It's hard to prove a negative. How does knowing that help educators in any way? If that knowledge helps somehow, how does that compare to all the ways that belief can be harmful? Giving up on students who "just won't get it" Not reflecting on how teaching can improve, since the ones who failed "just won't get it" Noticing "patterns" in the ...

39

First, I somewhat dispute the premise of the question. I don't necessarily believe that it is harder. I think there may be some other elements at play. Unlike many other college fields, students often have little to no formal background in the topic prior to entry -- in fact, many have little to no relevant background at all. That means that they're ...

28

As I indicated in the question, it has been my experience that there are certain kids who never seem to come along. My data is drawn from a rather small group (definitely under 1000 kids learning CS over the course of my career), and @Buffy's idea that these students are satisfying rather than optimizing may well be correct. However, I haven't seen ...

26

However, every year, I find a small number of students who just don't seem to get it. They get through, but the CS major program becomes harder and harder for them as their four years go by. Must it be this way? Think of it this way: An alien lands on Earth. He sees a human, who encounters another human. The first human flips the second one off. In ...

23

Here's an attempt at an answer, with some reflections, and then hopefully at the end a concise reply that we could deliver to an introductory student. For the purposes of this answer, I'll assume that in the first year or so, teaching computer science is synonymous with teaching software engineering. Motivating Quote Edsger Dijkstra wrote in his paper, On ...

18

Consider the posibility that this could be a problem with Java. If your first language is APL, and many fail... is a reflect of the students or APL? Read also: http://lambda-the-ultimate.org/node/5481 Is Haskell the right language for teaching functional programming principles? No! (As Simon Thompson explains.) I have learn dozens of languages and ...

17

From my experiences (I studied about 15-20 years ago, and my cohort lost 50% of students within the first four semesters), the main reasons are these: Many students do not really know what CS is about. They might think that it's about learning how to work with computers, or become "power users", or programmers, or something along these lines. I ...

16

I firmly believe that, barring actual mental handicap, anyone can learn to program. However, this is purely a belief; a matter taken on faith. It is informed in part by some knowledge of psychology and the process of learning, but in these things I am at best an amateur. The available evidence, unfortunately, does not demonstrate that anyone can learn to ...

12

Maybe some of those who "fail" should have been somewhere else rather than funneled into computer science. There needs to be a differentiation between those who want to study computer science (advance the state of the art) and those who just want to write programs (make use of existing techniques and tools.) I'm in the "just write programs&...

11

One elegant way to deal with this sort of problem (though it does take a lot of work) is to create a self-explanatory review packet (including a practice quiz!), give it out on day one, and promise that there will be a quiz on its contents during the second week of class. You then don't need to spend another minute on the material in class, at least for ...

10

This is all from my own personal experience, no research: I believe all students can learn to program, and can "get it", barring some mental handicap. But they have to have the desire, as many have stated - that's the kicker. And you, the educator, must have the patience to stick with them until they "get it". I have been a computer science educator for ...

9

Actually, what you want to do is commendable. And no, at the scale of things you talk about, I don't think you are likely to get yourself confused. In fact, you may have the opportunity to learn different things in an integrated way. In some ways the educational system, which puts different topics in different boxes, isn't optimal and everyone needs some ...

9

The only way to learn a lot of things, maybe most things, is practice and feedback. In a standard course (not online), the professor assigns some work to do - homework, projects, .... The professor then gives you feedback on it - grades, but hopefully more. To learn on your own, you want to try to simulate this as much as you can. So, to learn something, ...

8

Looking back on my experience and education as a software engineer, I think the largest inherent contributors of difficulty in computer science are that it has exceptionally strict and unforgiving standards for correctness, and that solving problems in it often requires an exceptional degree of questioning or ignoring "common sense" basic ...

7

Always try to explain it some other way. Try it in another language - there are reasons why BASIC and Visual Basic are used as 'beginner languages', although I would look for 'teaching languages' that entrain a better understanding and good coding habits. I would no more teach someone to program in Java than I would teach them to fly in an F-104. However, ...

7

If you are tutoring her, it is wonderful that you are trying to motivate the material in a practical way, but don't beat yourself up too much if you aren't that successful at persuading her. Some people just get themselves into a sort of myopic headspace where the only things that they need to learn are the exact operations that they will perform later on in ...

6

I noticed that most of the answers focus on the things (topics, lectures, etc.) I have found that it is helpful to focus on the students. I normally ask them for a one-on-one chat and ask them why are they here? What do they like / not like about CS? This normally opens an opportunity for making their experience more engaging for them. It also identifies ...

6

I face the same issue every year. In France where I teach, University is basically free and, in some bachelor curricula you can repeat the year and re-enrol in courses you have not validated as much as you like (almost). At some point, there is little that the teacher can do. Allocating say the first lecture and first lab to rehash the basics works for some ...

6

Moving from formal to informal is almost always a mistake. Let me see if I can show you why. When you consider how you think about sets within your own mind, I am reasonably certain that you rarely use the formal definition. Instead, you visualize or otherwise imagine something more akin to some abstract sort of bag, box, or group. The specifics of your ...

6

Formalization is important, I believe, at every step, concurrent with analogies, metaphors, and examples. Give them the formal definition. Use it frequently in teaching and in conversation. Make them write it on a study guide. Give them a question about it on a practice quiz. They will learn it in spite of themselves. One day their brains will go "aha",...

6

Have you tried a simple statistics formula such as $$mean = \left(\sum_{i=1}^{n} x_i\right) / n$$ This maps exactly to array notation. Explain that the array x refers to the entire set of values and that x[i] refers to a single element in the set. Then show a simple loop that performs the computation.

6

In addition to the many good answers on here, as a past student, TA and instructor in CS — most programming assignments and projects often take large amount of time, even if slimmed down to just fundamentals. There is a definite learning curve to build the skills, and personal mental model surrounding syntax, compilation, building, layout, debugging and ...

5

Nature vs Nurture It seems that nature plays a large role: you can not teach a cat to code (even though they share approximately 90% of our DNA. However most of the variance between humans is probably nurture. See Carol Dwecks word on growth mindset, for who some learn and some don't. Note that we can have a growth mind set in some subjects, but a fixed mind ...

5

I had a student some time back who also really struggled with concepts like this, but who was interested in research in psychology which for her was largely about statistics. Statistical data is nothing but arrays, or perhaps tables, that is, 2-dimensional arrays. Statisticians conduct trials consisting of observations. An observation is a simultaneous ...

5

Abstract definitions are a deep rabbit hole. To illustrate the point: First attempt Imagine a non-English speaker trying to read the dictionary. First word: Aardvark. A nocturnal badger-sized burrowing mammal of Africa, ... Wait, what does nocturnal mean? Done, occurring, or active at night. Wait, what does occurring mean? ... And this is the core of the ...

5

Computer science demands a set of qualities, some of which are somewhat antithetical. One is the attention to detail. Another is the creative ability to build strong abstractions that are both powerful and useful. This involves some pretty heavy lifting in the big picture thinking department. However, it is hard to get off the ground in programming if ...

4

I do tend to review some basic topics at the start of a semester to get a handle on what students have forgotten or never learned completely. After that I don't use class time as I expect students to make some efforts on their own. I teach high school so I may handhold a bit more than a university professor. In my case that means I schedule time for helping ...

4

First of all, kudos to you for wishing to enrich yourself! In addition to Buffy's fine answer, I might recommend an approach to self-studies that I once learned that ensures steady progress on multiple fronts. My understanding is that the technique itself is an old Jewish approach, used for hundreds of years by people becoming talmudic scholars. Put aside ...

Only top voted, non community-wiki answers of a minimum length are eligible