대학교에서 컴퓨터, 소프트웨어전공 학부생을 대상으로 하는 논리학 강의를 위해 읽었다. 다 읽진 않고 총 19개 챕터 중에서 술어논리(1차 논리)에 해당하는 13번 챕터까지 읽었다. 대학원 시절 수업 조교를 하며 지도교수님이 하시는 수업을 몇 년 간 들었기에 책에서 중요한 부분을 놓치지 않을 수 있었다.
이 책은 스탠포드 교수들이 주 저자기 때문인지 주로 드는 예시가 미국 문화권의 사람들이 익히 알법한, 하지만 Gen Z 한국 대학생들에게는 다소 생소한 사실들로 이루어져있는 편이다. 예를 들어 마크 트웨인이나 메릴 스트립, 해리슨 포드 등에 관한 이야기들 말이다.
그래도 이 책의 가장 좋은 점 중에 하나는 책에서 다루는 술어 논리 문제들을 풀이하고, 검증할 수 있는 소프트웨어를 제공한다는 점이다. 책에서 다루는 술어 논리 문법만 맞다면, 소프트웨어를 통해 여러 가지 논리적 명제를 만들어보고, 논리적 타당성을 검증해볼 수 있다. 이 소프트웨어들을 쓰다 보면 버그가 좀 있긴 하지만 참을 수 있는 정도다.
내 수업에서는 되도록 쉽게 가르치려고 노력했지만, 그렇다고 책에서 다루는 깊이 있는 내용들을 그냥 지나치기에 아까웠다. 나를 포함해서 인간의 언어 보다 컴퓨터 언어(추상적인)로 대화하는 것을 더 좋아하는 사람들이 있다. 내 수업에서도 술어 논리 공부에 크게 몰입하는 학생들의 있었다. 이들의 지식 습득에 대한 요구를 만족시키고자 책에서 읽은 챕터의 모든 문제를 풀이 후 수업 준비를 하였다. 책의 모든 예제를 풀어보고, 연습 문제 중에서는 논리적 타당성이 없는 증명 문제를 제외한 모든 문제를 풀었다. 그런 후 난이도 별로 쉬운 것 부터 지옥 같이 느껴질 내용 까지를 다루었다.
프로그래밍 언어 순위를 볼 수 있는 TIOBE 같은 곳을 보면, 논리적 프로그래밍(logic programming) 언어의 순위가 매우 낮다. 이걸 보면, 컴퓨터/소프트웨어 전공자가 굳이 이 책을 보면서 술어 논리를 배울 필요가 있을까 생각할 수도 있다. 그러나 술어 논리는 인간의 언어(자연어)나 사고 방식을 컴퓨터가 이해할 수 있는 방식으로 번역하는, 추상화를 연습할 수 있다는 점 때문에 매우 중요하다. 또한 컴퓨터 프로그램을 설계하는 사람이, 자신의 프로그램이 올바르게 설계되었다는 사실을 추론해내는 데 사용하는 Hoare logic의 기반이 되기에 또한 중요하다.
지금껏 술어 논리를 강의했지만, 안타깝게도 나 역시 논리적 프로그래밍 언어를 따로 공부할 일은 없었다. 그래서 다음으로 익힐 취미는 논리적 프로그래밍 언어인 Prolog로 정해두었다.
'읽은 책' 카테고리의 다른 글
권오현(2018), 초격차, 쌤앤파커스 (0) | 2024.05.27 |
---|---|
이준희(2023), 면접바이블 2.0, 얼라이브북스 (0) | 2024.05.05 |
최창한, 김진태 (2017) 레이싱 랩, 골든벨 (0) | 2024.03.29 |
이준희(2023), 이직 바이블, 얼라이브북스 (0) | 2024.03.26 |
고동진 (2023), 일이란 무엇인가, 민음사 (0) | 2023.12.14 |
장슬기 (2022), 그런 말은 전혀 괜찮지 않습니다, 아를 (0) | 2023.12.01 |
킴 닐스 지음, 김승섭 번역 (2020), 장애의 역사, 동아시아 (0) | 2023.11.26 |
데이비드 스피겔할터 저, 권혜승, 김영훈 역 (2020), 숫자에 약한 사람들을 위한 통계학 수업, 웅진지식하우스. (0) | 2023.10.14 |