Friday, October 4, 2013

Academic Integrity

I'd like to post more often to the blog but two big things have happened in my life. First was the birth of our first child in May. She's a beautiful baby girl and is a light to our family. I'm so blessed to have her and my wonderful wife in my life. The second is my upcoming PhD dissertation defense that's scheduled for the 24th of October. Between those two things I've got a lot on my hands. I've got plenty of project ideas and I hope that once I settle into a job in January I'll get more up on the blog.

Despite my dissertation defense coming up in just 20 days, today I had to take some time to talk about academic integrity. And by talk I mean get some feelings off my chest because I'm just so annoyed right now. One of my most popular posts so far has been the MSP430 IR Remote Control. It was a ton of fun to do and I've got many more ideas on where to go from there. It was genuinely rewarding to watch that VCR turn on and off and to know that I did that. For that post I intentionally left the code off the site and unavailable unless you emailed me first. I did this for two reasons. First I'm just a sucker for getting emails from people. How fun! It gives me a chance to interact a little more with people who are working on using the IR transmitter for cool projects. I've had a blast hearing how it would be used. The second reason is one I take seriously. One of the big features of the MSP430 Launchpad pushed by Texas Instruments is its educational value. It's used by many universities in engineering courses to teach about microcontrollers and embedded systems. I did not want my work to become the way some student cheated through his engineering coursework or class project. Even without the code I feel like the post spells out pretty clearly the fundamentals you would need to get a project like this going.

Today I received the following email:
I have gone through your blog and found useful information regarding the IR receiver and codes used in the IR remotes. I'm working on an academic project and I need help regarding the code used for IR remotes using MSP430G2553 launchpad. So I thought I could get your assistance.
I let the student know that I was happy to help and asked if it was for a class. I received the following reply:
Thanks for your reply. This is for the microprocessor class. I'm using sparkfun's IR remote and IR receiver breakout to communicate to launchpad controls. I'm using MSP430G2553 with CCS emulator. So could you please help me with coding this circuit using "C" language.
Seriously? No. Of course not. Not in the way you intend me to. Do you have a specific question about how IR protocol works? Do you have a specific question about how I got something to work on the microcontroller? Or managed some problem you came across while coding? I'm happy to help. Do you want me to do your school project for you? Absolutely no.

I let the student know that I would not provide code and that his/her school's honor code prohibits such. To which I receive:
I do not need you to give me the code for it, you could at least tell me how to go about it, like what libraries to use and the flow diagram.

I could at least... what?! I am under no obligation to tell anyone anything. I don't owe any reader more than what I've given. I don't even owe that. I could even remove content from my blog post if I feel like I'm giving too much to you. I think "you could at least" are the words that have bothered me more than any others through this exchange. Maybe "you could at least" have a solid measure of academic honesty in your work. And as far as "how to go about it" goes, I think the post gives more than enough information and that it speaks for itself. I'll link to it again.

At this point I was a little more blunt with the student. You need to read the material I linked to on the post. You need to struggle with the material. You need to make mistakes. That is how you learn. Your professor did not give you a class project to burden you or annoy you. Your project is not an exercise is getting by with as little work as possible by cobbling together others' work into something that maybe will work and that you surely don't understand. Your project is for you, believe it or not. It's for you to grow, make mistakes, ask yourself "what in the world?" a hundred times before that epiphany where you get it, and come out better for it. It's for you to learn. Just like your project, school itself is not some futile exercise on your way to that sweet engineering job you deserve with the six-figure salary you get from day one. It's for you to learn. And if you cheat, you're not fooling the school or your employer. You're not cleverly getting by those dumb restrictions that just aren't used in "the real world." You're cheating yourself out of the best opportunity you have right now to be something more than what you are right now. It takes a lot of hard work to do it right and a lot of time to do it all. That's precisely why it's worth doing. (I didn't say all of that to the student but some of the good bits.)

As a student myself for many years, I don't expect any less of myself or my peers than having high standards of academic honesty and integrity. Don't ask me or anyone else to do work for you. Do ask for help. Don't ask for work.

I've got a dissertation to write.