8 ms·
Teaching foreign policy majors to code
- superkuh 8y agoI understand why the teacher in this case hid the coding requirements of the course. His reasoning makes sense. But I'm not sure it was ethical misrepresenting the course even for the students own benefit.
- mingee 8y agoIs it unethical to do something if all parties are happy? Does it only become unethical when a party has been tricked and become unhappy, or is tricking somebody even for their own good unethical? In that case, what would be your definition of ethics? I don't have a strong stance whether his decision was ethical or not, just interested in seeing your opinion as you seem to be implying that it might not be :P
- evil-olive 8y agoIs it unethical for a professor to lie to their students? Yes. Is is still unethical if the professor argues that the lies were for the students' own good? Yes. Is it still unethical if, a few months into the course, the professor tells the truth? Yes. Is it still unethical if, a few months later, the professor tells the truth and one or more students says "you know, I understand now why you lied to us"? Yes. This really isn't a challenging conundrum. The student-teacher relationship is a special one. There are expectations that need to be fulfilled on both sides. One of the most basic ones that can be expected of a teacher is don't lie to your fucking students.
- andybak 8y agoPossible overreaction alert...
- deanmen 8y agoLying always being unethical is actually a relatively standard idea in classical ethical theories e.g. Summa Theologica, Question 110, Article 3. However, the statement that the class involves "no coding" could be considered truthful in the social context or as part of a use of mental reservation.
- Thiez 8y agoLying can be perfectly okay under consequentialism, which also goes way back. Personally I'm not very convinced of ethical theories where lying is unethical in all circumstances (sorry Kant), and I suspect I'm not the only one. Stating that there exists an ethical theory that supports your point just isn't very convincing for people who don't subscribe to that particular theory.
- deanmen 8y agoIt could be considered a non-lie under the concept of mental reservation. In older usage, coding a computer meant writing assembly or machine language only; thus, a report on FORTRAN indicates that "FORTRAN virtually eliminates coding and debugging". This is a standard usage of the word coding although slightly archaic. http://www.softwarepreservation.org/projects/FORTRAN/BackusEtAl-Preliminary%20Report-1954.pdf http://www.softwarepreservation.org/projects/FORTRAN/BackusE... Otherwise, presenting informal proofs to students in engineering or science that would not be considered mathematically rigorous would also be a lie and unethical.
- mingee 8y agoThis doesn't answer the prompt at all, which is: how do you define 'ethics'?
- tomc1985 8y agoWho is the professor to judge what is for someone's own good or not?
- Mvandenbergh 8y agoThat is literally the job of a traditional educator.
- tomc1985 8y agoTheir job is to educate, and stimulate the mind. They aren't telepathic, any "for your own good" they engage in is born of assumptions unless they know the student well.
- deanmen 8y agoIn older use, "coding" meant only assembly and machine language programming, which would be a separate process from writing a high-level algorithmic version. A paper on FORTRANS claims that it will "virtually eliminate coding and debugging" Thus the statement that the class is no coding could be considered truthful. http://www.softwarepreservation.org/projects/FORTRAN/BackusEtAl-Preliminary%20Report-1954.pdf http://www.softwarepreservation.org/projects/FORTRAN/BackusE...
- duckerude 8y agoThat doesn't seem relevant, given what the article says: >On the first day I soothingly assured them that they wouldn’t have to do any programming, which of course was a complete lie.
- deanmen 8y agoSorry, I must have misremembered and thought they said "no coding" instead of "no programming". But people would probably call such a usage a lie if it is intended to mislead even if strictly speaking it isn't.
- crispyambulance 8y agoSo many students, it seems, are grade-hounds that try too hard to workaround topics they find difficult or uninteresting. Sorry but, real world problems like foreign-policy practitioners have to encounter on the job don't respect _any_ boundaries, let alone boundaries about what topics one knows/doesn't-know/doesn't-have-to-know. For Christ's sake, these students were majoring in "Science, _Technology_ and International Affairs." They had some coursework where they encountered a bit of programming and some hardware configuration, SO WHAT? It's good for them. Now, if we can get computer science students to wet their feet in some public-policy...
- crooked-v 8y agoStarting off with C? Ow. R or Python seem like they'd be much better choices for something students would actually use in the future, given their data analysis tools.
- ummonk 8y agoOr Julia if you want to prepare them for the future.
- natalyarostova 8y agoYeah, Python will pretty much be deprecated over the next few years./s
- nerdponx 8y agoI'm a big fan of Julia, but I wouldn't say that it's a great introduction to programming. Python is the way to go IMO, unless Julia really takes off.
- ummonk 8y agoWhy isn’t it a good introduction to programming? It has a really consistent syntax, and polymorphism via multiple dispatch is a lot simpler to learn than polymorphism via classes imo.
- headcanon 8y agoI agree, this doesn't make sense. Python especially strikes the perfect balance between learning programming concepts and being productive almost immediately in real-life. It seems like most of the problems the students experienced were lower-level CS details like types and pointers that didn't directly translate with the kinds of data analysis problems that they were likely be able to apply to their studies. If they were CS majors I would entertain them learning the lower-level stuff first but not for what they are trying to accomplish.
- MrEfficiency 8y ago
- msaharia 8y agoI think the Professor is vastly overestimating how much his students benefited from this exercise. What they need are data analysis and modeling skills. R + Rstudio would be the perfect tooling for them. Laudable goal nontheless.
- the_watcher 8y agoThat would not have been useful at all in the course - which involved programming an actual device, powered by an Arduino.
- msaharia 8y agoExactly what I meant. Why would foreign policy majors need to know how to program an Arduino. I can't think of a single reason to.
- jmickey 8y agoWhat about teaching coders about foreign policy? Now that sounds exciting! :)
- f4stjack 8y agoI must say I am conflicted to write on this subject. On the one hand I am a person who has a humanities background turned to coding (bachelor's on philosophy; master's on sociology) but on the other hand I am burned out now and unwilling to do anything code related thanks to previous employers so my outlook isn't a nice one. The problem I experienced was most of the companies want a bachelor of science or an engineering degree on their job postings. I think this is because the workshop kool-aid has proven ineffective in creating good programmers but rather code workers who are good at menial jobs but unable to provide good solutions. So if a foreign policy major decides to go full on coding by self-teaching skills to himself he'd get slaughtered on job applications, without being able to show his skills on the technical interviews. Secondly, the job politics of most companies are just dreadful. After all those humdrum job interviews, skill tests, certification badgering; what I experienced is writing code that generates a sql query to the parameters that's taken from the frontend which had NOTHING to do with interview questions or the skills demanded by the employer. In sum, I have to emphasize that these are my experiences and maybe limited to where I live and tried to earn my keep by coding. So I hope that it is a local thing and where you live has a better environment when it comes to employing programmers who are outside of the field. Thanks for reading anyway.
- blauditore 8y agoI think the job posting issue is partially related to recruiters not knowing much about technology either, so they stick to "measurable" means like degrees and technologies, even though it's often stupid. Also, job postings are generally optimistic, and you might still have a good chance if you don't meet all requirements. On the other hand, I also thinks it's not ideal for someone with only little software engineering education to aim for a job which is full-on coding. I think those kinds of workshops (or single programming courses) are more useful for jobs where coding is just tangentially a topic, like if you're occasionally creating/maintaining advanced spreadsheet files, or work together with programmers (if you're graphics designer, product manager, or similar).
- QasimK 8y agoSurely the team hiring tells the recruiter what the job requirements are, rather than the recruiter just making them up?
- blauditore 8y ago> Lesson #2: the basic paradigm of code (strictly sequential execution, with flow control and function definitions) isn’t always intuitive and should be explained clearly to first-time programmers. That's a good point. I like to tell programming newbies (or just other people who don't know what software development is) that a computer program is like a cooking recipe: It defines step by step what to do, and someone (the computer) executes it.
- golergka 8y ago> Another problem was that I used several different ways to do the same thing in the code, without being clear about why. For example, I declared some parameters as constants and others (which weren’t being changed) as variables — mostly because I was being sloppy. That's why C or especially C++ is probably the worst possible language to teach programming. Also, be frank with your students from the beginning about one thing: there are areas that they should understand, and then there are areas that they should just treat as "magic" and not go into, on a certain level of development. Not because they're really magic, but just keep first things first.
- analog31 8y ago>>> More broadly, this illustrates that there are hidden traps of confusion and misconceptions among first-time programmers that are very hard to see if you’ve been programming for a long time. This may happen in other subjects as well. I taught college math as an adjunct for all of one semester, and discovered to my surprise: 1) None of my students knew the meaning of "show your work." Hint: It doesn't mean turning in your scratch paper along with the answers. 2) When I asked the math professors how to explain "show your work," some of them bluffed and blustered, but none of them could give me a straight answer. At worst, I got, "they should just know."
- throwawayjava 8y ago> 2) When I asked the math professors how to explain "show your work," some of them bluffed and blustered, but none of them could give me a straight answer. At worst, I got, "they should just know." It sounds like you were teaching calculus or maybe college algebra ("they should know" is actually good advice for the higher level mathematics courses -- most departments have a whole course that's more-or-less about how to write proofs). At research universities, the tenure-track professors rarely teach anything below Calc II, and might not teach any Calculus courses at all. Certainly nothing below Calc I. If you ad junct again, consider asking the other ad juncts/instructors instead. They're more likely to have lots of exposure to that university's demographic in a relevant course.
- pc86 8y agoI'm not conceding that it's reasonable for a professor to answer something with "they should just know," but I think the issue here is that they seemed incapable of explaining it. It's one thing to say to a class "you should know how to $x, so I'm not going to teach it to you right now" but another entirely to be either unwilling or unable to explain exactly what they mean to a colleague.
- throwawayjava 8y agoKeep in mind that teaching is its own skill. Especially in universities, that skill can get awfully specific awfully fast. In particular, for a TT professor at an R1, odds are extremely good that they've NEVER taught anything below calculus and may have never even been the instructor of record even for calculus courses! They were hired to do research and teach graduate/upper-level undergraduate courses. Teachers that know how to explain and assess everything in a graduate analysis course with perfect clarity might not know how to handle the situation where a student doesn't know what it means to "show you work" in the context of calculating a derivative or solving a linear equation. In fact, they might not have even thought about learning/teaching that material themselves since early high school or maybe even middle school. This doesn't make them a bad teacher. It just makes them a bad calc I/college algebra teacher. Which is okay -- teaching those courses is not their job and is not what they were hired to do. So this is somehow a bit like complaining that a web programmer isn't particularly adept at kernel hacking. That doesn't make them a bad programmer, it just means they focus is elsewhere. Again, most universities do hire experts in teaching the lower-level courses. They're just not typically tenure-track professors.