All Questions

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
2k 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 ...
6
votes
6answers
360 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": ...
23
votes
13answers
1k 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 ...
52
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
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 ...
16
votes
16answers
1k 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 ...
8
votes
3answers
842 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....
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 <...
29
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 ...
4
votes
5answers
427 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
1k 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
81 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
852 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
440 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: ...
45
votes
9answers
14k 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 ...
33
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
432 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
123 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 ...
35
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
389 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
685 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
17k 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
427 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
7k 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 ...
13
votes
7answers
638 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 ...
8
votes
4answers
343 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 ...
4
votes
4answers
607 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 ...
8
votes
11answers
458 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
2answers
225 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 ...
6
votes
6answers
217 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
629 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
181 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
109 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, ...
19
votes
11answers
678 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 ...
14
votes
11answers
596 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
360 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
846 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
3answers
478 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 ...
8
votes
5answers
581 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: ...
7
votes
3answers
404 views

Command-line Java in AP CS A

Context: Over the past school year I spent a significant portion of my time preparing to teach AP CS A next year. From choosing textbooks to writing the College Board syllabus, I essentially started ...
7
votes
2answers
193 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, ...
4
votes
2answers
233 views

Introducing the MVC pattern along with JavaFX

This year I am planning to shift from teaching Swing for graphics, to teaching JavaFX. As JavaFX ideally uses the MVC design pattern, I thought it would help students understand how to use JavaFX if ...
3
votes
4answers
202 views

How to integrate CS when learning about DNA/RNA/protein

I'm looking for activities that can integrate computer science into lessons about DNA, RNA, and proteins in a middle school (ages 12 to 14) science class. Our school is using the NGSS and CSTA ...

15 30 50 per page