Hot answers tagged

15

I'm going to begin by quoting Ken Thompson's Turing Award Lecture "Reflections on Trusting Trust" (link). To what extent should one trust a statement that a program is free of Trojan horses? Perhaps it is more important to trust the people who wrote the software. In my mind the first and most foundational lesson to impart is this: software, computers,...


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 ...


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%...


10

I like your locksmith comparison, but I don't agree with the following assertion: From there, we arrive at this fine distinction: if a security feature is designed to keep you out, even if that security feature is very poorly implemented, then it is almost always unethical to circumvent it. Therefore, we should only study hacking using "practice locks", ...


8

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 ...


8

I would mention it in any class in which it is relevant, such as User Experience or where A/B testing might be used to show different users different versions of a website and measure their behavior. Because such research is ubiquitous (consider Google's testing different shades of blue), Facebook was unprepared for the backlash against their emotional ...


7

I taught a Cisco networking class for a couple of years and we had to stay off of the district network any time we were doing networking stuff. What I did was build a separate network in the middle of my room with old computers. Ran network drops from there to the racks in the back of the room so we could hook into switches, routers, and stuff. Once we ...


7

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 ...


6

First please be very cognizant of the term "hacking" Some of what you are describing is "cracking" not "hacking" The techniques may be the same but the intent is different. I think you are having problems with this because you yourself aren't comfortable with making this distinction. You cannot prevent someone who is rotten to the core from taking your ...


5

Who should and who does are often different. There are laws and contracts to consider as well as "common law." In my own view, forcing a faculty member to give up all rights to the intellectual property (IP) that he/she develops is just wrong. However the law is the law. Contracts intervene. A program developed in a class for a client is normally done under ...


4

Although it's unclear how human subjects might somehow be used in CS research, I think that such ethics should be taught in all fields, and not just CS. Indeed, it is not needed more in CS than in Biology (where humans often times really are the subject). But I'll address some of the examples you gave: The two examples you gave which I can imagine can ...


4

In general is is unethical to teach people skills that they intend to employ to harm others. That said, it is hard to know the intent of your students. Do you have Beavis and Butthead in your class? Pretty problematic then. But many people the age of secondary school students make a lot of judgment mistakes. (The human race probably wouldn't exist if most ...


4

None. Yes, a bold statement, literally. So let me elaborate further. You cannot cover all potentially relvant aspects of "ethical practices" in a computer science course. Assuming that this is a general, basic course, you simply cannot foresee the potential ethical questions that will arise for these students. One of them may work in the IT department of a ...


4

What are the first steps a teacher should take in integrating ethics into the curriculum? I would begin with practical, everyday topics which every student can relate to, and which are (should be) absolutely practically relevant in todays world from day #1 for every developer. Maybe based on current newspaper-level discussions. Privacy (being able to stay ...


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

It's certainly ethical to teach the existence of such tools. It's only unethical if the teacher neglects to teach the legality of these tools along with their existence, or if the teacher advises students to use the tool in an unethical way. It's rare that a tool is not ethical, it's more common that a use of the tool is not ethical. It's ethical because ...


4

I would go about detailing how much profit a white hacker can get, seeing as many security companies hire them as test attackers. If any of the kids are tempted be unethical things, then explain that far greater profit can be achieved with greater ease if one chooses to use their learning for good. So that's that (for any student saying "But I can make a ...


3

This seems insufficient to me, because of the following example at a minimum: In small towns, people do not lock their doors, or at least they did in bygone days of yore, or so the story goes. If you steal from a house where the door is unlocked, is that suddenly somehow not unethical? What if there was no door on the house at all? If the stuff was just ...


3

All the work we've done on in-flow peer review (see, for instance, our working group report) is aimed in part at this question. Overall, I believe we should rethink our curricula, pedagogy, and assessments so that we stop viewing plagiarism as a huge problem, but instead creatively think about alternate educational practices.


3

Raise awareness of the issues, discuss historical (Therac 25 is an old but highly interesting case of software bugs directly causing people to get hurt) and current cases (EU/US safe harbor and followups - there is so much potential to go in-depth about what data protection means and what the risks are!), and maybe make the legal situation (especially ...


3

Teaching about the existence of such tools is totally ethical. We need people who understand computer security, period. Mentioning the law is also almost self-apparently necessary. In my district, I am lucky, because I can get folks from the district IT staff to run the port scanner in front of my hacking class and discuss the results themselves. No one ...


3

The 'best' approach is debatable, but you could argue that the easiest approach is to use a permissive license which places few restrictions on who can use the code and what they can do with it. Commercial organisations may have preferences for the particular license you chose, and may be concerned about any obligations that the licence places on them or ...


3

In the software practicum that I teach, students develop new software for a real customer. My school has a standard software license agreement that the students, customer, and I must sign at the start of the semester. The agreement basically gives ownership to everyone involved. The software becomes, in a sense, open source. The agreement has two separate ...


3

Teach them to be cautious. This may not sound like ethics, but actually it has a significant ethical effect. People - especially young men - who are very confident try all kinds of things, including unethical ones. Their confidence is often misplaced. Computers will not forgive you because you are young and charming. They'll happily retain the evidence of ...


2

I just got a chance to read the article you linked to. As a teacher of CS50 AP, I can attest to the numerous solutions that are available online for all things CS50. It's almost unfair for a student trying to remain ethical when Google suggests appending "solution" to a query like "cs50 mario." Even a search without "solution" will often return a link to ...


2

In addition to all of the great answers here, one further tool to consider is MOSS (Measure of Software Similarity), which has been released for free to educators by Stanford: https://theory.stanford.edu/~aiken/moss/ It can currently analyze code in C, C++, Java, C#, Python, Visual Basic, Javascript, FORTRAN, ML, Haskell, Lisp, Scheme, Pascal, Modula2, Ada, ...


1

If students are learning penetration tools and techniques, they should first be required to learn, at a minimum: What is illegal and the civil, criminal, and professional penalties (I have students sign a statement that they have been told that any attempt to achieve unauthorized access to computing resources can result in felony conviction with penalties ...


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