Posts tagged ‘undergraduate education’

Open Question around Mathematics in Undergraduate Computer Science

I’m always happy to see a new computing education blog, and I’m particularly excited by posts that identify open (research, and otherwise) questions.

At SIGCSE 2019 this past February, we organized a birds of a feather session (a one-hour discussion group) on modernizing mathematics in computer science. We expected a modest number of attendees but were surprised and delighted to host a completely filled room of discrete mathematics, algorithms, and theory of computation educators—60 attendees in total—interested in evolving how we, as a discipline, situate mathematical foundations in our curriculum!

What was even more surprising to us was how the discussion evolved over the hour. Our original intention was to focus on how we might re-shape the foundational portions of the computer curriculum in light of how computing has evolved over the last decade:

The undergraduate computer science curriculum is ever-changing but has seen particular turmoil recently. Topics such as machine learning, data science, and concurrency and parallelism have grown in importance over the last few years. As the content of our curriculum changes, so too does the mathematical foundations on which it rests. Do our current theoretical courses adequately support these foundations or must we consider new pedagogy that is more relevant to our students’ needs? In this BoF, we will discuss what a modern mathematics curriculum for computer scientists should cover and how we should go about accomplishing this in our classrooms. (

At this point, we shifted our focus from trying to answer the original “concept” question to identifying the myriad of problems that educators wrestled with along these three dimensions. We outline the problems that people raised below:


May 13, 2019 at 7:00 am Leave a comment

How Machine Learning Impacts the Undergraduate Computing Curriculum

I’ve been looking forward to seeing this article in print since Ben Shapiro first talked about this, months and months ago. Ben, Rebecca Fiebrink, and Peter Norvig raise the (reasonable) argument that machine learning is now a central activity in computer science, and should be a core topic in undergraduate computing curriculum. What does that mean for what we teach and how we teach it? It’s something that we ought to be talking about.

The growing importance of machine learning creates challenging questions for computing education…

Changes to the Introductory Sequence…These same two aims can also describe introductory courses for an ML-as-core world. We do not envision that ML methods would replace symbolic programming in such courses, but they would provide alternative means for defining and debugging the behaviors of functions within students’ programs. Students will learn early on about two kinds of notional machine—that of the classical logical computer and that of the statistical model. They will learn methods for authoring, testing, and debugging programs for each kind of notional machine, and learn to combine both models within software systems.

We imagine that future introductory courses will include ML through the use of beginner-friendly program editors, libraries, and assignments that encourage students to define some functions using ML, and then to integrate those functions within programs that are authored using more traditional methods. For instance, students might take a game they created in a prior assignment using classical programming, and then use ML techniques to create a gestural interface (for example, using accelerometers from a smartphone, pose information from a webcam, or audio from a microphone) for moving the player’s character up, down, left, and right within that game. Such assignments would engage students in creating or curating training examples, measuring how well their trained models perform, and debugging models by adjusting training data or choices about learning algorithms and features.


Source: How Machine Learning Impacts the Undergraduate Computing Curriculum

November 16, 2018 at 7:00 am 4 comments

When do we know that a programming course is not working for non-CS majors?

There’s a good discussion going on in Facebook that I wanted to make more public and raise as a question here.  The crush of undergraduates in CS today is making it difficult to offer tailored introductory CS courses to different majors.  The problem is particularly acute when designing instruction for future CS teachers.  If you put the CS teachers in the same course as the CS majors, it’s cheaper and easier — you just teach one big course, rather than multiple smaller courses. But is it as effective?

Some of my colleagues suggest that we can design undergraduate introductory computing courses that are effective for both non-CS and CS majors.  Here’s my question: How do you know when it’s not working?  At what point would you admit that the one course option isn’t working? It’s an interesting empirical question.

Here are some possible measures:

  • Learning is a tricky measure.  For any discipline, the majors in that discipline are more motivated to learn more than the outside-the-discipline majors. You can’t expect the non-CS majors to learn more than the CS majors.  Then again, the non-CS majors probably come in knowing less.  If you do pre- and post-tests on CS knowledge, do non-CS majors have as large of a gain as the CS majors?  I don’t know, but in any case, it’s not a great measure for deciding if a class is succeeding for the non-CS majors.
  • Taking more CS courses may be an effective measure, but only if you have more than one course that’s useful to non-CS majors.  If the rest of the classes are about software development, then non-CS majors will probably not want to go on, even if the intro course was effective and well-designed.
  • Retention is a reasonable measure.  If more of the non-CS majors are dropping out from the course than the CS majors, you may not be meeting their needs.
  • My favorite measure is relevance I argued in my blog post on Monday that programming is a practice that is relevant to many communities. Do the non-CS majors see the relevance of computing for them and their community after the introductory course?  If not, I don’t think it’s meeting their needs.
  • Another tricky measure is use. Should non-CS majors be able (after their first course) to build some program that they find useful?  Certainly, if you achieve that goal, you have also achieved relevance.  How do you judge useful?  CS faculty may not be good judges of what a non-CS major would find useful, and CS faculty are most likely going to assess in terms of code quality (e.g., modularization, appropriate variable and function/module names, commenting, code style, etc.), which I consider pretty unimportant for as a measure for the non-CS students’ experience in the first course.

What do you think?  How would you know if your intro course was meeting non-CS students’ needs?

November 9, 2018 at 7:00 am 13 comments

Study says multiple factors work together to drive women away from STEM

I wrote recently in a blog post that we don’t know enough why women aren’t going into computing, and I wrote in another blog post that CRA is finding that we lose women over the years of an undergraduate degree in CS.  Here’s an interesting study offering explanations for why we are not getting and keeping women:

The study analyzed a large, private university on the East Coast, using data from 2009-16, broken down semester-by-semester to track students’ changes in grades and majors in as close to real time as possible. While other studies have suggested that women came out of high school less prepared, or that increasing female STEM faculty could help provide women mentors, the Georgetown study didn’t support those findings.

“Women faculty don’t seem to attract more women into a field, and that was sort of sad news for us,” Kugler said. “We were hoping we could make more of a difference.”

One of the reasons women might feel undue pressure in STEM fields might actually be because of how recruiting and mentoring is framed. Many times, those efforts actually end up reinforcing the idea that STEM is for men.“Society keeps telling us that STEM fields are masculine fields, that we need to increase the participation of women in STEM fields, but that kind of sends a signal that it’s not a field for women, and it kind of works against keeping women in these fields,” Kugler said.

And while many STEM majors are male-dominated, the framing of recruitment and mentorship efforts can sometimes paint inaccurate pictures for STEM fields that aren’t male-dominated, and contribute to an inaccurate picture for STEM as a whole, the paper says:

While men may not have a natural ability advantage in STEM fields, the numerous government and other policy initiatives designed to get women interested in STEM fields may have the unintended effect of signaling to women an inherent lack of fit.

While computer science, biophysics and physics tend to be male-dominated, Kugler said, neurobiology, environmental biology and biology of global health tend to be female-dominated.

Source: Study says multiple factors work together to drive women away from STEM

October 13, 2017 at 7:00 am 1 comment

The challenge of retaining women in computing: The 2016 Taulbee Survey: Supplementary Report on Course-level Enrollment

The Computing Research Association (CRA) has just released a supplement to their 2016 Taulbee Survey report.  They now are collecting individual course data, which gives them more fine-grained numbers about who is entering the major, who is retained until mid-level, and who makes it to the upper-level.  Previously, they mostly just had enrollment and graduation data.  These new data give them new insights.  For example, we are getting more women and URM in computing, but we are not retaining them all.

Except in the introductory course for non-majors, the median percentage of women in courses at each level was either fairly constant or increasing [from previous years]. The most notable increase was in the mid-level course, where the median percentage of women went from 17.4 in 2015 to 20.0 in 2016. The median percentage of women in the upper-level course also increased, from 14.1 to 15.9 percent. We see a slight drop-off from the median percentage of women in the introductory course for majors in 2015 (21.0 percent) to the median percentage of women in the mid-level course in 2016 (20.0 percent), and a somewhat larger drop-off between the median percentage of women in the mid-level course in 2015 (17.4 percent) and the median percentage of women in the upper-level course in 2016 (15.9 percent).  Because the median percentage at each level is for a single representative course, not for all students at that level, some of the differences between levels may be attributable to the specific courses on which the institutions chose to report. Overall, however, this trend of decreasing representation of women at higher course levels is congruent with other data.

Source: The 2016 Taulbee Survey: Supplementary Report on Course-level Enrollment – CRA

September 18, 2017 at 7:00 am 4 comments

A Threads-using CS major joins GT Faculty: Welcome to Sauvik Das

Threads were a curriculum innovation from Georgia Tech around 2005, that we have studied in some of our research.  Today, we welcome one of the undergraduates who took Threads as faculty into our School of Interactive Computing.  (He officially starts in January, but he’s hanging out at the faculty retreat and meetings with us.) Welcome to Sauvik Das, and I’m so pleased that he wrote this reflective essay about his journey to re-join us.

Threads are specializations in different application areas of Computer Science: for example, embedded systems (e.g., computing embedded in physical systems), media (e.g., computer graphics, games), machine intelligence, etc. The thread that truly made me think was “people”: “where computing meets its users”. Everything I wanted to do with computing, I reflected, was not actually about computing. It was about using computing to create new, better and engaging experiences for the people that used the systems I made.

Source: Beginnings: Old and New – Sauvik Das – Medium

August 21, 2017 at 7:00 am Leave a comment

Why Professors Resist Inclusive Teaching by Annie Murphy Paul: Especially important in CS

Annie Murphy Paul is talking about inclusive teaching here, but she could just as well be talking about active learning.  The stages are similar (recall the responses to my proposal to build active learning methods into hiring, promotion, and tenure packages). These are particularly critical for computing where we have so little diversity and CS teachers are typically poor at teaching for diverse audiences.

Stages of Inclusive Teaching Acceptance

Denial: “I treat all my students the same.  I don’t see race/ethnicity/gender/sexual orientation/nationality/disability. They are just people.”

Anger: “This is all just social science nonsense! Why won’t everyone just get over this PC stuff? When I went to grad school, we never worried about diversity.”

Bargaining: “If I make one change in my syllabus, will you leave me alone?”

Depression: “Maybe I’m not cut out to teach undergraduates. They’re so different now. Maybe I just don’t understand.”

Overwhelmed: “There is so much I didn’t know about teaching, learning, and diversity. How can I possibly accommodate for every kind of student?”

Acceptance: “I realize that who my students are and who I am influences how we interact with STEM. I can make changes that will help students learn better and make them want to be part of our community.”

Source: Why Professors Resist Inclusive Teaching « Annie Murphy Paul


July 6, 2016 at 7:27 am Leave a comment

Older Posts

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 6,224 other followers


Recent Posts

Blog Stats

  • 1,647,832 hits
May 2019
« Apr    

CS Teaching Tips