A CS curriculum at a liberal arts institution must achieve two distinct but overlapping purposes: develop knowledge, skills, and professional competencies in preparation for further study or a career in computing and nurture a range of thinking skills applicable across many contexts.
A liberal arts history major may not become a historian, just as a CS major may not become a computer scientist, but they both build a foundation for their future work and lives
Liberal arts students often have significant educational goals beyond the completion of a major. These goals are supported by the construction of “flexible pathways,” a distinguishing characteristic of liberal arts CS curricula
Liberal arts programs not only make space for student experiences outside of computer science, but value and prioritize those experiences.
Where previous ACM-IEEE curriculum guidelines distinguished only between core and elective content, the CS2013 Body of Knowledge is divided into Core-Tier 1 and Core-Tier 2 topics, requiring coverage of only 80% of Core-Tier 2. This structure recognized that some computing curricula will include more or different required content than others
The most common approach to spiral education works through lectures, covering the same topics at different depths in multiple courses. This approach is used at Creighton in teaching essential concepts in computability.
[…] We first introduce Turing machines as a simple model of computation, and describe how Turing used that model to prove that there are limitations on computation (which apply to modern computers as well). The Halting Problem is then described in more familiar terms, as the attempt to define a program that determines whether another program halts on a given input. That is, HaltsOn (program, input) would return false if running program on input produces an infinite loop (otherwise true). However, if the HaltsOn program could be written, then the Opposite program below yields a logical contradiction (when called with its own source code as input, Opposite loops forever precisely when the HaltsOn function says it does not).
[