Salt Lake City, Utah
June 23, 2018
June 23, 2018
July 27, 2018
Computing and Information Technology
We share our experience and insights gained from teaching foundations of computer science courses to diverse groups of undergraduate (and at times, also graduate) students coming from a broad variety of educational and social backgrounds. Among all required courses of contemporary Computer Science (CS) curricula across the US and Canadian universities, at most institutions (except for the very top research universities), theoretical computer science courses tend to be among the least popular. The reasons behind these prevalent attitudes among CS college students (esp. the undergraduates) tend to fall into two categories: i) theoretical CS courses are "all math" requiring proofs and rigorous formal reasoning that many CS and other engineering students aren't (yet) comfortable with; and ii) "why do we need all this theory anyway" if our career goal is to become software engineers, develop the next cool mobile app, and similar. Yet, most research universities, as well as quite a few non-research colleges, require at least 1-2 semesters of core undergraduate coursework in theoretical or foundational CS.
In this paper, we summarize some interesting lessons learned from teaching theoretical CS to mostly undergraduate juniors (as well as a few non-traditional students) at two prominent public research universities in the US Pacific Northwest. While our own academic background is from a top research PhD-granting Computer Science program in the US, we have spent several years in high-tech industry prior to recently returning to the academic world as a Computer Science faculty. Therefore, when teaching various CS courses, we try to relate concepts and techniques covered to the "real-world" applications and problems, and in particular the recent and current technology challenges and R&D done in industry. We've applied this general philosophy to virtually all courses we have taught, including the very theoretical ones. The goal is to get CS and other Engineering students intrigued by how, for example, finite automata or context-free grammars are used in compilers and interpreters (parsing, lexical analysis), or the formal specification of programming languages -- as well as to the more recently emerged technologies, such as computational/applied Natural Language Processing (NLP). Without sacrificing rigor, we try to present highly mathematical content in a manner that relates theoretical models and proofs of their properties to practical challenges in computer science and engineering.
Some additional challenges we have encountered while teaching Theory of Computing courses stem from very diverse educational backgrounds of the students we have encountered: from graduate students overcoming true or perceived deficiencies in CS foundations, to undergraduates transferring from local community colleges, many of whom have not been asked to thoroughly understand a mathematical proof of any kind, let alone write one out on their own. This mix of students provides unique challenges, but also opportunities -- for example, to revisit teaching methodologies for the "mathematical side of computer science" curricula, how to best relate theory to practice (esp. in terms of technologies and applications these diverse students can most readily relate to), and how to best get students of broadly varying backgrounds actively engage in class discussions.
Tosic, P. T., & Beeston, J. (2018, June), Teaching Theoretical Computer Science and Mathematical Techniques to Diverse Undergraduate Student Populations Paper presented at 2018 ASEE Annual Conference & Exposition , Salt Lake City, Utah. 10.18260/1-2--31064
ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2018 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015