51 votes

How do I teach git to a teenager

I highly recommend this tutorial: http://learngitbranching.js.org/ It uses a visual representation of the internal state combined with actual commands in a sandbox environment along with a step by ...
31 votes

Students can solve programming exercises but not explain their solutions. What to do?

I have seen my share of this 'program gets output' but the programmer has no clue how she/he got there. It's funny how that happens so many times. This is what I have done to at least handle the ...
  • 1,874
24 votes
Accepted

Students can solve programming exercises but not explain their solutions. What to do?

If I understand your problem correctly, it's that students can create programs that behave correctly without understanding why they behave correctly. I assume that they do this by some combination of ...
18 votes

How do I teach git to a teenager

First, realize that you can't learn everything about Git all at once. Learn the basics to get you going. Learn the other commands as needed. Practice a lot. Git is awesome. I suggest that you learn ...
  • 1,044
15 votes

How do I teach git to a teenager

If you already use an IDE, this could be the right way for you: Git support in your IDE Many IDEs come bundled with Git support: Visual Studio Code has maybe the best Git integration I've ever seen. ...
  • 971
13 votes

How do I teach git to a teenager

1) Use the built-in Git GUI Git actually includes a built-in user interface known as git-gui which is great for novices learning Git for the first time. It's fairly simple to use, comes standard with ...
11 votes

Students can solve programming exercises but not explain their solutions. What to do?

I am wondering how much of this is because they can not express in natural language (don't know terminology). How much is because of just fiddle until it works programming. Learning to express in ...
10 votes

Students can solve programming exercises but not explain their solutions. What to do?

I'm afraid my answer here will suggest that you completely revamp how you teach. The sort of problems that result in issues like this, seem to me to be problems that treat the computer as a fancy ...
  • 35.1k
9 votes

How do I teach git to a teenager

It probably won't fit particulary good for you, as you want the same GUI on every platform, but I want to suggest GitHub Desktop for future readers, who don't have the platform requirement. GitHub ...
  • 971
9 votes

Students can solve programming exercises but not explain their solutions. What to do?

It's time for a little "code review." Have a student present his code in front of class and talk about how he made it work. Hey, this happens in the professional world. There is no time like the ...
  • 2,279
9 votes
Accepted

Plagiarism checks for source code

I have been responsible for using performing and evaluating tools for detecting software plagiarism in my academic department. There are several published review articles in the scholarly journals. ...
8 votes

Do you know of a complete textbook for teaching databases?

I've taught a lot of people SQL in person (over 3000), and I've had to cobble together materials out of a bunch of resources to do it. For Exercises: http://sqlzoo.net http://pgexercises.com https://...
  • 121
8 votes

End of Year Movies For CS Classes

The Imitation Game: Alan Turing's life through the lens of his work on breaking the Enigma code at Bletchley Park during WWII and his later prosecution as a homosexual during the 1950s. It touches on ...
8 votes
Accepted

What and where should I study for competitive programming?

If your aiming for the IOI, the first step has to be figuring out how to get onto your country's delegation. In the USA (where I am), that means USACO. If not, then you will have to determine what ...
  • 31.7k
8 votes

Do you include coding assignments in an intro to complexity and computation course?

I'll use “TCS” — theoretical computer science — as the name of your course Should an introductory TCS course have coding assignments? Yes and no. Since there are two parts to that let me start with ...
  • 824
7 votes

Good datasets for intro CS courses?

I'm going to clean this up later, but am posting the verbatim work of the CSTA members so others can chime in with additional bullets. I'm aiming to have one resource per bullet: Resources name, link, ...
7 votes

Book recommendations for rigorous CS books

The Art of Computer Programming in four volumes by Knuth is an obvious choice. The first chapter of the first volume is a pretty solid course in discrete mathematics all by itself. If you can do all ...
  • 35.1k
7 votes

What professional development events or conferences are out there for CS educators?

In UK England, there are CAS Computing At Schools events. They are regional events. They are focused on primary and secondary schools. They are usually inspiring, but can be a bit simplistic if you ...
7 votes

What professional development events or conferences are out there for CS educators?

You don't specify Secondary School, but your AP tag seems to imply that as your main interest. I'll start with that, but give a more general answer. There are some organizations that hold regular ...
  • 35.1k
7 votes
Accepted

Looking for a blog article on the UI/UX design of an interactive coding interface like Khan Academy's

I found it !! Boy, I'm so glad. Had a bolt of insight in how I should use Google's advanced search features, and I found it. Here is the article: http://worrydream.com/LearnableProgramming/ An article ...
7 votes

Book to substitute "Compilers: Principles, Techniques and Tools" by Ullman et. al. (popularly known as the red dragon book)

The "problem" with the dragon book is that it is so complete; intentionally so. Over its lifetime there have been tremendous advances in the theory and practice of building compilers. If you ...
  • 35.1k
6 votes

Ways to advance the field of computer science education as a non-researcher

Actually (a) you don't need a doctorate to do research, (b) most university faculty don't do research in CSEducation, but in CS, (c) most conference committees don't care much about the formal ...
  • 35.1k
6 votes

What and where should I study for competitive programming?

Ben's answer on how to find and join a team is spot on. I'll address what you should be studying. Competitive programming generally is about correct use of algorithms and data structures. There are ...
  • 321
6 votes

A more recent book (or equivalent resource) on C programming to be acquainted with the latest standards (or the language grammar)

Ben Klemens' 21st Century C, now in its second edition, doesn't necessarily precisely meet this need, but I'd give it a shot anyway—it's not just a "description of the standard", but also ...
5 votes
Accepted

What non-programming book is vital for learning the CS mindset?

The hardest part of determining anything in computer science is the requirements first. If you don't know what the program should do, then there is no way to do it correctly. Thus, Winnie the Pooh ...
5 votes

Good datasets for intro CS courses?

I'd like to expand on one source in an answer offered above: The Collection of Really Great, Interesting, Situated Datasets, or simply CORGIS. From their About page: The CORGIS project aims to ...
  • 9,032
5 votes

Good datasets for intro CS courses?

I've been a big fan of Twitter for this type of project since 2014. You could use an API to pull some news feeds and turn them into a flat file for use with students. My students have found ...
5 votes
Accepted

A quick ruby crash course

This is a different sort of answer than what you may be hoping for, but I'd really recommend that you deepen your knowledge of Python first. Learn to be pythonic, learn its OOP aspects. Learn its ...
  • 35.1k
5 votes
Accepted

Undergrad level computer architecture course

My go-to answer for this topic is Nand2Tetris. There are 2 Coursera courses (Part I and Part II) that match the curriculum of the program. The first course does not require any programming background....
  • 9,032
5 votes

How do I teach git to a teenager

Oh, you're almost exactly like I was about a year ago. I understood simple version control, and had a good handle on mercurial (thanks to http://hginit.com/). I had even convinced my then company and ...
  • 151

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