Hot answers tagged

61

This is a very common problem. Students tend to focus on the stuff they can see, which can be to your benefit (visual programs are more engaging than command line applications), but like you've discovered, it can also be very distracting. I think a lot of the problem can be prevented by adding a disclaimer at the top of assignments. Something like this: ...


33

Rubber Duck Debugging. A few years ago we bought a bunch of cheap rubber ducks. Students with questions have two options. They can either ask their neighbor or explain to the duck what they're trying to do. If the duck didn't help, then they can ask me. I've moved to a different school since then and haven't bought any ducks. I really need to buy some ...


26

Make the bells and whistles part of the problems you want them to solve. This is actually a great situation, since your students seem to be really interested in those things and show some intrinsic motivation on working on them. Just think about this, they are actually spending time doing extra work that you didn't even ask them to do! Now you just need to ...


21

I have 3 tiers of labs. First are the required labs. They're worth 100 points each and every one must do these. If they don't do one, it goes in the gradebook as a zero. These are also the labs that I think are the best of each topic for practicing what they need to work on. My calendar is based on how much time I expect 90 plus percent of the students need ...


15

I am dismayed that students seem to spend an enormous amount of time straining at gnats, trying to get picky details of the appearance correct. So they are tackling a front-end programming assignment in a way that reflects the reality of the majority of front-end programming. Getting this stuff right or wrong can make the difference to the viability of a ...


14

If you are just trying to teach core programming concepts, and don't want students to be distracted by a GUI, which you yourself avoided by learning in command line programming, have you tried teaching them in command line programming? The GUI can come when they need to learn about the GUI. Get the students to learn the core programming concepts they need ...


13

For me, labs are worth very little. The district sets them to be only 10% of the student's average. So I don't worry about them working together. In fact, I encourage it. What I tell students is that as long as they understand the lab when they're finished, it's a successful lab. Yes, I'm sure there are students that straight copy from their friends. At 10%...


13

I can only speak from a high school perspective as that is what I teach (14-18 years olds), and I truly feel your concern on this question. Biggest issues I have in my CS class are distracting websites (YouTube, games, etc) and copying code. I have certainly not fully conquered the problem but here are a few things that I do that seem to help: Don't ...


9

Just to check, are you setting expectations correctly? For example, perhaps the reason why the students are focusing so much on the visual appearance is because they think that's the core "point" of the lesson (or the class). If so, that could perhaps be something you could clarify in your rubric or syllabus -- make it clear that you care more about the ...


9

Part of it may be wanting to have pride in their work, and not knowing (yet) how to direct that urge productively. I also learned in a predominantly CLI environment and I can remember, with a certain degree of chagrin, the things I did beyond the scope of the assignments that are entirely analogous to fiddling with backgrounds and layout. One of the ...


8

(You didn't say what ages your students are, so this answer is necessarily a little nonspecific. There is also an article here that you may find helpful.) First and foremost: don't expect total victory in this regard. Your students ask you because it is frustrating to be stuck, and it is perfectly natural to try to find the quickest path out of ...


7

A benefit to OOP often overlooked is encapsulation. The object has data and methods (knows things and does things) that elements outside the object neither have access to, nor even know exists. Only the exposed elements (methods) can be used by other elements to get the expected results. (However that happens.) Build the lab around the "mystery" of an ...


7

At Denison, our intro class has labs designed around real world problems, and involves lab reports. This makes it a lot harder to cheat. We're not saying "implement quicksort", we're saying "write a simulation to check Tom Schelling's Nobel prize winning work, then write a 2-3 page paper explaining what you found." Of course, students will still try to get ...


7

The Dutch National Flag problem is linear in running time. Essentially sort an array with only 3 distinct values each of which may appear 0 or more times. (not length 3). You are allowed only one pass over the array, so the solution is a single while loop with some prior initialization. It was probably originally posed by Dijkstra. It is mentioned in David ...


7

A variant on the ENIGMA machine encryption works well in a single loop, and is sufficiently complex to give students a real challenge. The core idea of the ENIGMA machine for this assignment is that (1) a number is given as an initial key, and (2) every prior letter used influences how the next letter will be encrypted. So, use a modular circle of ...


7

This is an important teachable moment One of the most annoying traits in newer engineers is their "helpfulness." They may not realize that working on tasks outside of their assigned scope can actually be harmful. Often there are separate team members who are specifically assigned the visual stuff, and sometimes there are strict standards, compliance issues, ...


6

My main tool to prevent plagiarism on short beginner labs is to have a discussion with my students and to under-count them in grading. I explain to my students that cheating is a huge problem on CS labs specifically. I use a news item of a huge number of university freshmen expelled for cheating in a CS class. (Search as I might, I cannot find the example ...


5

After students have explored java's string and math classes I introduce a group project called "Mathey". Each group is to write as many math functions that they can think of and assemble them into their own class. Students seem to like this and are very competitive in coming up with useful math functions and enjoy showing off their work and creativity when ...


5

The first step is for the students to design their own projects. I give them a timeframe, and make clear that they will be held accountable (within reason) for finishing the project. I don't just accept the project proposals blindly - there is a negotiation here. There's an odd twist to this step, actually: I often have to persuade the students to lower ...


5

One site that I find helpful for basic examples of coding task written in a multitude of programming languages is RosettaCode. While it is not always a win when going there, I still keep it high on the list of sites to check when looking for teaching examples or code that demonstrates something. In this case the combination of the programming language ...


5

I'll have to admit to not actually using Windows Forms Programming, but MS seems to indicate that it is a variation on Model-View-Controller (MVC), in which an underlying model is viewed by one or more Views and controlled by one or more Controllers that connect the Model to the Views. Other systems, such as most of early Java GUI programming fit the same ...


4

The other answers are good, but there's another angle you could take that hasn't been mentioned: make the early finisher(s) your temporary lab assistant(s). Assuming that what they turned in was suitably bug-free (not that I ever submitted a lab super-early with a critical error still in the code, no way no sir) and depending on the personalities/...


4

I have students complete a long-term project over a very wide spectrum of CS and applied ICT areas. Each student has one project of their own choice and design. Topics proposed by students at present include architectural design, phone apps, animation, video and sound, typography, robotics, coding, story-telling, website, and research projects. I use two ...


4

I am basing my answer on my own high school experience, some decades ago. I was a junior in a CS class composed mostly of seniors. The format for a five day week was two days of lecture, three days of in class "labs," with the teacher as a "floater," moving from one group of students to another to help out. Even though I was a year younger than most of the ...


4

One option is to have a short closed-book in-class quiz after each lab assignment to test each student's understanding (which is a good thing to do even in the absence of cheating). For your sample problem, you might ask them to fill in the blanks to complete code to solve a comparable problem or to answer multiple choice questions about a short program ...


4

I'm a big fan of giving fast-finishers choice. I make one thing abundantly clear to the students from the beginning: if class is 90 minutes long, everyone works on the topics of our course for that amount of time and credit is only given for the class assignments. No extra credit for extra learning. When the students complain that they are doing more work ...


4

You may very well have some examples where you can discuss state machines and hence state diagrams, that is, graphs. For example, if you're creating a game with a computer controlled character, that character might be in different states: pursue, search, attack <-- you can introduce a graph representing the states and transitions. I wrote about this a ...


4

Students will act according to the habits they have built up. The one they have isn't terrible, but you can work to improve it. This answer won't save you much time, initially, but if you can change the habit then everyone wins. When asked a question you need to find a way to get them to respond first, somehow. There are various possibilities. The classic ...


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