Porgramming Assignment

Besides the work of building a network for UFLA and trying to kick-start some research in computer science, our main focus was, of course, teaching. Since the program was still very young, there were only a few specific computing courses. Montserrat and I taught the first three semesters, so right from the start we had to design the curriculum and build our classes, as I already mentioned in an earlier chapter.

In addition to the computing, math, physics, and statistics courses, the curriculum also included an English course. Considering that, in Brazil, most students leave high school with a level of English somewhere between weak and mediocre, that made a lot of sense: English is essential for any career in IT. Other universities had something similar. The problem is that, unlike well-established universities, UFLA didn’t have an English department. There were no professors available to teach the course.

After some negotiation at the departmental and university levels, it was decided that someone from computing would have to teach the course. And it fell to me. I would be responsible for preparing and teaching the English course for the computing students.

I remembered the English course I had taken back in high school. It was a course focused on very specific goals, mainly reading non-literary texts: news articles, manuals, technical texts. Since we only had one semester, I thought that methodology would fit well. I bought some books aimed at teaching English for IT and the exact sciences and built the syllabus around them. The material was well suited for teaching and allowed the students to make progress in reading. The class was very heterogeneous: there were students who knew practically nothing and others who already had some command of the language.

Since the focus was reading, the exercises revolved around understanding English texts. At that time, tools were beginning to appear that promised to help with that, such as online machine-translation tools. They were still rudimentary, and the translations were a bit clunky, but they already helped with understanding texts. I made a point of making it clear that a translator could be used as a tool to help the students, but it should not be used to turn in assignments.

Several assignments involved me giving the class a text in English and asking them to produce a summary in Portuguese. One of the last assignments was slightly more ambitious: each student had to pick a different text about a topic related to Computing and produce a translation into Portuguese. It didn’t need to be a perfect translation, but the Portuguese text had to cover all the topics in the original, which had to be at least two pages long.

When grading those assignments, I noticed a curious case. One student handed in a very well-written text in Portuguese. I went to check the original piece, as I did with everyone. The English was awful, completely broken. I tried to find the source of the text, without success. I then decided to search online for excerpts of the Portuguese text. I found the article. I put the Portuguese article through an online translator, and the result was exactly the supposed English “original” the student had turned in. He had done it in reverse: translated from Portuguese into English and presented the English version as the original article. Obviously, he got a zero.

Grading assignments brought a certain satisfaction, but also plenty of frustration. The effort some students put into gaming the rules or dodging the work was impressive. In one programming assignment, I received two submissions that were practically identical. So identical that both contained the same typo on the cover page: Porgramming Assignment. That one was easy to spot. Others tried to change variable names or other details, but the plagiarism was obvious.

For these cases, I defined a simple rule: I assigned a grade to the assignment and then divided it by the number of people who had “collaborated.” That would be each student’s final grade for that assignment. If they were willing to identify who had actually done the work, that person could get the full grade. This caused a bit of a stir. Some students complained to the course coordinator and the department head, and I was called in to explain. I showed them the copied assignments and, even though they thought I could have gone a little easier, they respected my decision in the name of academic freedom.

The last story about assignments in Lavras was about a sorting algorithms assignment. It was practically the same I had done at UFMG: implement a list of sorting algorithms (whose code was in the textbook), run them with different input sizes, and measure execution times. The goal was to observe how those times evolved and relate them to the time complexity of each algorithm. It wasn’t a conceptually difficult assignment, but it required time and patience. I made that clear.

Unfortunately, several students left it to the last minute and spent the last nights in the lab running the tests. Most turned in the assignment and did it correctly. But there was a student who understood the goal so poorly that, when I asked for charts to analyze how an algorithm’s execution time evolved with the size of the input, he handed me pie charts. To this day, I don’t know how he intended to draw any conclusion from that.