This was just some advice I gave to a new CS teacher, answering some simple questions they had about how my class is taught. First are his questions, then my answers 🙂
- Do you do paired-programming? What does that look like in your classroom? (I barely know what this is, but I love collaboration and discussion in class)
- Do you assign homework, as in a specific assignment to be done for the next class? What are your policies for that work?
- I feel like plagiarism will be a big temptation, what is your experience with it?
- What kind of long term (quarter year?) projects would be appropriate for this level? (This is the only programming class offered at my school, so any prior experience will be students self-teaching).
- What does a day in your class look like? (I have 41 min. periods, FWIW).
- Have you ever organized a speaker series? What was your experience with that?
- What do tests / quizzes look like in a CS class? How do I grade CS assignments?
Welcome to the club!
- I usually use what I consider a ‘college based’ curriculum. What I mean is I teach the programming one day, next I do paired-programming. In my higher classes I usually do ‘flipped’ where the students study at home, then we actually go over the code in class. I show them how I did it, they show me how they did.
- I definitely give HW, and a decent amount of it. They have plenty of time to work on it in class, so not sure how much it is ‘home’-work. They have large projects at least twice a year and those definitely take some home time.
- Yes it is. And it is in the real world too. That is why you need to be careful in what you assign and the specifics more than anything. Yes, someone is going to grab Hello World, but sometimes that actually teaches them something. Change the specifics, it needs to say Hello Mr. /u/turtlesteele or something like that. Really they can use anything they want, but they have to realize when it comes down to test time, they won’t have the time to go grab someone else’s code and customize it.
- For first years I have a ‘Space Shuttle’ program they do first semester. This employs inputs, if/then, elifs, loops, and a few other things. It also is a little bit of fun, and students almost always add their own things (cheat codes or extra planets). Second semester they choose their own program, usually a game but I have had a program for buying movie tickets and a realtor project as well. They have to give a presentation on what their plan is before they jump in head first, they usually have 4-6 weeks to work on it. They have to turn in parts as they work on it.
- 40 minute classes as well. For first years you just got to get them to friggin get logged in and bring up whatever IDE you are using. It sounds easy, but it takes awhile for them to get on top of that.
- Nope, in my practicum classes I have programmers sometimes do video conferences but not first year.
- Mine are always projects, sometimes just little problems. I never do ‘questions’, I try and focus real world. As for grading, the main is does it work. Does it have Syntax, Run Time, or Semantic errors? Does the code look right, or just bloated? Licensing comes in later on.
Here is my git, but dear god it is messy and I never have the time to clean it up. I only did Java one year, Python all others (my practicum we do some C+ and Unity, but that really is them). I think my Java Pokemon game is still there, it was kind of fun to make. Though my git is mostly Python programs, for first years they can be easily made into Java.
USE MOOC. It has EVERYTHING you will need for a Java class, it will even grade stuff for you!