People of ACM - Mark Allen Weiss

September 6, 2022

What was the initial impetus for you to author your series of Data Structures textbooks? What led you to continue authoring these books for nearly three decades now?

When teaching data structures, I found that there were always some details that were confusing to students so I started out to write a book that would clarify some of those. And since the text I was using at the time had chapters I wasn’t covering, I figured I could eliminate some topics to keep the page count similar. One example is binary search. We all know that binary search is O(log N) and thus much faster than sequential search. But in books of the day, written in Pascal, if you wrote a function to do a binary search that took an array and an item to search for as parameters, the natural way of writing the function made a full copy of the array that was passed as an argument. Making that copy ruins the O(log N) behavior. To avoid the copy, you had to use “var” for the array which made no sense if you think about it, since the array wasn’t changing. So, little details like that, and it seemed there was always something. The first book was in Pascal. After it came out my editor at the time said we should do a C version. I told him that the data structures course was really language independent, but he convinced me. And then more languages and they got more complicated, but I tried to keep it manageable. Back in the day there was a new favorite language every year. People were using the books, so I kept writing new versions, pretty much a book a year. Once languages stabilized, I wrote much less frequently. I think it’s been ten years now since I did a revision.

When you chaired the Advanced Placement (AP) CS Development Committee in the early 2000s, the exam design was changing from C++ to Java and the underlying curriculum was putting greater emphasis on object-oriented design and abstraction principles. What prompted these changes?

My involvement in AP started around 1995. The College Board had already decided in 1994 it was time to move from Pascal to C++. This was a very unpopular decision at the time, as outlined in this article. C++ is a very complicated language and I served on an ad-hoc committee to try to figure out what parts of C++ could be used for the exam, and I then joined the Development Committee in formalizing that and writing the curriculum exam. It turned out to be a shift towards an object-based exam, with some language subsetting and some classes written for AP. With the lead time that goes into developing the AP exam, the first C++ exam was not administered until 1999. That wasn’t a bad call—by 1999 you could barely find anyone still teaching a college-level course in Pascal, or writing Pascal textbooks, and AP must be something you get college credit for. Some might say that AP moved the college curriculum, but I don’t think that is true; as I mentioned in the last question, colleges were already moving. Anyway, while we were designing the C++ exam, Java was starting to become very popular, and the writing was on the wall. I think in 2000 we announced we were moving to Java—much, much less controversial—and another ad-hoc committee figured out what parts of Java to use. Java being what it is, that had to include another shift toward object-oriented programming. Since my time on the committee, the College Board discontinued the AB exam (a CS-2 type course with data structures and algorithms) right at the end of the dot-com CS enrollment decline, and just before the surge started in 2009. Although they since added CS-principles. I wish we could get the AB exam back, too.

Will you tell us a little about the National Science Foundation project you are involved with now to set priorities for CS education research?

In many STEM fields—notably physics, biology, and math—STEM education research is a very active area of study. There is a lot of CS education research going on, but we are a bit behind the other STEM disciplines. Given the importance of CS, it seems we should catch up and also give CS education research more attention as a subfield than it currently has.

The principal investigator (PI)/lead on the project is Adrienne Decker from the University of Buffalo, and I am the co-PI. The idea was to bring leaders in computing education together in a forum to discuss and workshop the ideas of what the research themes in computing education will be (or should be) for the next 15 years, and to suggest concrete pathways for addressing the research challenges identified, in part to help the NSF set some funding priorities. We were able to convince about 40 leading CS education researchers to work with us. Ideally this would have been an in-person meeting, but we have been doing everything via Zoom so far. We are at the point of refining materials on a website and writing a coherent report, which we hope to release by the end of the year.

In your efforts to diversify the computer science student body at Florida International University, what have been some effective approaches in increasing the four- and six-year graduation rates for students from traditionally underrepresented groups?

I think a lot of it comes down to meeting students where they are, understanding their needs, and removing barriers that don’t make sense. Since we are a large department, we are able to offer many sections of classes and accommodate students who work during the day, and also others who work at night by offering multiple sections or online options. Other students benefit greatly from advising and early interventions, and we have also set our student groups loose. They are doing a lot of amazing work helping students find their identity. Many of our students struggle financially. We had an NSF S-STEM grant that awarded scholarships for seniors (rather than the typical four-year scholarship starting at first year). That money really helped them finish, and FIU is part of a group working with the Association of Public and Land Grant Universities (APLU) that is studying and demonstrating the efficacy of these “completion” or “emergency aid” grants, as outlined on APLU’s website.

And there are so many barriers for students, some of which just don’t make sense. Courses tend to be added to the curriculum, and after a while you see a lot of bloat because often nothing gets removed to compensate. I think every department should be looking very closely at their curriculum and their prerequisite structure to see if every requirement and every prerequisite is necessary. Our faculty decided to add a BA in Computer Science that had very similar coursework as the BS in Computer Science, but significantly reduced the math and physics requirements. It turns out that a lot of students were self-selecting out of CS specifically because of the math and physics. Now students can pick the CS pathway that makes the most sense for them. They are getting jobs either way, and the jobs are paying much more than the major they would be choosing as an alternative.

What is a new frontier in undergraduate computer science education that hasn’t received enough attention?

To me the new frontier in computer science education is that the demand for computing majors is starting to eclipse all the others. We haven’t figured out how to satisfy and meet this demand. Limiting admissions isn’t a good long-term solution. As a discipline, we need to be able to scale without sacrificing quality.

Mark Allen Weiss is a Professor and Associate Dean of Undergraduate Education at Florida International University. His research interests include data structures, algorithms, and computer science education. He is most well-known for his sole-authored Data Structures textbooks, which are among the most-widely used in computer science. His books include C++ for Java Programmers, Data Structures and Problem Solving (two programming languages in six editions), Data Structures and Algorithm Analysis (five programming languages in twelve editions), and Efficient C Programming: A Practical Approach.

Beginning in the late 1990s, Weiss was part of the Advanced Placement (AP) CS Development Committee that designed the AP curriculum and wrote the AP exams taken by US high school students. Presently, he is co-leading a project to help the US National Science Foundation set priorities for CS education research. Weiss received the ACM Karl V. Karlstrom Outstanding Educator Award for advancing the art and science of computer science (CS) education through his textbooks, research, and curriculum design which have affected thousands of instructors and students worldwide.