Showing posts with label Advanced Programming. Show all posts
Showing posts with label Advanced Programming. Show all posts

Sunday, December 22, 2019

Popular achievements in CS 222: Fall 2019 edition

I'd planned to write this post each spring, after completing an academic year. However, I'm not scheduled to teach CS 222 next semester, so I decided to report on the last two semesters now. As discussed in my previous 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, I had the students collectively negotiate the threshold with me. Depending on the semester, it has been three to five achievements for the A level.

The list of available achievements has remained the same and is detailed in my original CS 222 achievements post, with the addition of Learning to Learn, introduced for fall 2018, and discussed in my spring 2019 post.

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. These four remain in the same relationship as last spring, although Crystallizer has gained slightly in popularity. Looking at the last year, the top three remain the same, but Studious has dropped down the list, and is replaced by Rereader. Looking at individual semesters, the Fair-minded, Judge, and Learning to Learn achievements have also been very popular. The recently-added Learning to Learn achievement has proven to be quite popular, ranking fifth during the last year.



Five achievements (Campus Leader, Didact, Filmmaker, Jammer, and Open Source Contributor) have Continued to be the least popular. I have chosen to leave these as options for students with interest or skill in one of those areas, but will likely drop (some of) them the next time I teach the course. 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 poor 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 other semesters. However the fall 2019 threshold was four, and resulted in nearly the same level of submissions. The threshold for the Summer 2019 semester was three, with all students meeting it.

I believe the achievement system continues to meet its intended purpose within the course. I do not observe any substantial changes in popularity as reported in my original report and last spring's report. My colleague, Paul Gestwicki, is teaching the course in the spring, and has chosen to make some adjustments to the achievement options, which I believe will be a positive change. You can read about his preparation for CS 222 in his blog post.

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

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.