Friday, July 12, 2019

Am I in the right major?

Doubting girl
Last fall, a student from my CS 222: Advanced Programming course sent me an email expressing concern about them choosing computer science as their major. The email said:
I just had a question concerning life outside of college. This first project that we just completed: is that what real work will be like in the real world? With 20+ hours of research for a small part of code? I’m just starting to question if I’m in the right major considering I couldn’t get this first project to work.

The student appeared to feel like they were “drowning,” and not accomplishing what they needed to be doing for the course. This was causing them to doubt their choice of major, wondering if they were really going to enjoy it in the future.

I’ve written some about the CS 222 course before. (What we learned—Fall 2017, and Spring 2018, and Popular achievements—Spring 2018 and Spring 2019.) The course, by design, tends to “throw the students in the pool, and encourage them to (learn how to) swim, while I stand by the side with a reach pole in case someone starts to drown.” This does not mean that I don’t provide instruction and scaffolding, but one of the objectives of the course is for the students to learning how to learn, something computer scientists are going to have to do their entire profession. As such, the course is structured such that the students have to find much of the details and skills themselves as the semester progresses.

So, how did I respond to the student? Here’s my response.

Fair question. Mostly, the answer is a resounding no.

As you become more experienced, there is less you will need to research. If you don’t recall how to do something you’ve done before, you’re likely to understand the overall idea, and just need to be reminded of the details. If you’re needing to do something new, it’s not likely to take you as long to find a solution because your past experience will lead you to an answer quicker, or often provide some of the background knowledge you need to understand the new task.
Boy tying shoe
When you first learned how to tie your shoes, you likely struggled greatly, and had to keep going back to Mom or Dad for reminders. At some point you were able to reliably do it on your own—if you really concentrated. Days/weeks/months(?) later you got so experienced with tying your shoes you could do it without even thinking about what you were doing.

But then there was likely something else you needed to learn, and the process started again. Life is about continuing to learn. Stop learning, and you stagnate.

Am I suggesting you’ll never struggle getting code to work, and end up spending 10-20-30 hours trying to figure out why? No. Inevitably that will happen on occasion. I believe it will happen less and less as you become more experienced, however.

Hang in there. If you enjoy challenges, problem solving, and coding, I believe you’ll do well. If you want to talk more some time, let me know. I’m always glad to do so.

Did I provide the right response to this student? Would you have responded differently? Leave me a comment below and let me know what you think.

By the way, the student finished the course with an A, continued with the computer science major, and landed a very successful internship this summer. When I contacted the student for permission to include their quote, they also replied with the following:

With my internship experience now I have had to research things to be able to complete a program, but I have found that it doesn't take up as much of my time as I thought it would. I thoroughly enjoy the position I am at now and found that your response was very true in relation to this internship. I am very glad that I reached out to you and received your response in the fall, without it I may have changed majors.
Sometimes you have more of an impact on others than you realize at the time.

Student quotes are included with permission.
Image credits:
Doubting girl: https://publicdomainvectors.org
Boy tying shoe: http://www.clker.com

Wednesday, July 3, 2019

Breaking up discussions: My 2019 redesign of CS 239

Although I’ve taught CS 239 (Social and Professional Issues) many previous semesters, I have not been assigned to teach it for a few semesters. Spring 2019 changed that, so I took the opportunity to revisit the learning environment I provided for the course.

This course is a one credit hour course which meets once per week for 50 minutes. Historically, I led lectures and discussions for a third to half of the weeks. I assigned the remainder of the weeks to groups of three to five students to research and present their assigned topic. Usually the group presentations consisted of lecturing, despite my encouragement to do something different.

This semester, I wanted to focus on getting the students engaged in the material. I decided to not utilize group presentations or lecturing. I focused on discussions, but also felt that keeping students engaged in fifty minutes of class discussion was a bit of a stretch. I wanted them to dig into the material and explore its importance and applicability to them as future computer scientists. With a bit of thought, I developed a plan to break each week’s fifty-minute class into a series of short discussions which focused on the week’s material in different ways.

Prior to class each week, I expected students to read an assigned chapter or topical material and find a recently published article related to it. (I called this assignment “In the News.”) Each 50-minute class session roughly followed this schedule:
  1. Announcements/reminders/questions (5 minutes)
  2. Chapter/topic quiz via clickers (10 minutes)
  3. Review/impression of the chapter/topic (18 minutes total)
    1. Assemble groups of 4 people (6 minutes)
      1. Agree on exactly 4 words (single words and/or a phrase) to describe the chapter
    2. Groups report their words (5 minutes)
    3. Groups choose one word/phrase from the accumulated list (2 minutes)
    4. Groups report back (2 minutes)
    5. Discuss common themes of (selected) words/phrases (3 minutes)
  4. In the News discussion (17 minutes total)
    1. Assemble new four-person groups (7 minutes)
      1. Very briefly discuss each person’s ItN article
      2. Select the most interesting or important article
      3. Prepare a 60 second (non-tech supported) presentation which includes:
        1. Topic and very brief description
        2. Why interesting or important?
        3. How related to the course material?
        4. Which word/phrase from above list does it relate to?
    2. Individual 60-second group presentations (10 minutes)
Thus, my objective each week was not to lecture, or directly discuss the content of the reading, but to have them engage with the material, first individually, then in small groups, and finally the full class. They first read the assigned material outside of class, and critically thought about the content as they selected a related article for the In the News assignment. Then in class, we had a short quiz, which was easy to pass if you’d done the reading, but a bit more challenging, if not. The quiz was intended to encourage coming to class prepared. If more than a few students missed a given question, we’d briefly discuss it before moving on to the next one.

After the quiz, the class split up into four-person groups to briefly discuss their understanding of the material, ultimately agreeing on exactly four words (individual words, a phrase of four words, or some other combination) which they felt represented the material. Each group reported their words, and I wrote them on the white board. After all groups had reported, I asked the groups to reconvene again, and select the one word or phrase from the accumulated list they felt best represented the material. We then briefly discussed their observations about what was, and was not, chosen.

I then asked them to form new four-person groups, where each person would very quickly summarize their selected In the News article. The group then had to decide whose article was the most interesting or most important for others to hear about. Someone (usually the student whose article was selected) from each group then reported details about the article in a one-minute presentation to the full class. (See above for the expected details.) Time permitting, we’d then have another brief discussion about their observations of the selected articles.

This format led to good—and sometimes very lively—discussion each week. The students were aware our time was limited, and thus tended to keep the discussion moving forward, rather than dwelling on one particular point. Overall, my perception of the semester was good. Most students appeared to be engaged, and willing to participate, at least in the small group discussions, if not the full class discussions. Many students were also willing to respectfully voice differing opinions, and to listen to other’s thoughts.

Rather than a final exam, the students had to write reflective responses to a few prompts. One of the prompts included (in part) the following request.
Write an essay describing, specifically, how you learned one of the items in the Top N list we created in class during our final exam time. Be specific about the context of learning: the place, the time, the people, and the process.
The class of 33 students submitted a variety of responses, some of them average. However, many responses stood out to me, and helped validate that the course had met my objective of getting students engaged with the material. I provide examples of these responses here, with the author’s permission.

Student 1:
“I have found that everyone DOES have their own ethical standards; however, it is important to adhere to the ethical standards of the field and company as well. I learned this pretty early on while going through chapter 9 about the ethics and responsibilities of professionals.; however, the ITN articles I went through really solidified the meaning for me.”
Student 2:
“In most of our discussions, if someone offered a dissenting opinion, it was often presented as an alternative way of thinking, rather than as a retort or any sort of rude negation of the presented thought. It was nice to see that a group of random students with different views were able to have respectful discourse about a variety of topics, many of which students had opposing views on.”
“This was a good opportunity to see in a real environment how even those with inherently opposing views could come to a solid and satisfactory conclusion from a “debate”, while maintaining a high level of respect for one another through the entire process. It was fitting that in a class about the professional world, we put into practice the item from the list in real life, rather than just learning about it from the text or through assignments.”
Student 3:
“This situation of disagreeing with someone’s opinion most commonly occurred on the two diversity days of class. Although the situation for me was frustrating because I felt like I couldn’t respond how I usually would outside of a classroom environment, I do think that these days were the more productive days of class because they seemed to generate the most class discussions due to the differing opinions. It was useful to be in this situation in a more professional environment because usually I am in an unprofessional environment.”
“In a professional environment, both parties are held to professional standards, whereas, in an unprofessional environment one person can be respectful, but the other person may not because of the lack of a professional environment. … The combination of these professional experiences in class and unprofessional experiences out of class helped show the differences of the same situation when people are held to professional standards or when they are not. Those differences helped cement the idea that you can have a professional conversation with two differing opinions as long as you adhere to the standards of a professional environment by being respectful.”
Student 4:
“The most prominent thing I learned was that everyone has their own ethical standards. The one moment that comes to mind that taught me this the most was early in the semester in the discussion of privacy. All four of us in the group had different opinions on what constitutes a breach of privacy. As I thought more about it later, I realized that none of us were necessarily wrong, but we just had different standards to one another. I also realized some time later that this is another argument for diversity as well, because it can help make a product that the most users will be comfortable with.”
Student 5:
“I thought everyone knew. That being said, I was proven wrong multiple times by my classmates who didn’t seem to really “get” certain concepts, like the importance of diversity or what is actually ethically sound. I sometimes found myself frustrated and wondering if I should even state my perspective because they weren’t going to “get” my point. It wasn’t until I decided that my perspective deserves to be heard just as much as the other guys that I would participate in class discussion. When I did, I remember commenting on why I didn’t agree with someone, and after I spoke someone else commented that they felt similarly to me. This gave me more confidence in my opinions, not because I knew I shared them with another classmate, but because the conversation kept going. We continued to share ideas. We didn’t stop talking just because we didn’t agree. I am often scared in conversations that if I voice my opinion either I or the person I am speaking to will let their emotions get the better of them and the conversation ends at that. With mutual respect and an open mind, even those who don’t always agree can work productively together.”
I am anxious to teach this course again using the same pedagogy to see if I get the same results. It could simply be that I had an unusual bunch of students this semester that were willing to discuss and listen to each other, and that another group of students may not do as well. I’m hoping that is not the case, as I really liked how the class worked out this time.
What are your thoughts and experiences? Please share them below in the comments.

(Edited on 07/09/2019 to add student 5's quote.)

Sunday, May 19, 2019

The empathy I gained while traveling

Picture of train ticket and a towel with "Don't panic" written on it.
The towel was a gift from a student. I take it on all my trips now.
Do you remember what it was like to first learn the body of knowledge which ultimately became your profession? So much of that initial learning is totally second-nature to us now, and we don’t even think about the fact that there was a time when we didn’t know it. We may have even forgotten how much we struggled to learn what seems trivial to us now. I suggest we need to have some empathy for our students' struggles.

Stay with me, while I relate a personal story to you. I’ll come back to empathy in a bit.

My wife and I have traveled to England, Scotland, and Ireland a few times, and thoroughly enjoyed each for many different reasons. Aside from the normal logistical challenges that arise, we found the trips and conversing with the locals rather easy. Obviously, the primary language spoken in England is English (although some of the words do have different meanings), but even in Scotland and Ireland, it is easier to converse in English than you might think.

Bayeux, France - Canal that runs through town
Bayeux, France
Last summer we ventured off of the islands onto the continent for our first time, traveling to parts of France and Germany for two weeks. Neither my wife or I speak French or German. We were assured by friends that—at least in the larger cities—this would not be a problem for us, and mostly that was true.
Bayeux, France - View of street from our apartment
View from our apartment in Bayeux, France

We started our visit to France in Bayeux, an old small town in Normandy on the northwestern coast. It is largely a tourist town, with a major attraction being visits to the various D-day and Normandy landing venues in the surrounding area. We stayed at a great Airbnb apartment in a multi-centuries-old building in the center of town. Being a tourist town, we had very few issues communicating with others. We enjoyed our time there and would have liked to have stayed a couple more days, but alas we had other reservations in Paris.

Our apartment in Paris, France
We boarded a train bound for Paris, where we had arranged to stay in another Airbnb apartment. This one was in Northeast Paris, far out into the residential suburbs. This was definitely not an area which catered to tourists, but it was wonderful to see this part of Paris as well. The apartment was great (complete with a washing machine, but no dryer), and was conveniently located just a few blocks from a Metro commuter train stop, which allowed us to get most anywhere we wanted to go. It provided a very cost-effective and pleasant way for us to stay in Paris.

By the time we arrived at the apartment the first evening, it was time for dinner. We also planned to eat our breakfasts in the apartment each morning and make our lunches to take with us each day. With a bit of research via information provided in the apartment by the owners, we figured out that there was a community square a few blocks from the apartment which had a few restaurants, but more importantly, a grocery store. Off we headed on, what seemed to us at the time, a simple mission—get dinner and buy groceries for the week.

Paris, France - Eiffel Tower
Paris, France - Eiffel Tower
Paris, France - Notre Dame Cathedral
Paris, France - Notre Dame Cathedral
Now remember, we don’t speak French, and we’re in a residential area of Paris, where it is unusual to have lots of tourists. We hadn’t realized that yet, however. Since arriving in Paris earlier that day, we’d spent the afternoon in the center of Paris, with all the other tourists, and store clerks who spoke English well enough to communicate with us. After walking a few minutes, we arrived at the square, and located a viable take-out restaurant for dinner. We entered and proceeded to try to figure out what we wanted to eat. All of the signage was in French, and the workers didn’t speak English. Did I mention that we don’t speak French? Fortunately, there were pictures, and we eventually got something bought and took it out to sit in the square to eat. We both enjoyed what we had for dinner, but I’m still not sure what it was I ate that night. We were starting to realize we weren’t in Kansas anymore!

Next task: buy groceries. We entered the store and it looked encouragingly familiar; aisles of packaged food on shelves, and lots of fresh, unpackaged food. But again, no English signage, and of course the package labels are all in French. And as a reminder (wait for it…), we don’t speak French. Long story short, what should have been a 10- to 15-minute jaunt into the store to pick up a few breakfast and lunch supplies, along with other miscellaneous items turned into nearly an hour excursion. Google translate quickly became our friend! We successfully bought everything we needed, but it took us way longer than we expected it to. By the end of the week, I was recognizing a lot of French words and understanding what they meant. I was somewhat surprised how often I could make a reasonably correct guess about a French word because of an English word being (somewhat) similar.

I felt a bit isolated after my experience that evening. I realized that if I didn’t know what something meant, I was going to have to ask questions. But if I didn’t know how to, or what questions to ask, how could I do that? I did find that the local residents were very willing to help me understand, as long as I was trying to understand their language and use it when I could. Don’t get me wrong, I thoroughly enjoyed my time in France (and Germany), but this was my first time traveling when communication had been a challenge for me. I was experiencing something new and unfamiliar, and had to work through it.

Paris, France - Painting of "hieroglyphics" on the wall in a Metro commuter tunnel
Paris, France - Painting of "hieroglyphics" on the wall in a Metro commuter train tunnel
As I reflect on the experience I had that evening, I wonder if it is similar to what our students experience at the start of our introductory courses. They are being immersed in a topic they know little or nothing about. They have little context to which they can attached their new knowledge. We often use new terminology, or use their familiar words in different ways. They may know they have questions, but don’t believe they know enough to ask us questions. As someone who teaches an introductory computer programming course, I’m asking students to learn new concepts and to learn a new (programming) language, complete with its own (unusual) punctuation.

I came back last summer with a renewed appreciation for (some of) what it means to be a new student. We teachers need to remember that we haven’t always known everything we now know. There was a time we struggled to learn it, and that is the same struggle our students are having now. If we are to be effective guides in the learning process of others, we need to remember those first days when we were learning the material which we are now helping others master.

We need to have empathy and remember what it’s like to be in a foreign land and not know the language. How can we reach out and help these intrepid travelers we call students? Share your ideas below.

Saturday, May 18, 2019

Popular achievements in CS 222: Spring 2019 edition

As discussed in an earlier post, one of the assessible items in CS 222 (Advanced Programming) is something we call achievements. Achievements are designed to encourage student’s independent exploration of relevant course topics they choose from a provided list. Each student must complete a certain quantity of achievements if they expect to receive an A for the course, and reduced quantities for lower grades.

Originally, I set the threshold for an A at four achievements. To be more learner-centered, starting with the fall 2018 semester, the students collectively negotiated the threshold with me. Depending on the semester, it has been four or five achievements for the A level.

The list of available achievements has remained the same and are detailed in my previous post, with the addition of one new option this last year.
Learning to Learn: For discovering better ways to study. Visit the BSU Learning Center and talk with someone there about general study habits. Write an essay relating what you find to apply to CS course work.
The following table presents statistics from the most recent six semesters I’ve taught the course, along with a couple of summary columns. I find it interesting to look through the table to see what is popular (and what is not). For example, considering all semesters, the Diversity Seeker and Reflective Practitioner achievements have clearly been the most popular. Coming in next are the Crystallizer and Studious achievements. The order is slightly different if we just look at the last year, but it is still the same four achievements. Looking at individual semesters, the Judge, Rereader, and Seeker achievements have also been very popular. 
The recently-added Learning to Learn achievement has proven to be quite popular, and I suspect it will creep into the most popular list next year.

Five achievements (Campus Leader, Didact, Filmmaker, Jammer, and Open Source Contributor) have Continued to be the least popular. We have chosen to leave these as options for students with interest or skill in one of those areas. Note that the Third-part Librarian achievement was removed from the available options after the summer 2016 semester.

Lastly, I’ve found the number of achievements students choose to complete interesting. While a great many students do complete the required quantity, the majority do not. As shown in the table, the average for all semesters is just over three completed achievements per student. Due to a one-submission-per-week limitation, and their lack of planning, some students simply run out of time to get all of them submitted. The slight increase for the spring 2019 semester is likely due to the threshold for an A being at five, as compared to four for previous semesters.

I believe the achievement system continues to meet its intended purpose within the course. I do not observe any substantial changes in popularity compared to last year’s report. I will find it interesting to see if the popularity of individual achievements changes during the next year.