How to teach logic for CS-undergraduate? Step-by-step!
ABSTRACT. Let us formulate at the beginning who are these CS-undergraduates?
Now, to be a pretty good programmer and work in the industry, you don't even need a higher education. Young people can complete their studies in short one-year-courses provided by both large companies and companies specialising in professional education in the field of programming. Moreover, there is a lot of special training for adults (retraining from other professions). In Yandex (both Russian and international parts) we have now a service called Practicum (https://practicum.com/) we have now 6-9 months online trainings in programming and data analysis, which give new IT jobs for thousands of people. This means that the Computer Science specialisation at the university should teach something deeper than programming for the industry. Therefore, we will talk about "a Computer Science specialist with a broad outlook, fundamental training, a strong mathematical apparatus, who knows all the useful mathematical theories applicable to practice".
In general, we want to give to those students knowledge of logic, which:
(1) Will give all the theory useful for real applications in Computer Science/Programming/Data analysis.
(2) Will give a general understanding of logic, set theory, a general picture of the world (existence of unsolvable problems, for example).
(3) Slightly open the "doors" to the sections of logic that are required for theoretical Computer Science.
Logic is very complicated and unclear for most students, especially if they get all the knowledge from logic in a short period of time (they don't have enough time to realise and recognise it). At the same time, at different stages of study, both for general understanding and for practice, different sections of logic are required. These sections could even not be connected to each other.
Therefore, the proposal is to divide the entire logic course into several (even 4-5) parts and give out one part per semester (it can be 5-7 lectures/ seminars).
Variants of parts: (1) Foundations of Mathematics; (2) Foundations of Programming; (3) Type Theory and Machine Proofs…
Thinking about teaching process we suppose that
(1) It is necessary to accompany theory with practice so that students could touch it physically (write code, count, apply to specific models).
(2) It is not necessary to overload the theory, but it is important to show some logic culture - paradoxes, interesting tasks, analogies, etc.
(3) Let every topic be settled down, check understanding of previous parts!
ABSTRACT. We briefly motivate and describe our new book, "Mathematical Logic through Python", which is forthcoming (2022) in Cambridge University Press.
ABSTRACT. The purpose of the workshop is to discuss whether and how
we should teach logic to computer science students.
However, the perspectives of teaching logic to
``pure math'' students are also not brilliant.
In both cases mandatory courses vanish from the curriculum,
and non-mandatory courses attract not so many students.
So I change the focus a little bit:
what audience should we teach logic?
My answer is that we should mix interested math and CS students,
and teach those who need logic together.
Another question is when to teach logic.
I will argue that different parts of logic must be taught in different
parts of the curriculum.
12:30-14:00Lunch Break
Lunches will be held in Taub hall and in The Grand Water Research Institute.
Undergraduate Logic Teaching in Computing: Why, What, How?
ABSTRACT. Logic lies at the heart of computing, but its presence is somewhat
dimming. This is particularly striking at the undergraduate level, where
far too little logic training is done. This paper examines this regrettable
state of affairs, considering what is actually taught, what should be taught,
and how logic must be taught at computing undergraduates.
ABSTRACT. Logic is an inevitable part of any undergraduate computer science degree programme. However, today's computer science student typically finds this to be at best a necessary evil with which they struggle to engage. Twenty years ago, we started to address this issue seriously in our university, and we have instituted a number of innovations throughout the years which have had a positive effect on engagement and, thus, attainment.
ABSTRACT. At the undergraduate level, there are elementary approaches to logic that are neither philosophically demanding nor inapplicable in a computational context. I illustrate this with a sketch of logical application about computation and its appreciation in hopefully practical ways. It depends on the utility of distinguishing formal and mathematical entities from those empirical ones perceived in nature and society.
Logic for Students of Modern Artificial Intelligence
ABSTRACT. “Modern Artificial Intelligence” is a branch of Computer Science which triggered a hype in CS research and education and which is associated to key words
as big data and deep learning. It is worth noting that “traditional Artificial Intelligence” is - with the exception of neural networks - conceptionally rooted in Logic: Expert Systems, Logic Programming, SAT solving, etc. are topics which could not be taught without Logic as fundamental discipline. One has, however, to admit,
that the foundational discipline for modern AI is Statistics, rather than Logic.
We will discuss three challenges for modern AI, which give evidence that Logic
remains an important topic for Students in this area.
1. Notion of computability. Currently, there is no theory available which would
allow to reason about the scope and limits of the computational power of
modern AI. Theorems like those of Church and Turing are fundamental for
the understanding of deterministic computation, including the important
area of computational complexity. Apparently, the statistical foundation is
not suitable to provide such a theory for modern AI, and for any progress in
this direction, Logic should be crucial.
2. Hybrid AI. Despite all the success of modern AI, as in image recognition,
translation, medical applications, and other areas, a substantial extension of
the field of applications will require a combination of it with classical AI, i.e.,
the possibility to recurse to logical reasoning.
3. Causality. The problem of causality—or better: the lack of tools for the
analysis of causality—is widely discussed in modern AI. Although even Logic
still struggles with a compelling theory of causality, it is evident that any
future solution will involve logical components, even if it would only be for
crosschecking.
Thus, a CS curriculum for AI students which neglects Logic, bears the risk to
disconnect these students from developments essential for “next generation AI”.
ABSTRACT. The traditional semantics for relational logic (sometimes called Tarskian semantics) is based on the notion of interpretations of constants in terms of objects external to the logic. Herbrand semantics is an alternative that is based on truth assignments for ground sentences without reference to external objects. Herbrand semantics is simpler and more intuitive than Tarskian semantics; and, consequently, it is easier to teach and learn. Moreover, it is stronger than Tarskian semantics. For example, while it is not possible to finitely axiomatize integer arithmetic with Tarskian semantics, this can be done easily with Herbrand semantics. The downside is a loss of some common logical properties, such as compactness and inferential completeness. However, there is no loss of inferential power - anything that can be deduced according to Tarskian semantics can also be deduced according to Herbrand semantics. Based on these results, we argue that there is value in using Herbrand semantics for relational logic in place of Tarskian semantics. It alleviates many of the current problems with relational logic and ultimately may foster a wider use of relational logic in human reasoning and computer applications.
ABSTRACT. In this position paper we (1) provide context on how logic is (typically) anchored in CS curricula of German universities, (2) describe an introductory level logic course for CS students taught at TU Dortmund and Ruhr University Bochum designed to appeal to a broad spectrum of CS students, (3) report on experiences in establishing this course as a compulsory module in the CS Bachelor curriculum at Ruhr University Bochum. Additionally we (4) sketch a vision for leveraging modern technology in logic instruction.