All Questions

Filter by
Sorted by
Tagged with
17
votes
6answers
2k views

Order to Teach Topics in an Intro Programming Class

This is a question for those of you who have an intro class before AP Computer Science (or maybe even just an intro class). What order do you teach the topics in your intro class? I start with if ...
17
votes
14answers
3k views

Note-taking policy: laptops, or by hand?

My students are all highly inclined to take notes on their computers. There are some obvious advantages: The students absolutely prefer it. They can easily search through their notes later. Since ...
25
votes
13answers
2k views

Programming languages specifically designed for beginners

Is there a good beginner's programming language, specifically designed for learners, maybe even kids? Something beginners can sink their teeth into and get results quickly. Results that are more than ...
6
votes
6answers
402 views

Using Processing as an entry point in an Introductory Course

We have two entry points for programming students here: one is web-oriented and features HTML5/CSS3/ECMA6, and the other is in a robotics environment using LabView. Both classes address the "big 5": ...
54
votes
20answers
11k views

How do I teach git to a teenager

I like Git, or at least the idea of it. However I can not get my head around how to use it. Therefore I would not like to teach it. (This question is about learning to use Git. Not about comparing it ...
17
votes
16answers
2k 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 ...
17
votes
9answers
2k views

The order of subjects in beginner's curriculum

This year I'll be an unofficial teacher assistant in the CS class of 9th graders. Background This question is about a curriculum for introducing students to programming in java. The students are ...
8
votes
3answers
955 views

Scheme vs Haskell for introducing functional programming

So, I am not interested in which language is better, because that is a matter of opinion. What I care about is whether making a switch from Scheme to Haskell will directly help me accomplish my goals....
51
votes
9answers
17k views

How do you teach something when you don't know it yourself?

Teachers are sometimes called upon to teach something with which they have no experience. Don't laugh. Doctoral level education is often exactly like this. The student's advisor may have no background ...
38
votes
16answers
7k views

Is there any value in teaching goto statement or flowcharts?

I was recently reading a new, and mostly excellent, magazine Hello, World. There is an article on teaching goto. The author states that there is value in teaching <...
30
votes
13answers
2k views

How to teach why indentation is important

I'm trying to teach why indentation is important, but the student doesn't indent. I asked why he doesn't indent, then he answered "That's because it’s a hassle." It's OK to say "you should indent", ...
26
votes
14answers
13k views

How do I convince my students that visual programming is real programming?

I have been considering taking a visual programming language, such as Snap!, to my high school students as a way to make some of the concepts we delve into a little more fun. The kids themselves ...
34
votes
13answers
5k views

Teaching the humble for loop

So, in C-style languages, the for loop has a funny little syntax: for (int i = 0; i < 100; i++){ // do something } If ...
14
votes
7answers
753 views

Programming language for teenagers

I have been asked to give an introductory programming course for kids between 14-15 years old. Scratch seems like a good option for young children, maybe up to 12 years old. Python, is also a good ...
4
votes
5answers
434 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, ...
9
votes
3answers
2k views

What can Snap! do that Scratch cannot?

I teach a short introductory unit in my course that uses Scratch to get students familiar with programming concepts before introducing the syntax of a text-based programming language. For context, we ...
6
votes
2answers
101 views

How can I effectively manage peer evaluation among my students?

My students do quite a lot of their work in projects and much of that work is outside my view. While I can just give everyone on a team the same grade (or not) it is useful to me to know who is ...
15
votes
4answers
908 views

What makes imperative programming easier or harder to learn?

In my experience, people who have programmed before, whether they're professional or not, almost always consider imperative programming to be obvious. They're usually skeptical that a concept such as ...
10
votes
5answers
468 views

Lesson Idea: Arrays, Pointers, and Syntactic Sugar

One of the most challenging concepts to instill in new CS students is 0-indexing (indeed, the pedagogy of this fact probably merits its own discussion). Another difficult topic -- although a slightly ...
103
votes
21answers
25k views

Is there some meaningful percentage of students who can't learn to program?

A few days ago, I had a high school sophomore (who is now in her third CS class, having passed the prior two) look at this Java code for a solid 3-5 minutes, and was unable to figure out what it did: ...
112
votes
15answers
36k views

Is it better to lie to students or to be pedantic when teaching Intro CS?

When teaching Intro CS in Java, I sometimes tell students things that are not entirely true, such as that, unlike abstract classes, interfaces cannot contain any code. (For those of you unfamiliar ...
34
votes
13answers
3k views

Real life examples of 0-indexing

It can be perplexing for students to begin counting at 0 when they enter a CS class. I made it a point over and over to talk about "Day 0" and "Week 0" in the opening days and weeks just to build ...
21
votes
12answers
4k views

Problematic student at a very high level

I teach a high school student who has already developed an understanding of the language used in my curriculum and causes difficulties. The lectures and programming projects in the curriculum bore ...
10
votes
5answers
510 views

Good datasets for intro CS courses?

What are engaging sources of data with which students can explore, develop questions, analyze, and draw conclusions in an intro CS course? I'm looking for flat files like XLSX or CSV, or relational ...
9
votes
2answers
131 views

Books that summarize pedagogical research within our field

I was inspired by BennetBrown's answer here, in which he says "Please, CS ed, produce something akin to Teaching Introductory Physics. Guzdial's Learner-centered Design of Computing Education is a ...
36
votes
28answers
4k 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 ...
18
votes
5answers
1k views

Do you see the “Bimodal Distribution” too?

When people learn programming in a school setting, tests show a "two hump" tendency. Some students race ahead and grasp it relatively well and others struggle. Apparently this is more pronounced in ...
12
votes
6answers
400 views

Is it more effective to teach low level languages before high level ones or vice versa?

When structuring a Computer Science curriculum, which prepares students most effectively for a career in technology today? Consider the following scenarios over a student's college career: Starting ...
7
votes
9answers
847 views

Justification for an objects-early approach to introductory programming

I'm familiar with two schools of thinking for approaching an introductory level class in an object oriented language: objects-late, and objects-early. In objects-late, you teach various procedural ...
25
votes
14answers
18k views

When a student submits a work that is a copy from a colleague, should you also punish the student that made the work?

The question kind of says it all. Imagine that for an assignment you receive two or more similar submissions (e.g. programs). What will you do? Annul all the works? What if you know for certain who ...
20
votes
4answers
478 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 ...
19
votes
17answers
8k 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 ...
11
votes
5answers
862 views

What would be a good first choice to teach game programming to beginners?

In my institution we are close to starting a new graduate level program for game development. However, this program will accept non-digital game designers or other non-experts (real architects who are ...
10
votes
6answers
420 views

Helping students adjust to using industrial-strength IDEs

Something I've often observed is that many students find it challenging to figure out how to use full-fledged IDEs such as Eclipse, Netbeans, Visual Studios, IntelliJ, and PyCharm. From what I can ...
7
votes
2answers
245 views

Good beginning assembly language for teaching about stack function calls

We are considering integrating our processors design and architecture course with our assembly programming course by using the same processor for both. The processor class (which does its work in ...
4
votes
4answers
659 views

Lambda expressions exercises and practice

While lambda expressions in java 8 are really cool in action, the school curriculum offers no exercises in this. So essentially, students never actually learn how to use lambda expressions and the ...
20
votes
11answers
820 views

Should assembly language be taught in an introductory course (or soon after)?

Should ye ole' fashioned assembly language be taught to help students develop a sense of how actual underlying computational hardware supports/allows running their higher-level or more abstract ...
9
votes
3answers
813 views

Should I teach modern web development in an introductory programming course? How?

I'm currently teaching a introductory programming class in a technological university course (FYI, this is a type of university course that is not a BS). The recommended language to use for this ...
9
votes
11answers
504 views

Objects Lab Before Inheritance and Polymorphism

I am finding it very difficult to create a lab for Objects in Java before we've involved Inheritance and Polymorphism. The problem, as I see it, is that Inheritance and Polymorphism are basically the ...
8
votes
11answers
2k views

How to stress the importance of testing code?

I've run into the issue in the past that students don't test their code, and get into a huge mess when they can't find out what's not working. How can I prove to them (before something like this ...
6
votes
6answers
222 views

Advice for becoming more confident in programming

I apologize if this isn't the right kind of forum to ask this question, but I've been feeling helpless. I'm in my 4th year in college as a CS major. However, I am horrible at programming (relative to ...
5
votes
5answers
643 views

How important is “delivering the content” of a course?

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 ...
4
votes
4answers
184 views

Engagement advice on Creative computing

I'm preparing a course for next year, aimed at kids from ~6-16. It's based around the concept of creative computing: http://scratched.gse.harvard.edu/guide/index.html I think it will be a great ...
1
vote
3answers
115 views

Make it easier, and quicker to get to the start

When teaching I often have pupils struggle in the first few minutes. When they are setting the computer up, ready to start work. They often have to follow lengthy instructions, that I print on paper, ...
14
votes
11answers
607 views

How can I show the value of best practices?

As someone who likes to advocate for best practices like correct use of VCS, indentation, sufficient commenting, and testing, I try and integrate them when I teach. But for all of these things, my ...
9
votes
4answers
372 views

Is it possible to ensure division of labor on a group assignment?

Let's say I've assigned my Intro to CS class their first group programming assignment. A common problem is that the most invested student in the group will end up doing the majority of the work. At ...
9
votes
5answers
909 views

What advantages/disadvantages have you seen with Pair Programming in the classroom

Many of us use or have used Pair Programming in the classroom. See https://www.agilealliance.org/glossary/pairing for a discussion if you like. @BennettBrown has pointed to research showing its ...
8
votes
5answers
691 views

Simple Pointer Examples in C

Thanks to feedback in this thread, I'm beginning to plan how to integrate a basic introduction to pointers into my unit on arrays. Here's a sample program I just wrote up: ...
8
votes
3answers
487 views

How is your teaching affected by how you learned?

I constantly have to struggle with freeing myself from two hindrances to my teaching: 1) The way I learned about computers, starting almost 40 years ago, and, 2) Amnesia of how I learned some concepts ...
7
votes
2answers
200 views

Techniques for encouraging pair programming

Suppose I've assigned a project and asked students to pair into two-person teams. I'd like each team to pair-program: work together in person to complete the assignment. Some students will do this, ...

15 30 50 per page