Accused of cheating!

I was accused of cheating today. I’m all riled up so I can’t possibly sleep, which is what I should be doing right now. Grr!

I’m taking a web publishing class as part of my degree program at a local college. The teacher mentioned to us on several occasions that we were not allowed to use WYSIWYG editors for the class. He wants us to hand type all the HTML. That’s fine with me, in fact, I hate WYSIWYG editors. I figured I would not be violating this rule if I were to use Emacs (my editor of choice) which is text based and provides absolutely no WYSIWYG functionality at all. I also assumed it would be OK to write the HTML using compact lisp symbolic expressions to save my poor hands from RSI. In case you’ve never seen HTML written this way, here’s an example:

(:html
(:head (:title “Title of the web page”))
(:body (:h1 “Hello World!”))))

Writing HTML this way saves a lot of typing and avoids the “angle bracket tax”. After writing the HTML using s-exprs I run it through a translator that spits out normal HTML, which is what I turn in to the teacher.

Well, today I got 2 emails from my teacher. The first one said I did a excellent job with my assignment and he even gave me some extra credit points. The next email, which came a few hours later, he retracted my grade stating that I must have used a WYSIWYG editor to do the assignment. My HTML was too advanced and well formatted to be hand written. He then said he would give me a break this one time and let me redo my assignment by hand like the rest of the students in the class.

His response to my assignment made me very mad. I spent a lot of time working on that assignment and to be called a cheater without first allowing me to explain myself really ticks me off. So after cooling down a little bit I sent him a nice email explaining exactly how I did the assignment and included the s-expr source file. I also explained why I did it that way, mentioning RSI and the AB Tax. Hopefully the issue will be resolved in the morning and I can get my excellent grade with extra credit back!

Alright, I’m done venting, maybe I can get some sleep now!

25 Responses to “Accused of cheating!”

  1. kevenker Says:

    Man that is a bummer. :(

  2. びっくり Says:

    So, you didn’t mention this at lunch today. Does that mean he hasn’t responded yet? I hope your explanation wasn’t over the teacher’s head. ;)

  3. kenny Says:

    Your teacher probably meant by “no wysiwyg” that he wanted you to do all the html syntax yourself, to demonstrate mastery of html syntax (not just get a nice web page up). If you wrote the Lisp package yourself (did you?) then obviously you have mastered the html syntax. if not, then you merely stumbled onto a technique the teacher did not anticipate which has the same problem as using a wysiwyg editor: you do not “hand type all the html”. It is hard to understand why you are riled up when your effort, however effective, flies in the face of that directive.

  4. Tel Says:

    Eh. I’d agree with your response over Kenny’s. Lisp-shortened-HTML is, from the perspective of the thought involved, every bit the same as typing HTML short the silliness of all the end tags. It’s just a ridiculously complex outline in either case.

    The only difference I can see is that the lisp version uses a different sort of formatting — often it’s not pretty — and good hand written HTML should look organized in the source as well.

    Hope the teacher returns your grade.

  5. anthonyf Says:

    To Kenny: You are correct, I exchanged some emails with the teacher and by WYSIWYG he meant anything that generates HTML, even my lisp code. He also gave me a nice lecture about how Lisp is not industry standard and blah blah blah but I just let that go. I do have quite a bit of HTML experience so I felt I wouldn’t hurt to practice writing some lisp code at the same time. It didnt even occur to me at the time that I would have trouble with it. As for the lisp package I was using, I chose CL-WHO. I already went through the PCL book, which has a couple of chapters on creating your own HTML generator.

    To Tel: I really like writing HTML using lisp. Emacs does a good job of indenting everything all nice and neat when it is in s-exprs. Since I am no longer allowed to use my lisp method for class, I’ve been using Emac’s PSGML mode which helps a lot when writing plain HTML by hand. The teacher did give me full credit for the assignment anyway, so I’m happy!

  6. Wayne Says:

    You should modify CL-WHO to generate HTML that appears hand-made (whatever that means). Occasionally not quote attributes; screw up the indentation; use inconsistent capitalization. That would be more interesting than typing angle brackets.

  7. tyler Says:

    sounds like you should probably be the one teaching that class…

  8. Matt Says:

    I have a Ph.D. in computer science and if one of my students did that to me, I’d have given him full credit, and shown the technique to the class as an example of what was possible out there.
    That said, I wouldn’t let you keep using the s-expression syntax, and here’s why.

    It sounds like your s-exp to HTML filter only works one-way (which makes sense). That means that when you’re put in the position of debugging someone else’s HTML or add something to your own HTML (which is what 99% of your work will be in the real world), you’re going to have to read and modify raw HTML, not your clean s-expression syntax. As your teacher, I’d have a responsibility to make sure you left the class prepared to deal with stuff in the real world and if you couldn’t read/modify HTML in th wild, I’d have done you a disservice. If your teacher was clever, he’ll start handing out homework that requires you to make changes to HTML in place and you’ll see that you’re sort of stuck having to deal with the end tags and the sea of angle brackets.

    Writing a filter that can do a clean round-trip from s-exp to HTML to s-exp is probably hard, especially dealing with all the error conditions. Perhaps there’s something out there that does that? I don’t know. Maybe that can be something you can work on?

    Another thing to consider: (and this is going to sound like a commerical, sorry), maybe you can look at TextMate for MacOS X. It has a brilliant auto-complete mechnanism for code-writing including HTML. For example, typing H1 will make TextMate fill in the angle brackets, the close tags and will place your cursor right betweeen the two, which is actually *faster* than your s-expressions and leaves you workging with standard syntax. Everyone wins. Just a thought.

    Good luck!

  9. Jack Says:

    BTW, there is a lisp program called “linj” (”Lisp in Java”) which does for java what your sexpr-to-html filter does for html. Linj is not yet bi-directional; however, its inverse program–”jnil”–is nearing completion. These tools are quite sophisticated. The java code produced is idiomatically java, not lisp.

    There are similar filters available for javascript (”parenscript”), and sql (”clsql”) such that you can write an entire web app, client and server, in lisp. Parenscript is not bi-directional, but there is a “javascript-in-lisp” grammar available on the Mozilla website, should you ever want to roll your own inverse of lisp-to-javascript.

    Even with the ability to go back and forth between lisp and other languages, Matt’s criticism will still be pertinent to some extent, because there will inevitably be some clumsiness involved with using libraries and language-aware tools when you are “shape-shifting” code.

  10. Kaz Kylheku Says:

    You know, if you’re so smart, why are you taking a HTML class for dummies? Are there cute girls?

    Come on, you’re writing Lisp to generate HTML. What could you possibly learn in this course? Is it a required core subject, or did you just take the class to show off or slack off?

    This is not a matter of you being right and the teacher wrong. You are skirting a personality clash here.

    This teacher can sense that you are too smart for his class and will probably go a lot farther than him in the computing field.

    He might be harboring some insecurities about his own capability. Combine that with an authoritarian personality, and you have trouble.

    He might also be wondering why you are taking his class. “Is this smart kid taking my class just to slack off and earn an easy credit? To meet girls?”

    My recommendation: a liberal serving of diplomacy with a dash of humility.

  11. anthonyf Says:

    Wow, I got a lot of responses to this one. I wish comments were threaded but since they are not, I will reply this way again:

    To Matt: Your input is well taken. I should have known better to do the assignment that way and I overreacted to the teacher’s accusations. We’ve exchanged emails since then and we are both on the same page. I’m back to writing HTML by hand using Emacs, which has some auto-complete features. I don’t own a Mac right now, but I plan on changing that soon, and when I do, I’ll try out TextMate!

    To Jack: Thanks for the info! I’ll check those out. I’ve looked at parenscript clsql but never heard of linj. It sounds interesting because I do a lot of java development. And I agree that Matt’s critisms are pertinent to “real world” applications but I also do a lot of development on my own, for me, and in those cases I tend to use exactly the tools that I want.

    To Kaz: There are a few cute girls in the class but that wasn’t the reason. I actually decided to take the class rather than test out of it because it also covered CSS, which I am a bit weak at. But it turns out that we will only be touching the surface of CSS so I’m really not going to learn much. So if I had the choice to do it over I would have tested out of it :-(

  12. Adam Says:

    Just as a side note, you can get a decent start with CSS from http://www.htmldog.com That or the Eric Meyer OReilly book (Cascading Style Sheets: The Definitive Guide, Second Edition)

    That said, I agree with the above comment regarding teaching you to work with pre-written html. In web development probably 90% of your work will involve maintenance of some kind, so it is an important skill.

  13. びっくり Says:

    Glad to hear you received full credit. You didn’t mention the extra credit though; I assume that was lost, but I still expect you’ll ace the class.

    From our previous discussions I didn’t realize you could have tested out of this class. My personal recommendation is to test out of every class you can. This will speed you toward your objective of having that important piece of paper to hang over your desk and allow you to move on to graduate school or independent study. You have proved over the years that you can assess your own weaknesses and set about a plan to rectify them.

    がんばれ!

  14. Leonardo Boiko Says:

    > by WYSIWYG he meant anything that generates HTML, even my lisp code. He also gave me a nice lecture about how Lisp is not industry standard

    Your teacher sucks.

  15. Tim Says:

    I did something roughly similar when working on my CS degree. The class was one in algorithms, and there was a particular one which was shown in class, and required for an assignment. I don’t recall what the algorithm was off-hand, but it was miserable to do by hand, calculating something or other on matrices, copying to the next one, and so on. Any typo would botch the entire result. It didn’t help that the prof has poor eyesight, and couldn’t accept work in pencil.

    Part-way through, I wrote a C program to take the input and produce nice, LaTeX tables of the end result. For the “show your work” part, nicely formatted source code was included. It got full marks, and delight in the groans from my friends who had done it the manual way. Since the process had to be understood to write the code, it went over great. :)

  16. Roller Says:

    “He also gave me a nice lecture about how Lisp is not industry standard and blah blah blah but I just let that go. ”
    You should of, without being a smart ass, directed him to a place called Reddit…

    ( http://reddit.com/ ) Its a excellent news source, that was origionaly written in lisp !

  17. Jules Says:

    Sexps = WhatYouSeeIsWhatYouGet?

    LOL.

  18. sillyuser Says:

    (Just to make sure: the following is intended as a compliment!) If you can do what you described, I think you have no business taking web-publishing classes from a local college. Just go and start making money :)

  19. Dave Newton Says:

    My editor completes XML tags for me. So… that would be cheating too?

    That’s fucktarded.

  20. Luke Says:

    Tim: Wasn’t the “Simplex method” by any chance? I did the same myself, sans-latex, in Python. The coursework was mysteriously lost so I never got a grade and only just passed the class :(

    Linear programming by hand has to be the most rediculous thing ever. Isn’t that what computers were invented for?!

  21. David Phillip Oster Says:

    One question, not clear form your original posting: Did YOU write the s-expr to HTML translator? If you used someone else’s translator, then you violated the spirit of the exercise. If you wrote the translator, you should get full credit.

    I had a similar experience at Harvard in 1977, when, given a Backus-Naur representation of simple, Pascal-like programming language, the assignment was to write a functioning parser for the language, without using a parser generator. A quick back-of-the-envelope calculation showed that the parser would be over 20 pages long, more typing than I was willing to do. So I wrote a parser generator in Emacs, and submitted both the finished parser, and also the parser generator.

    The strategy came in handy when the second assignment was to retrofit the parser with tracing and error recovery.

    I was the only student in that class to write my own generator, and I received full credit for the assignment.

  22. David Phillip Oster Says:

    Correction. I used Teco, not Emacs.

  23. Peter Boothe Says:

    Why is someone who knows how to write LISP well enough for it to be easier than writing HTML taking a web publishing course?

  24. Brendan Says:

    Nice pre-processing.

    Don’t take lectures/teachers too seriously. They’re only human. (I’ve been a postgrad for years – so trust me on this).

    Consider that guys like the Woz were self-trained:
    http://foundersatwork.com/stevewozniak.html

    BTW: it’s a good thing you didn’t write your own WYSIWYG editor to do the assignment – then you’d *really* be in trouble!

  25. Tyrel Says:

    I feel ya. I’m in highschool (althoug i take classes at the U) and i got accused of cheating on 12 question test in physics today. I’m all mad and i’m trying to stop my mom from sending a mail bomb ;)

Leave a Reply