47

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 step walk-through that I found really helpful in wrapping my head around what each command actually did when I was new to Git.


31

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 issue. Before assessments, I break down the evaluation to include the following. Simply getting the output gets them the bare passing grade. Those who can use ...


21

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 brute force trying things and SO search. Using program correctness for grading has the desirable qualities of being objective and automation friendly. So how ...


15

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 Git from the terminal. That will build an appreciation for the IDE plugins and GUIs later. Plus, it's helpful to understand what's going on under the hood. Here ...


13

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. Eclipse, for example, uses EGit for Git integration. The JetBrains IDEs also provide Git support. The text editor Atom can be extended with plugins (e.g. Git+) to provide Git support. All of those IDEs run on most common ...


11

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 natural language This is important, to allow them to communicate with a larger team, to allow them to look stuff up on an internet search, and to answer some of ...


10

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 Git, and is available on Windows, Mac OS X, and Gnu/Linux. Git-gui has a very simple interface that visually displays the process of staging files, creating ...


10

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 calculator. Problems given to students are of the "math-y" type. Some require tricky thinking, of course, but they are unlike the sorts of problems that people in ...


8

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 present to begin learning this vital skill.


8

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. One such report Culwin, MacLeod & Lancaster, 2001, UK JISC, "Source Code Plagiarism in UK HE Computing Schools, Issues, Attitudes and Tools" gives an ...


8

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 computer science, World War 2, equality, women's role is CS and society, etc. The movie also casts Turing, inaccurately, as socially awkward and a loner. This ...


7

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 of the problems in that chapter you can earn a PhD in CS. (Some of the problems remain unsolved, I think - at least they were when the book was first published....


7

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 have done programming for a job. The events I have been to I have ether chosen the groups that are teaching focused (as opposed to technical focused). Or in ...


7

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 conferences and to which you should belong in any case. The conferences normally have workshops in which experienced educators teach some tools-of-the-trade. ...


7

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.com http://pgexercises.com https://www.codewars.com/?language=sql For slides, you can use mine, just fork them and remove the branding (they are CC-licensed, the branding is just there to look ...


6

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, annotation, example ideas for projects How about CSV Data Sets at https://vincentarelbundock.github.io/Rdatasets/datasets.html Maybe there’s something there ...


6

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 Desktop GitHub Desktop (source code available on GitHub) is a graphical Git client by GitHub, available for Mac and Windows. It's especially designed to ...


6

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 credentials of those who submit papers to the conference. SIGCSE, for example, has quite a lot of work by people without doctorates. However, what you probably ...


5

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 is a wonderful book on the matter. It clearly describes time and time again how simple misunderstandings of the base assumptions lead to absurdities of action. ...


5

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 transform early computer science projects by introducing real-world data via simple-to-use client libraries. Data Science offers an authentic context for your ...


5

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 researching politicians interesting - especially to see if the subjects of their tweets match the issues they claim to care most about. I use the Twitter 4J API for ...


5

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 dynamic aspects. Become a Python Wizard. The reason for this advice, since you are fairly new at this, is that there is a danger that you will try to learn too ...


5

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. Its focus is on computer architecture (logic gates, half-adders, full-adders, ALUs, RAM, ROM). The second focuses on a virtual machine and a compiler for a ...


5

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 manager to switch from CVS to mercurial, so handling a DVCS wasn't really the issue. But for whatever reason I could not wrap my head around git. And then I ...


5

I have students follow through the Learn Enough Git to Be Dangerous tutorial, which goes through the basics of setting up a repo, committing, pushing to GitHub, and some simple collaboration. Git is complicated; my students are usually pretty mystified by it at first. But the nice thing about it, is that once you've learned the basics, you can do things ...


5

This seems to me to be the sort of topic that is best covered with an assignment such as Write a paper, citing resources, on the topic of XYZ. There are a number of other things that can be addressed this way. One advantage of such an assignment is that students have to write using natural language, which often gets too little attention in technical ...


5

I also encounter this issue (just encountered it yesterday in a lab exam). This is how I differentiate between someone who has done his work and just not been able to explain it and someone who has crammed/cheated: Deleting some part of code and asking student to rewrite it Asking student to modify a snippet of code Explain this line Usually Point 2 is ...


5

I agree that Computer Science Teachers Association (CSTA) membership and conference are the best place to start if you are in the US. CSTA membership is free. The annual conference is \$175 - \$275 USD. There are also local chapters of CSTA which may have professional development. Chapter membership is typically free. Some local professional development may ...


5

I am not too worried about language. I am just looking for a nice interactive learning environment, that combines the best of REPL and editing. Can you tell me of anything that you use or know of? Runestone Academy has a component called ActiveCode that allows you write Python code and run it. It also has a slider so that you can go back to earlier ...


5

At the state college I work for we stopped teaching Access as the "intro to databases" class a while ago. I taught the class this term using MySQL and MySQL Workbench. We had it installed on our lab machines (windows) and I also provided a VirtualBox VM with a Linux desktop, the MySQL server, the Workbench program, and a few other goodies. Since I ended ...


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