All Questions

4
votes
2answers
79 views

Ruby backend framework choice: Ruby on Rails vs Sinatra

In Ruby, the vast majority of usage is in web backends, 99% of the time with a framework called Ruby on Rails. My problem with rails is that it is full of "magic," wherein you type a command, and ...
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 ...
12
votes
6answers
388 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 ...
10
votes
5answers
433 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 ...
17
votes
12answers
2k views

Dealing with students who complete labs very quickly

One of my goals is to minimize homework. My high school students are high performing, grade conscious, and constantly stressed out as it is. Many of them fall into the "Ivy League or bust" camp, ...
11
votes
6answers
449 views

Programming curriculum for elderly students

I have created a basic computer education project for an audience of elderly students (over 50 years old). The course is very basic, with lessons from "How to turn on/off your home computer" to "...
17
votes
5answers
476 views

Teaching students to hunt for and debug their own errors

I'm sure we've all had this kind of conversation: Student: Mr. Choirbean, my code is crashing. Teacher: Okay, what error is it giving you when you crash? Student: Error message? Was there one of ...
7
votes
4answers
243 views

How do you structure broad, open-ended, freely chosen projects so that students use class time wisely?

If we are to believe Daniel Pink, autonomy is one of the fundamental aspects of motivation, so integrating student choice is extremely valuable if I want my students to remain highly engaged. I ...
4
votes
3answers
181 views

Do I need Prolog to teach logic concepts?

I think that the use of some logic programing language like Prolog, for example, could be a good way to explain the symbolic/mathematical logic concepts but also apply this concepts in a real ...
12
votes
6answers
272 views

What are the merits of including the history of computers in the entry level curriculum?

Should some portion of introductory CS curriculum include something about the history of computers, especially with respect to Moore's law and what that might imply about the growth of computing power?...
4
votes
2answers
58 views

Presenting Mapping Reducibility (for P vs NP)

So, I am preparing to teach about P and NP for the first time. I know that I need to teach about Mapping Reducibility (aka One-to-One Reducibility). Can anyone recommend a set of algorithms that are ...
7
votes
5answers
650 views

How can I maintain interest in front end?

When I teach front end web development, it always happens that I start the year with a bunch of students who are ready to redesign Facebook on day 1. With expectations like that, it's always a letdown ...
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 ...
0
votes
2answers
104 views

What kind of game (in Scratch) would require use of a list? [closed]

I teach an introductory Scratch class to a group of elementary-school students. Most of the focus is on having fun creating simple games, but i still try to introduce a little higher-level programming ...
7
votes
3answers
376 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 ...
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 ...
7
votes
1answer
114 views

Designing rubrics for AP Computer Science-style free response questions

When I create questions in the style of the College Board's AP Computer Science Free Response Questions, I always attempt to create authentic rubrics that reflect how such questions would be graded. ...
9
votes
8answers
539 views

The use of the Octal system

I was teaching the Octal number system and a student raised the question "Why should we use the octal number system, if we have binary and hexadecimal?" I was very confused, trying to explain the ...
-1
votes
3answers
1k 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 ...
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", ...
11
votes
4answers
359 views

How to get girls more interested in computer science?

It’s no secret that despite the phenomenal rise in computing over the last 50 years, women are still not engaging with computer science at the same rate as men. Girls are less likely to enroll in ...
1
vote
2answers
87 views

How to “teach” CSS for students? [closed]

I have been an expert & mentor in HTML, CSS, JavaScript. When it comes to teaching new students on how to program using JavaScript, it is straight forward. Students can learn that if you do ...
5
votes
1answer
160 views

Database theory (normalization) for beginners (adult education, MS Access)

When teaching database basics to non IT beginners, what is the minimum requirement in theory and technical terms? So what is absolutely necessary to talk about DBs? What helps students grasp the basic ...
6
votes
3answers
105 views

How to encourage participation in the national olympiad in informatics?

Currently, relatively few participate in the national olympiad in informatics (high school) of my country. This is partially because the first round takes a bit of time (up to 40 hours if one wants to ...
11
votes
8answers
405 views

Explaining basic html structure

I am trying to think of a lesson plan about html, and I am looking for a good way to explain the concept of the structure of an html file. I was wondering whether ...
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 ...
4
votes
1answer
76 views

What qualities should be considered when designing a front end project?

I'm working on designing a project where the students will use HTML+CSS to replicate a specific layout which I will give them as a picture. The goal of the project is to allow each student to practice ...
7
votes
3answers
762 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....
7
votes
2answers
160 views

Best Practices / Effective Strategies For Building Diversity In High School CS Programs

What works for building programs that are accessible to "non-traditional" CS students and which help to support the students so that they enjoy the class, start seeing themselves as "CS types," and ...
9
votes
2answers
651 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 ...
16
votes
9answers
857 views

Should I have written tests on basic programming skills?

When making more complex programs, it is natural that one needs to run the program to see whether things work and fixing bugs. However, if one makes a lot of mistakes in basic programming, e.g. ...
5
votes
1answer
71 views

In a course about Turing machines, how many questions like “Construct a Turing Machine that does X” should I include?

In a course about Fundamental Computer Science, which includes Turing Machines, how many questions like "Construct a Turing Machine that does X" should I include? There should be at least a few basic ...
9
votes
1answer
196 views

What to consider when choosing version of Python?

I will be giving a small course on the Python programming language to a group of interns this summer. As I am sure you know, there are many different versions of the Python language. I am wondering ...
15
votes
6answers
329 views

How to raise students' security awareness in programming?

My first website with a login form had the password hardcoded in the JavaScript code, and if the entered password matched it would redirect to a private URL that was just not linked anywhere, but ...
13
votes
3answers
625 views

Do automatic style hints help students to understand the language they're learning?

Do automatic style hints (like those provided by linters) significantly increase the student's understanding of the language they're learning? I am asking because I assist in a course that uses a ...
14
votes
2answers
164 views

How can I integrate teaching source code control (Git/Mercurial/etc) into my introductory CS class?

In the words of Andrew Clay Shafer, “In software development, version control is the foundation of every other Agile technical practice.” (Allspaw & Robbins, 2010). Yet, 57% of CS curricula does ...
18
votes
2answers
329 views

How does one create a balanced AI curriculum in light of the popularity of Deep Learning?

During the past decade, interest in machine learning has exploded, especially due to the many and growing successes of deep learning approaches using convolutional and other neural networks. To those ...
10
votes
3answers
161 views

on-What are pre-requisites for teaching version control to a high school CS class?

I'm interested in introducing version control to a HS CS class, and was considering starting with Github since it's a fairly standard tool used by developers. What are pre-requisites for ...
10
votes
5answers
113 views

When should concurrency and parallel multi-processing concepts be introduced?

Given the current trends with Moore's law and computer systems design, where even the cheapest cell phones and Raspberry Pi's, etc., are multi-threaded multi-processors, and any gains in performance (...
6
votes
3answers
188 views

Using microcontrollers in an Introductory course

Are there any advantages to using small microcontrollers (such as an Arduino, etc.) with tactile, physical I/O (such as buttons, LEDs, robotic actuators, etc.)? For instance, does it help create more ...
14
votes
3answers
436 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 ...
15
votes
9answers
970 views

Recommended IDE for teaching web development to beginners

I have been assisting an IT teacher who has recently started teaching computer science to year 7-9s (11-13 year-olds). This year they will just be covering basic client-side web development: HTML, CSS ...
6
votes
10answers
381 views

When teaching Web Development, should server or client side come first?

I teach full stack web development because the purpose of the course is to give an overview of how a complete website is created, from SQL for database management to HTML/CSS/JS for front-end to ruby ...
15
votes
8answers
565 views

How can I convey the idea of a programming language vs. a markup language?

When I try and teach web development to absolute beginners, I seem to always get a question about the roles of HTML/CSS/JS and about how the browser renders the HTML. It seems to me that the confusion ...
19
votes
11answers
637 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 ...
6
votes
6answers
338 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": ...
35
votes
28answers
3k 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 ...
19
votes
10answers
1k views

Cheating on labs

It is spectacularly easy to cheat on CS labs at the high school level and above (roughly ages 14 and up), particularly on short, early assignments. In fact, there is article in today's NY Times about ...
22
votes
9answers
687 views

Should the first Programming/Algorithms class be taught in pseudo-code?

When I was studying, my professors had different approaches when teaching programming to beginners: Choose a language with which the professor is comfortable and fulfills the course requirements but ...
8
votes
3answers
267 views

Teaching Induction to Prove the Correctness of Algorithms

This is a subject that I have had a lot of trouble clarifying for students. I can explain the components well enough, but I have trouble getting kids to connect the big picture of the proof to the ...

15 30 50 per page