Programming Languages, Part A

Start Date: 07/05/2020

Course Type: Common Course

Course Link:

Explore 1600+ online courses from top universities. Join Coursera today to learn data science, programming, business strategy, and more.

About Course

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. 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. The three parts are not quite equal in length: Part A is almost as substantial as Part B and Part C combined. 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

This module contains two things: (1) The information for the [unusual] software you need to install for Programming Languages Part A. (2) An optional "fake" homework that you can turn in for auto-grading and peer assessment to get used to the mechanics of assignment turn-in that we will use throughout the course. You can do this module either before or after watching the first few "actual course content" videos in the next module, but you will want to get the software installed soon so you can learn by actively trying out variations on the code in the videos. You will need to install the software to do the homework.

Deep Learning Specialization on Coursera

Course Introduction

Programming Languages, Part A This course introduces the basic concepts of programming languages, with a strong emphasis on object-oriented programming. We will cover the basics of using object-oriented programming in our projects, as well as provide an overview of how we can develop our applications. We'll also learn how to combine object-oriented programming and object-oriented technologies in our projects so that we can realize the full potential of our computers. The course consists of 8 modules, each comprising 8-12 hours of study. The modules are designed to allow you to expand your learning experience within the course, by taking you through a more complete and solidarized model of the course. During the course, you will have access to the final project that will prepare you to contribute to other's projects as well as to your own. You'll also have access to the knowledge you need to complete assignments. The course requires that you have access to a computer with a strong enough Internet connection to watch videos and play games. You'll need to use a word processing software program to follow along on the lectures. All the materials needed to follow along will be provided free of charge. The course is designed to give you an introduction to the fundamentals of programming, but it is also intended to teach you how to use those fundamentals in your own projects. The course will cover the basics of object-oriented programming, but it will also touch upon how we can apply those concepts in a more personal way, through code,

Course Tag

Recursion Higher-Order Function Pattern Matching Functional Programming

Related Wiki Topic

Article Example
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.
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.
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 functional programming languages The table shows a comparison of functional programming languages which compares various features and designs of different functional programming languages.
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 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.
Timeline of programming languages This is a record of historically important programming languages, by decade.
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 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.
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:
List of audio programming languages This is a list of audio programming languages including languages optimized for sound production, algorithmic composition, and sound synthesis.
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.
Syntax (programming languages) To quickly compare syntax of various programming languages, take a look at the list of "Hello, World!" program examples:
Types and Programming Languages Types and Programming Languages, ISBN 0-262-16209-1, (TaPL) is a book by Benjamin C. Pierce on type systems.
Unisys MCP programming languages Unisys MCP has had several generations of compilers in its history supporting a wide variety of programming languages.
Programming paradigm Programming paradigms are a way to classify programming languages based on the features of various programming languages. Languages can be classified into multiple paradigm,
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.
Generational list of programming languages Here, a genealogy of programming languages is shown. Languages are categorized under the ancestor language with the strongest influence. Those ancestor languages are listed in alphabetical order. Of course, any such categorization has a large arbitrary element, since programming languages often incorporate major ideas from multiple sources.