Coding in Education


Introducing students to AppDev with Mat|r

Now that software has eaten the world and become a critical component of every industry and business sector, a key component of literacy in the 21st century is an understanding of the principles of coding. What is the best way to introduce students to the principles of programming and application development? How do you accomplish something meaningful, get students truly engaged in the subject and have enough teachers that are qualified in the subject?

 

It is unlikely, in the space of a semester, that students with no background in programming are going to be creating apps with Java, Swift or a Javascript framework. In addition, finding teachers qualified to teach those languages is exceedingly difficult considering the competition from the tech industry for programming talent. This is where the unique features of Mat|r makes it the perfect platform for high school coding classes, robot clubs and teaching introductions to related subjects like IoT, scientific research or machine learning. It is also ideal in Universities to provide the benefits of appDev to research labs and as an introduction to application development.

 

The Mat|r Platform Advantages

Mat|r is open source and cloud based, no environments to set up and configure and no licensing fees. Just register online and start using it.

 

Mat|r|script, has all the power of a true high level language but takes about as much effort to learn as WYSIWYG tools aimed at technically inclined non-programmers. Students are working in the same environment with the same tools as professional developers but without the steep learning curve of other pro tools. Programming “Hello World” is not going to set any students world on fire. The ability to write real apps with a real programming language and preview your app and any changes instantly on your phone… that is the kind of experience that can engage students.

 

The Mat|r IDE in Model (text editor) mode
The Mat|r IDE in Model (text editor) mode

 

Here is the Mat|r|script code to allow a user to take and display a photo on their iOS or Android phone:

 

Experience PhotoExperience {
    Decision takePhoto action('MainContext.takePhoto') label('Take a Photo')
String myPhoto as Image
}
RuleContext MainContext {
 
 Rule takePhoto {
    PhotoExperience expData = broker.ui.getDataSource()
  MediaFile photoData = broker.media.open(MediaCameraConfigure())
  if (photoData != null) { // if user took a photo
   expData.myPhoto = photoData.getURL() //display the photo
  }
 }
}

 

Below is a comparison of the length of the PhotoExperience Mat|r|script code vs Swift and Java versions of the same function. Mat|r|script: 16 lines of code, Swift: 41 lines, Java: 57 lines.

 

The PhotoExperience code example is from the Taking and Displaying a Photo tutorial in Mat|r Docs.

 

Mat|r|script is a strongly typed language that encourages good, consistent coding behavior in novice coders. It also reduces bugs, saving considerable amounts of time and frustration spent trying to find or solve errors. Especially important for young students trying to make progress in building their first app. The Mat|r syntax is similar to the C-family programming languages, so it is easy to understand to anyone with a bit of C, Java or Javascript background. It also provides a painless intro into the syntax of these popular and widely used languages for beginners.

 

Mat|r|script gives coders easy access to native device features like: GPS, Maps, local storage, camera (see the code example above), media gallery, media visualization and push notifications. No worries about different device requirements for accessing these features, Mat|r handles all that for you.

 

Mat|r provides for rapid prototyping and easy collaborative review and distribution. With the Mat|r viewers for iOS and Android and soon web, students can share their app with their teachers, colleagues, family and friends, without having to upload the app to the app stores.

 

The Mat|r UI Builder provides an easy graphical way to style the UI that is auto-generated by Mat|r from the Experiences you define. Users also have the option of working on the CSS-like markup file in text mode. Multiple UI themes are available that allow you to change the look and color scheme of your UI with one click.

 

Mat|r UI Builder
Mat|r UI Builder

 

Mat|r|hub is a code repository and exchange, where students can share mat|r code. Mat|r|hub has all the social media features students are accustomed to in apps they use daily. Users can follow, like and rate code. Students can import libraries and apps without having to do any configuration. Very complex components can be imported by novice users to build sophisticated apps that would be far beyond their capabilities if they had to build everything from scratch. As students advance they can use the code in these imported libraries and apps to understand how to code ever more complex features and functions on their own. Mat|r provides large rewards and immediate results for beginners efforts, encouraging students to learn more.

 

Mat|r|hub
Mat|r|hub

 

Mat|r Academy provides online courses for basic, intermediate and advanced levels. Right now it is only available in Spanish but an English language version will be available soon. The Mat|r Forums provide a venue for the Mat|r community to share knowledge and ask questions.

 

In Summary

There are dozens of widely used programming languages. The popular language a student studies in High School may be displaced by a new language by the time they enter the workforce. A college student may get a job in an industry that the most widely used language they learned (that would be Javascript today) is not suited for. Do you need to learn Java, Javascript or Python to guarantee a career 5-6 years from now? Impossible to predict with absolute certainty in the rapidly changing tech environment.

 

Better to reduce the investment of time and effort to the minimum to learn the principles of programming and become conversant with the syntax of programming languages, best practices and application design. Those are skills transferable to any application development environment. Mat|r excels at delivering maximum experience with the minimum effort and minimum resources.

 

The Mat|r Project is open source and is forming an education focused Special Interest Group. We are looking for educators and programmers who would like to collaborate in shaping the future development of the Mat|r platform to make it a better tool for students, teachers and schools. You can signup at The Mat|r Project.