acm-header
Sign In

Communications of the ACM

BLOG@CACM

Rethinking the CS Curriculum


View as: Print Mobile App Share:

There recently had been discussion within the logic community of reintroducing logic studies into the contemporary Computer Science undergraduate curriculum.  The idea is being championed by numerous well-known logicians, including Moshe Vardi, Martin Davis, and Arnon Avron. There was a workshop regarding this last year, and another one is planned for this year (https://www.cs.technion.ac.il/~janos/LogTeach-22/). I have proposed that this might best be done within the context of a course on Artificial Intelligence, as this would enable a presentation of logic theory together with various applications.

Nonetheless, I have misgivings about this idea and am not sure it can succeed. I'm currently attempting to do this now with an AI course that has been dual-listed as grad plus undergrad. I'm finding that the course is well-received by the grad students, but the undergrads are not so positive.

I believe that the reason for this is that most of our CS undergrads don't like mathematics and so-called "theory" courses, and would prefer to not take them. This observation was echoed recently in an interview with Leslie Lamport (Quanta Magazine, May 17, 2022) where he argues that, while good programming really requires mathematical precision, he also acknowledges that "basically, programmers and many (if not most) computer scientists are terrified by math."

I have found this to be the case as well, and have noticed that there is a growing trend to dumb down the CS curriculum by removing mathematical topics. As one example, I also teach our database course. We have been using the book by Garcia-Molina, Ullman, and Widom, "Database Systems: The Complete Book, Second Edition" (Pearson, 2009). The most difficult part of this course is the section on normal forms (Boyce-Codd, Third Normal Form, etc.)  which relies on the theory of functional dependencies.  The treatment of this in the book is precise and clear, but the students find it challenging. Some students simply neglect to do the related homework assignments and don't attempt to answer the related questions on exams.

Also, I have noticed that other faculty simply skip this topic. And, recently, I was asked to review a new database text book and saw that this topic was omitted; the authors made a vague reference to normal forms, but didn't discuss them.

Another issue is that most CS students are primarily only interested in acquiring the skills that will enable them to find jobs as software developers. Few have any interest in pursuing graduate studies and research. For this reason, they see no purpose in studying theoretical topics.

Because of this, I'm questioning whether logic really can be reintroduced into the current undergrad CS curriculum.

In this respect, however, I think a larger issue is that there are problems with the ABET-approved CS curriculum. Since its inception, the undergrad curriculum has been designed to serve two purposes: (1) to train students for jobs in industry, and (2) to prepare students for grad studies and research. But in attempting to serve both purposes, it doesn't do either as well as it could.

My suggestion is that we consider creating two different undergrad degrees, one entitled something like "CS-Applications," and the other entitled something like "CS-Foundations." The former would be less mathematical and focus more on software development, whereas the latter would entail additional mathematics and focus more on theory.

I would then propose reintroducing logic in the latter, and again, as part of an AI course. Mathematical Logic really is Mathematics (despite the opinions of many mathematicians) and it is best taught to students that have an interest and aptitude for this subject.

A problem with this, of course, is that the enrollments in the Foundations track would be small and possibly not enough to justify its existence. Offering courses that attract only a few students is costly. At the same time, however, this situation is not different from disciplines like Physics, which typically don't have many majors.

Also, the very existence of such a degree program could encourage more students to pursue grad studies.  As noted recently by Moshe Vardi in "Where Have All the Domestic Graduate Students Gone?" (Communications, September 2020, Vol. 63 No. 9, Page 5), very few U.S. CS majors continue past the bachelor's degree. One possible reason for this might be that a bachelor's degree is enough to obtain a job with a good salary, and the students are eager to start seeing paychecks. The fact is, however, that people with graduate degrees can command higher salaries, and a career in the academic professions is still attractive, if not for the salary, at least for numerous other benefits.   

Moreover, the U.S. needs talented researchers to continue advancing its information technology. Thus, the cost of implementing a foundations-based undergraduate degree program could be justified by the long-term social and economic benefits. 

For these various reasons, I think that this is an idea that deserves to be explored.

 

Daniel G. Schwartz is a professor in the Department of Computer Science and Florida State University.

 

No entries found

Sign In for Full Access
» Forgot Password? » Create an ACM Web Account