Programming Languages, Part B

Start Date: 07/05/2020

Course Type: Common Course

Course Link: https://www.coursera.org/learn/programming-languages-part-b

About Course

[As described below, this is Part B of a 3-part course. Participants should complete Part A first -- Part B "dives right in" and refers often to material from Part A.] This course is an introduction to the basic concepts of programming languages, with a strong emphasis on functional programming. The course uses the languages ML, Racket, and Ruby as vehicles for teaching the concepts, but the real intent is to teach enough about how any language “fits together” to make you more effective programming in any language -- and in learning new ones. This course is neither particularly theoretical nor just about programming specifics -- it will give you a framework for understanding how to use language constructs effectively and how to design correct and elegant programs. By using different languages, you will learn to think more deeply than in terms of the particular syntax of one language. The emphasis on functional programming is essential for learning how to write robust, reusable, composable, and elegant programs. Indeed, many of the most important ideas in modern languages have their roots in functional programming. Get ready to learn a fresh and beautiful way to look at software and how to have fun building it. The course assumes some prior experience with programming, as described in more detail in the first module of Part A. Part B assumes successful completion of Part A. The course is divided into three Coursera courses: Part A, Part B, and Part C. As explained in more detail in the first module of Part A, the overall course is a substantial amount of challenging material, so the three-part format provides two intermediate milestones and opportunities for a pause before continuing. The three parts are designed to be completed in order and set up to motivate you to continue through to the end of Part C. Week 1 of Part A has a more detailed list of topics for all three parts of the course, but it is expected that most course participants will not (yet!) know what all these topics mean.

Course Syllabus

Welcome to the second week of Part B where we will focus on (a) building data structures in dynamically typed languages and (b) implementing programming languages with interpreters. Most of the programming assignment is focused on (b) -- implementing a small programming language that has function closures. As usual, start with the welcome message and enjoy!

Coursera Plus banner featuring three learners and university partner logos

Course Introduction

Programming Languages, Part B This course introduces the basic concepts of programming languages, as well as their associated object-oriented, static, and threading models. The course covers the C language and the C++ language, the C programming model, the use of threads and signals, the use of libraries as shared libraries, the use of functions and static analysis of functions, the use of threads and signals among different threads, the use of libraries as shared libraries, and the use of threads and signals among different threads. The course also covers the Fortran programming model and the Fortran/Fortran/Fortran/Fortran/Fortran models, the use of threads and signals, the use of threads and signals among different threads, the use of threads and signals among different threads, the use of libraries as shared libraries, and the use of threads and signals among different threads.MODULE 1: Understanding the Model MODULE 2: Basic Structures and Nuts MODULE 3: Functions MODULE 4: Tense and Strict Modules Practical Machine Learning with NVIDIA NN The fourth course in the specialization covers implementation of recommender systems using NVIDIA NN. This course is focused on practical problems in machine learning that require regular inspection of the models used to make predictions. The course focuses on the implementation of recommender system in detail on the problem of finding good models for predicting with high accuracy. The course also covers the implementation of recommender systems on different

Course Tag

Racket (Programming Language) Programming Language Concepts Type System Functional Programming

Related Wiki Topic

Article Example
List of programming languages The aim of this list of programming languages is to include all notable programming languages in existence, both those in current use and historical ones, in alphabetical order, except for dialects of BASIC, esoteric programming languages, and markup languages.
Comparison of programming languages Programming languages are used for controlling the behavior of a machine (often a computer). Like natural languages, programming languages conform to rules for syntax and semantics.
Non-English-based programming languages Non-English-based programming languages are computer programming languages that, unlike better-known programming languages, do not use keywords taken from, or inspired by, the English vocabulary.
Essentials of Programming Languages Essentials of Programming Languages (EOPL) is a textbook on programming languages by Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes.
Comparison of programming languages (syntax) This comparison of programming languages (syntax) compares the features of language syntax (format) for over 50 various computer programming languages.
Comparison of functional programming languages The table shows a comparison of functional programming languages which compares various features and designs of different functional programming languages.
Comparison of programming languages (object-oriented programming) This comparison of programming languages compares how object-oriented programming languages such as C++, Java, Object Pascal, Perl, Python, and others manipulate data structures.
History of programming languages Some key people who helped develop programming languages:
Essentials of Programming Languages Like SICP, EOPL represents a significant departure from the prevailing textbook approach in the 1980s. At the time, a book on the principles of programming languages presented four to six (or even more) programming languages and discussed their programming idioms and their implementation at a high level. The most successful books typically covered ALGOL 60 (and the so-called Algol family of programming languages), SNOBOL, Lisp, and Prolog. Even today a fair number of textbooks on programming languages are just such surveys, though their scope has narrowed.
Comparison of programming languages (strings) This comparison of programming languages (strings) compares the features of string data structures or text-string processing for over 52 various computer programming languages.
Comparison of programming languages (array) This comparison of programming languages (array) compares the features of array data structures or matrix processing for over 48 various computer programming languages.
Timeline of programming languages This is a record of historically important programming languages, by decade.
Lists of programming languages There are thousands of programming languages. These are listed in various ways:
History of programming languages This article discusses the major developments in the history of programming languages.
Inductive programming The diversity of inductive programming usually comes from the applications and the languages that are used: apart from logic programming and functional programming, other programming paradigms and representation languages have been used or suggested in inductive programming, such as functional logic programming, constraint programming, probabilistic programming, abductive logic programming, modal logic, action languages, agent languages and many types of imperative languages.
Von Neumann programming languages The isomorphism between von Neumann programming languages and architectures is in the following manner:
History of programming languages Although major new paradigms for imperative programming languages did not appear, many researchers expanded on the ideas of prior languages and adapted them to new contexts. For example, the languages of the Argus and Emerald systems adapted object-oriented programming to distributed systems.
Quantum programming One can single out two main groups of quantum programming languages: imperative quantum programming languages and functional quantum programming languages.
Comparison of programming languages There are thousands of programming languages and new ones are created every year. Few languages ever become sufficiently popular that they are used by more than a few people, but professional programmers may use dozens of languages in a career.
History of programming languages The 1960s and 1970s also saw considerable debate over the merits of "structured programming", which essentially meant programming without the use of "goto". A significant fraction of programmers believed that, even in languages that provide "goto", it is bad programming style to use it except in rare circumstances. This debate was closely related to language design: some languages did not include a "goto" at all, which forced structured programming on the programmer.