Programming Paradigms


Manage series 1412924
Player FM과 저희 커뮤니티의 Programming Paradigms 콘텐츠는 모두 원 저작자에게 속하며 Player FM이 아닌 작가가 저작권을 갖습니다. 오디오는 해당 서버에서 직접 스트리밍 됩니다. 구독 버튼을 눌러 Player FM에서 업데이트 현황을 확인하세요. 혹은 다른 팟캐스트 앱에서 URL을 불러오세요.
Catalog description
A study of three programming paradigms and their associated languages: the functional paradigm with Scheme, the logical/declarative paradigm with Prolog, and the concurrent processing paradigm with Java.

The objective of this course is to learn three major programming models that complement the procedural and object-oriented models:
  • The functional paradigm
  • The declarative/logic paradigm
  • The concurrent paradigm
Each of these models is based on a body of theory and each can be implemented in various programming languages—in this course Scheme, Prolog, and C++/Java respectively. Although this course introduces the theoretical basis of each model, the emphasis is on the practice of programming.

A paradigm is a pattern of thinking that is frequently difficult to change. For example, the procedural and object-oriented models are based on the concept of state, as exemplified by the ubiquitous assignment statement. It may be difficult to imagine programming without an assignment statement, but the pure functional and declarative/logic models have no assignment statement. In both of these models, you will have to make a paradigm shift to thinking without assignment statements as you contemplate various programming solutions. Similarly, the procedural model is concerned with a single thread of control. It will take a paradigm shift to think about several processors executing several threads of control concurrently to solve a single problem.

In this course, we will immerse ourselves completely in each of the three paradigms. That is, rather than discuss the ideas abstractly and concurrently we will attempt to experience them sequentially through programming. The course is thus divided into three distinct parts, one for each of the programming models in which we will program with each of the three programming languages. The goal is not to make you an expert programmer in any of the three languages. Each language has far too many advanced features and nuances to be learned in one third of a single semester. However, you should be equipped from this introduction to extend your expertise in each model.

53 에피소드