Maple is a symbolic and numeric computing environment as well as a multi-paradigm programming language. It covers several areas of technical computing, such as symbolic mathematics, numerical analysis, data processing, visualization, and others. A toolbox, MapleSim, adds functionality for multidomain physical modeling and code generation.
Maple's capacity for symbolic computing include those of a general-purpose computer algebra system. For instance, it can manipulate mathematical expressions and find symbolic solutions tocertain problems, such as those arising from ordinary and partial differential equations.
Users can enter mathematics in traditional mathematical notation. Custom user interfaces can also be created. There is support for numeric computations, to arbitrary precision, as well as symbolic computation and visualization. Examples of symbolic computations are given below.
Maple incorporates a dynamically typed imperative-style programming language (resembling Pascal), which permits variables of lexical scope.[3] There are also interfaces to other languages (C, C#, Fortran, Java, MATLAB, and Visual Basic), as well as to Microsoft Excel.
Maple supports MathML 2.0, which is a W3C format for representing and interpreting mathematical expressions, including their display in web pages.[4] There is also functionality for converting expressions from traditional mathematical notation to markup suitable for the typesetting system LaTeX.
Maple is based on a small kernel, written in C, which provides the Maple language. Most functionality is provided by libraries, which come from a variety of sources. Most of the libraries are written in the Maple language; these have viewable source code. Many numerical computations are performed by the NAG Numerical Libraries, ATLAS libraries, or GMP libraries.
Different functionality in Maple requires numerical data in different formats. Symbolic expressions are stored in memory as directed acyclic graphs. The standard interface and calculator interface are written in Java.
The first concept of Maple arose from a meeting in late 1980 at the University of Waterloo.[5] Researchers at the university wished to purchase a computer powerful enough to run the Lisp-based computer algebra system Macsyma. Instead, they opted to develop their own computer algebra system, named Maple, that would run on lower cost computers. Aiming for portability, they began writing Maple in programming languages from the BCPL family (initially using a subset of B and C, and later on only C).[5] A first limited version appeared after three weeks, and fuller versions entered mainstream use beginning in 1982.[6] By the end of 1983, over 50 universities had copies of Maple installed on their machines.[citation needed]
In 1984, the research group arranged with Watcom Products Inc to license and distribute the first commercially available version, Maple 3.3.[6] In 1988 Waterloo Maple Inc. (Maplesoft) was founded. The company's original goal was to manage the distribution of the software, but eventually it grew to have its own R&D department, where most of Maple's development takes place today (the remainder being done at various university laboratories[7]).
In 1989, the first graphical user interface for Maple was developed and included with version 4.3 for the Macintosh. X11 and Windows versions of the new interface followed in 1990 with Maple V. In 1992, Maple V Release 2 introduced the Maple "worksheet" that combined text, graphics, and input and typeset output.[8] In 1994 a special issue of a newsletter created by Maple developers called MapleTech was published.[9]
In 1999, with the release of Maple 6, Maple included some of the NAG Numerical Libraries.[10] In 2003, the current "standard" interface was introduced with Maple 9. This interface is primarily written in Java (although portions, such as the rules for typesetting mathematical formulae, are written in the Maple language). The Java interface was criticized for being slow;[11] improvements have been made in later versions, although the Maple 11 documentation[12] recommends the previous ("classic") interface for users with less than 500 MB of physical memory.
Between 1995 and 2005 Maple lost significant market share to competitors due to a weaker user interface.[13] With Maple 10 in 2005, Maple introduced a new "document mode" interface, which has since been further developed across several releases.
These are the release notes for the Maple release, the 13th community release of the Open edX Platform, spanning changes from April 9 2021 to October 15 2021. You can also review details about earlier releases or learn more about the Open edX Platform.
In versions prior to Maple, Studio (CMS) shared a session cookie with the LMS, and redirected to the LMS for login.Studio is changing to become an OAuth client of the LMS, using the same SSO configuration that other IDAs use. (SeeARCHBOM-1860; OEP-42) This is a breaking change. Follow the Studio OAuth migration runbook as part ofupgrading to Maple. For devstack, run:
The courseware.use_legacy_frontend and course_home.course_home_use_legacy_frontend Waffle flags can be toggled on (either globally or per-course-run) in order to revert to the legacy (LMS Django-rendered) courseware experience.
Entrance Exams are slated to be deprecated and are never enabled on the MFE. Attempting to start a course with an entrance exam on the MFE results in an error. Using the waffle flags to enable the legacy experience should enable their usage for the time being, but their deprecation is forthcoming.
Problemsets and videosequences, which are deprecated variations of the Sequence block will not render in the MFE. Note, these could have only been added in raw OLX. This cannot affect courses authored entirely in Studio.
The ability for course authors to preview units in the learner experience before they are published will preview in the legacy experience, not the MFE. Work enabling preview using the MFE is anticipated.
According to the HTML standard, and tags are not self-closing; they must be closed with and tags. Legacy courseware incidentally corrected this error when it occurred in course content. MFE courseware does not do that correction. Course authors should update their courses to use well-formed HTML if they happened to rely on self-closing or tags.
Courses which use the course key pattern ORG/COURSE/RUN instead of the new pattern, course-v1:ORG+COURSE+RUN, are stored in our legacy storage service, Old Mongo, and will not be served by the new MFE. Instead they default to the legacy experience. But this pattern has been deprecated and will be removed.
The breadcrumbs displayed at the top of a page in the legacy experience were organized by Course -> Sequence -> Unit -> Content Block Title, but in the new MFE breadcrumbs only include Course -> Sequence -> Unit. This removes visual clutter of having the same title repeated in a small space on the page.
If all content inside a unit should be invisible to a cohort, but the sequence or the unit is not hidden, learners may be able to still see the titles of the content on the course outline, as well as the title of the sequence which contains only what should be hidden content to that learner. This issue can be removed by setting the learning_sequences.use_for_outlines waffle flag to true.
To enable faster movement through course content, staff users will now see jump navigation selectors to augment the existing course breadcrumb in the learning sequence experience (Learning MFE). With this deployment, a staff user can select a section or subsection, a menu will appear, and the user can jump to a particular unit within a course.
Course outlines will now feature automatic effort estimates for subsections. Courses have to be republished before they show estimates, and all videos in the course must also have durations in edx-val, the Open edX video abstraction layer.
There are some in-course celebrations of progress. A modal popup when a learner finishes their first section. And a 3-day streak celebration modal popup. This is configurable using the waffle toggles mfe_progress_milestones and mfe_progress_milestones_streak_celebration
Removal of the allow_certificate field on the UserProfile model has been completed, and the column has been dropped (Note: if your UserProfile table has a lot of rows, the migration to drop the column could lock the table and necessitate a status page/downtime.)
The temporary waffle flag certificates_revamp.use_allowlist has been removed, as testing during the rollout of this feature has been completed. All course runs now use the new allowlist behavior, which is described in the Allowlist ADR
The temporary waffle flag certificates_revamp.use_updated has been removed, as testing during the rollout of this feature has been completed. All course runs now use the new consolidated course certificate behavior, which is described here.
In an effort to be more inclusive, code referencing a Certificate Whitelist has been updated to instead refer to a Certificate Allowlist. The CertificateWhitelistmodel has been replaced by the CertificateAllowlistmodel (data is automatically copied over to the new model by a data migration).
The management command named cert_whitelist has been removed. In its place, please use the Certificate Allowlist, which can be accessed from the Instructor tab on the course page in the LMS. (DEPR-156)
The Segment event edx.bi.user.certificate.generate will no longer emit from the courseware when self-generated certificate generation is attempted by a user. There was some overlap in this Certificate event with the edx.certificate.createdevent sent during certificate generation. A self-generated certificate event will have a generation_mode of self (versus batch for certificates generated automatically).
While many course teams do not commonly use this course import, educators cannot continue course authoring when it does fail. Previously, course teams would occasionally encounter issues importing a new version of their course through Studio. Existing error messaging made the root cause hard to discern, requiring course teams to reach out to an admin for assistance. Educators blocked by the import tool were not unable to update or launch their course without admin intervention, delaying authoring and publishing timelines for courses.
b1e95dc632