In most fields instructors spend a lot of time on the Content of a course. Often this is phrased as Delivering Content, or Completing the Syllabus. The traditional picture, whether valid or not, is an instructor (single) broadcasting Content to students (multiple). I wonder if this is a common view of CS education.

In a course like Data Structures, there a lot of things (content) that the student has to learn: Stacks, Sets, Trees, ... along with common algorithms. Normally there is a syllabus that lists all these things in some rational order. "Covering it" is a sort of meta-constraint (or sometimes a hard constraint) on the instructor.

In the compiler course, the Content is more about technique than facts, of course, but those techniques possibly are the content: scanning, parsing, ...

So, I guess the question that I would most like advice on here is:

If you could order your goals in a typical undergrad course where would "Deliver the Content" fit? High, Low? What, if anything, would be above it?

What would be the effect on your students if you move that goal up? down? remove it altogether?

Another aspect of this is how much control does/should the professor have in the flow of the course; especially in content delivery? Absolute? None? What balance works for you?

  • $\begingroup$ Maybe you could expand that to a full answer. Maybe you are saying it is just an (absolute?) constraint. Or not? $\endgroup$ – Buffy Jul 2 '17 at 17:38
  • $\begingroup$ I'm more interested in your goals and how you think they balance. $\endgroup$ – Buffy Jul 2 '17 at 18:27

Note: This answer is not long, but it is not meant to be skimmed.

The most important goal is to make emotionally healthy, capable, empowered adults who can solve the problems that life throws at them in the future. We don't get to know what those problems are. Many of the problems don't exist yet. We don't get to know what tools will be available to solve the problems. Many of the tools don't exist yet. All of which leaves us with the central challenge: we ultimately must teach our students to be adaptive, flexible thinkers and learners.

Flexibility comes from learned patterns of thinking (literally patterns and formations of neurons that allow us to easily integrate similar future patterns of thinking) and from meta-learning knowledge (e.g. "I am capable of learning new material when I need to by breaking things down into steps", or "I tend to learn more easily from books than from videos").

The course material, then, is somewhat secondary to the central concern. Carefully chosen, however, it becomes the motivation for the more central learning.

This is important: every school that I've ever heard of offering a class like "study skills" eventually dropped it. Directly studying how to learn does not appear to serve us well. We need rich systems to engage with, and we then come to the meta-learning slowly and in due time. That is what the course material accomplishes for us. It is the rich set of motivating material with which we can empower people to solve the problems of the future.

  • $\begingroup$ How do you and others react to the statement that "the most important part of education is the relationship between a student and a professor." What are the consequences of accepting or rejecting that view for society? $\endgroup$ – Buffy Jul 3 '17 at 0:01

Let's consider your Data Structures course example. The material from there is used throughout CS, and more advanced courses probably expect you to have completed Data Structures already, and will assume understanding. If the instructor never actually introduces to all the data structures that the syllabus lists, then your later course will be assuming knowledge that the student doesn't necessarily have.

It depends what exactly you mean by not making content King—if you simply don't teach some of the material and don't mention it much, then your students won't know it. However, something to consider:

  • What is the goal of your course? To ensure that your students know the material so that they can build on it, or to encourage your students to apply their knowledge?

    If you want students to be able to apply what they know to unfamiliar concepts without your support, then definitely don't spoonfeed everything. However, it might be wiser to introduce all of the standard content, and then allow them to apply their knowledge on more obscure concepts.

    As an example, you could first introduce an array, then ask about a bitmap (which you might not cover in your instruction, so you can test them).

  • Will the material be needed later on? Would it be problematic if students didn't learn all the material? If so, perhaps it's best to cover the content in your class to ensure that they do understand.

In an ideal world, you might give students a problem, and let them explore solutions to it rather than actually covering the content directly. For example:

How can we represent pairings between two variables in a data structure? Can it be done in $\mathcal{O}(1)$ time?

Instead, a lot of the time, the content is just 'fed' to the students directly.

Here is a hash table. It does X, Y and Z. It is useful because W.

Given a large amount of time, actually rediscovering some solutions to common problems would help your students to think critically and understand why certain design choices have been made in CS. But you could spend years rediscovering things that are already known, and sometimes just telling allows you to move on more quickly.

Removing 'the content' completely from the course would essentially render it pointless—if there's no goal ("in this course, we will learn X"), the course wouldn't really seem to help anyone.

As a summary of my views: delivering the content is practically a requirement given the time constraints of most courses, rather than letting students investigate things for themselves. Perhaps changing this would provide some benefits, but the current system has emerged because it's pretty efficient as passing on knowledge, even though some students don't benefit as much as they could.

  • $\begingroup$ But is it efficient at the cost of effectiveness? Socrates didn't need efficiency. How much does that need overpower all else, possibly to the detriment of the learner. $\endgroup$ – Buffy Jul 2 '17 at 18:26
  • 1
    $\begingroup$ @Buffy Efficiency in that you could spend years working through slowly, discovering each result one by one, but it's inefficient in terms of cost, and time (as much as learning is a great thing, some people don't want to dedicate a life to academia). Whether the priority of efficiency is a good thing in society is a question I cannot answer, particularly not on a CS Education site... It's a far more complex philosophical idea that I don't really know the answer to. $\endgroup$ – Aurora0001 Jul 2 '17 at 18:30
  • 2
    $\begingroup$ To twist the question a bit, what is it that you want for your students, primarily; that they know, or that they can do. Not quite the same and content aids one more than the other. If I know 3 data structures in Java, can I grok the others on a need to know basis? So is it better to "see more" or better to "work with what I have seen?" And I'm pretty sure the answer is different in CS than in other fields. And possibly not the same if the person is headed to grad school vs a job $\endgroup$ – Buffy Jul 2 '17 at 18:34
  • $\begingroup$ @Buffy Doesn't that depend on the course? The primary goal for some courses might be to teach applied skills ("by the end of this course, you should know how to work as a team and use source control to write software to control robots that open doors"), while other courses might focus on practical knowledge ("you'll learn about eight different data structures and how they work"), foundational knowledge ("you'll learn about these types of mathematics and proofs"), or even to give students an overview of topics in a particular subfield so they know what's out there. There's no one answer. $\endgroup$ – Zach Lipton Jul 2 '17 at 21:40

Firstly, I would say that some things do come before content. Student safety and well being, for one. If you are so focused on content you can't see that a student is having serious problems (bullying, home life, etc) then that's no good. A student must be able to "ingest" the content being presented, and they can't really do that if they aren't well fed, feeling safe, tired, sad, "antsy" or feeling like moving (seriously - ever tried going from P.E. right into a test?), etc.

So let's say that first step is fulfilled, and a student is able to pay attention. The next thing I'd say is presentation. This is the difference between plopping up the quadratic formula on the board in Algebra I and having every student write it in their notes and move on, and explaining it, perhaps with some examples, or whatever. In both cases, the students "get" the information, but unless they are devoted textbook readers and question-askers, I doubt they'd actually understand it and be able to use it. Of course, this doesn't necessarily mean just explaining it, this means keeping the student's attention, it means slideshows, videos, activities, demonstrations - things other than just the robot droning teacher.

Then, practice. What use is information if it can't be used? Problems, labs, and so on, are just as important as the content itself. You can't have a presentation or a problem about nothing - there has to be some substance to it. But the content won't get through with the presentations and it won't be useful without the problems. But safety and well-being of the students comes above it all.

Also, study strategies are important, and so are the prerequisites for the content. These are things, which, if the students don't understand, will make things a lot harder for them. There's probably also things I haven't thought of here - this was supposed to be a general overview and then got a little longer than I thought =)

So: is content king? No, content alone cannot do much. It must be coupled with a student ready and able to learn, a good presentation, and practice to solidify the content and make it useful.

  • $\begingroup$ If I interpret "presentation" as content delivery (yes, not your words), would you value presentation over practice, or the other way round? $\endgroup$ – Buffy Jul 2 '17 at 19:22
  • 1
    $\begingroup$ @Buffy, yes, I think presentation would be content delivery, that makes sense. And I think I would value presentation over practice, though only just. It is hard to practice what you do not know, but once you know it, you must practice it. $\endgroup$ – heather Jul 2 '17 at 19:28
  • 1
    $\begingroup$ I might switch them. I usually learn a new language by working in it, not reading (very much) about it. Can the knowledge emerge from the practice? Preference is important, of course, but I'm going to take a wild stab and guess you aren't a "typical" student in your age cohort. I can't imagine my grandson writing like you do - only a bit younger. Your feedback here is as real as it gets. $\endgroup$ – Buffy Jul 2 '17 at 19:54
  • $\begingroup$ @Buffy well...see, I think it depends on what you are teaching. If it's, say, 'program this', then yeah, practice is more important. And like you say with a language, practice is more important. But in math, for example, you can't expect a student to derive all of math for themselves - you have to teach the formulas, and then let them practice. $\endgroup$ – heather Jul 30 '17 at 23:37
  • $\begingroup$ you would be especially interested in the teaching methods of en.wikipedia.org/wiki/Robert_Lee_Moore. While he was not an exemplary human being in all respects, his teaching methods were unique. In fact, his students, many of whom rose to the very height of the profession, did, indeed derive everything for themselves. $\endgroup$ – Buffy Jul 30 '17 at 23:44

"Active learning" teaching techniques in STEM courses increase performance by half a standard deviation compared to traditional instruction.

The National Academy of Sciences (an authoritative source) published a review of literature (an article which puts together all articles that meet date and study characteristics criteria) on active learning vs. traditional lecture in university STEM courses. The metastudy concluded that the data were so conclusive that it is no longer ethical to conduct such human experiments in which half the university students receive traditional instruction. The metastudy suggested that subsequent studies should instead drop the traditional-classroom control group and pit one active learning technique against another.

Freeman et al. (2014). Active learning increases student performance in science, engineering, and mathematics. Proceedings of the National Academy of Sciences 111:23. Retrieved from http://www.pnas.org/content/111/23/8410.full

  • $\begingroup$ I desperately love this information, (and just purchased a book about active learning because of this post), but if it is an answer to OPs question, I'm having trouble seeing how. Are you suggesting that active learning is specifically more important than course content? I wonder if there is somewhere else this information fits into the site, because it is so darned important $\endgroup$ – Ben I. Jul 7 '17 at 1:22
  • 1
    $\begingroup$ @BenI The usual defense of traditional teaching is that the teacher can "get through" more content or include more ancillary information. My answer is intended to say that these reasons are misguided and that if covering content trades off against student involvement, go with student involvement. $\endgroup$ – Bennett Brown Jul 7 '17 at 3:01
  • $\begingroup$ Okay, I see where you're going with that, though it's not really made explicit. Rather than fixing it here. though, do you think that this answer might be a better fit here? $\endgroup$ – Ben I. Jul 7 '17 at 9:17

I'll bite. I discuss this with my co-instructor constantly. We have a goal: our adult students need to be hireable in about a year. Our institution covers soft skills, fitness and job search along with the program of study. We want them to get a job at the end, or get redirected as soon as we can see that this program is not a good fit.

So, how do you get an adult with no background hired as a programmer in a year? There are over 100 high level languages in common use. We could focus on Windows, other OS, web applications, etc. We chose C# and Windows and ADO as our track. This is still a steep road for a non-programmer to undertake.

We agree that they need exposure to the fundamental concepts, to know how to find things, and remember that the dimly-recalled thing is probably the answer. Our analogy is to make lots of "hooks they can hang ideas on" rather than creating a big systematic worldview. That is how we both learned and had programming careers. Someone once said that it is more important to have the right ideas than to have the ideas right. If you try the right sort of solution, you will be able to deal with errors. But if you start in the wrong place entirely, or have no idea where to start, then that is worse.

With tools like Intellisense, you can see all the parts of a class when you need to, and then can choose the Search method or whatever. The "hook" concept is to know it is there, not memorize what-all is there. With enough basic concepts, you can assemble the needed details. The two of us have a general idea of which concepts are essential and which can wait to be added / discovered later. Also, we have a ranking of what is more vital, so if a group takes longer than expected, we can defer or drop some things. This is based on an intuitive overview, not a big, pre-structured plan.

  • $\begingroup$ lots of hooks sounds like a good idea. can you expand it? $\endgroup$ – Buffy Jul 2 '17 at 20:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.