<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Scientific Programming Team</title>
    <description>The latest articles on DEV Community by Scientific Programming Team (@sciprogrammer).</description>
    <link>https://dev.to/sciprogrammer</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F364117%2F83d63175-e6a2-48a7-ba38-c537eba17c02.jpg</url>
      <title>DEV Community: Scientific Programming Team</title>
      <link>https://dev.to/sciprogrammer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sciprogrammer"/>
    <language>en</language>
    <item>
      <title>How to Learn Perl Object Oriented Programming?</title>
      <dc:creator>Scientific Programming Team</dc:creator>
      <pubDate>Wed, 10 Feb 2021 09:33:43 +0000</pubDate>
      <link>https://dev.to/scientificschool/perl-object-oriented-programming-342a</link>
      <guid>https://dev.to/scientificschool/perl-object-oriented-programming-342a</guid>
      <description>&lt;p&gt;The &lt;strong&gt;Object Oriented concept&lt;/strong&gt; in Perl is very much based on references and anonymous array and hashes. Let's start learning basic concepts of Object Oriented Perl.&lt;br&gt;
Object Basics&lt;/p&gt;

&lt;p&gt;In Perl, a package is a self-contained unit of user-defined variables and subroutines, which can be re-used over and over again. Perl Packages provide a separate namespace within a Perl program which keeps subroutines and variables independent from conflicting with those in other packages.&lt;/p&gt;

&lt;p&gt;To declare a class named Person in Perl we do:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight perl"&gt;&lt;code&gt;&lt;span class="nb"&gt;package&lt;/span&gt; &lt;span class="nv"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's create our constructor for our Person class using a Perl hash reference. When creating an object, you need to supply a constructor, which is a subroutine within a package that returns an object reference. The object reference is created by blessing a reference to the package's class.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight perl"&gt;&lt;code&gt;&lt;span class="c1"&gt;#!/usr/bin/perl &lt;/span&gt;

&lt;span class="nb"&gt;package&lt;/span&gt; &lt;span class="nv"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$class&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="s"&gt;_firstName&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="s"&gt;_lastName&lt;/span&gt;  &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="s"&gt;_ssn&lt;/span&gt;       &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
   &lt;span class="p"&gt;};&lt;/span&gt;
   &lt;span class="c1"&gt;# Print all the values just for clarification.&lt;/span&gt;
   &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="p"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;First Name is &lt;/span&gt;&lt;span class="si"&gt;$self&lt;/span&gt;&lt;span class="s2"&gt;-&amp;gt;{_firstName}&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="p"&gt;";&lt;/span&gt;
   &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="p"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Last Name is &lt;/span&gt;&lt;span class="si"&gt;$self&lt;/span&gt;&lt;span class="s2"&gt;-&amp;gt;{_lastName}&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="p"&gt;";&lt;/span&gt;
   &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="p"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;SSN is &lt;/span&gt;&lt;span class="si"&gt;$self&lt;/span&gt;&lt;span class="s2"&gt;-&amp;gt;{_ssn}&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="p"&gt;";&lt;/span&gt;
   &lt;span class="nb"&gt;bless&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$class&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;setFirstName&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$firstName&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;@_&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;_firstName&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$firstName&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;defined&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$firstName&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
   &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;_firstName&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;getFirstName&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="k"&gt;my&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;@_&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;_firstName&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now let's make use of &lt;code&gt;Person&lt;/code&gt; object in &lt;code&gt;scientific-employee.pl&lt;/code&gt; file as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight perl"&gt;&lt;code&gt;&lt;span class="c1"&gt;#!/usr/bin/perl&lt;/span&gt;

&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nv"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nv"&gt;$object&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nv"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="p"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Sci&lt;/span&gt;&lt;span class="p"&gt;",&lt;/span&gt; &lt;span class="p"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Pro&lt;/span&gt;&lt;span class="p"&gt;",&lt;/span&gt; &lt;span class="mi"&gt;23234345&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;# Get first name which is set using constructor.&lt;/span&gt;
&lt;span class="nv"&gt;$firstName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$object&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nv"&gt;getFirstName&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="p"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Before Setting First Name is : &lt;/span&gt;&lt;span class="si"&gt;$firstName&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="p"&gt;";&lt;/span&gt;

&lt;span class="c1"&gt;# Now Set first name using helper function.&lt;/span&gt;
&lt;span class="nv"&gt;$object&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nv"&gt;setFirstName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="p"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Scientific&lt;/span&gt;&lt;span class="p"&gt;"&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;# Now get first name set by helper function.&lt;/span&gt;
&lt;span class="nv"&gt;$firstName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$object&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nv"&gt;getFirstName&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="p"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Before Setting First Name is : &lt;/span&gt;&lt;span class="si"&gt;$firstName&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="p"&gt;";&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When we execute above program, it produces the following result −&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight perl"&gt;&lt;code&gt;
&lt;span class="nv"&gt;First&lt;/span&gt; &lt;span class="nv"&gt;Name&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;Scientific&lt;/span&gt;
&lt;span class="nv"&gt;Last&lt;/span&gt; &lt;span class="nv"&gt;Name&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;Pro&lt;/span&gt;
&lt;span class="nv"&gt;SSN&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="mi"&gt;124567890&lt;/span&gt;
&lt;span class="nv"&gt;Before&lt;/span&gt; &lt;span class="nv"&gt;Setting&lt;/span&gt; &lt;span class="nv"&gt;First&lt;/span&gt; &lt;span class="nv"&gt;Name&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;Sci&lt;/span&gt;
&lt;span class="nv"&gt;Before&lt;/span&gt; &lt;span class="nv"&gt;Setting&lt;/span&gt; &lt;span class="nv"&gt;First&lt;/span&gt; &lt;span class="nv"&gt;Name&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;Pro&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Run interactively!
&lt;/h3&gt;

&lt;p&gt;The "PERL Systems &amp;amp; Scientific Programming Course" is a hands-on training that will give you a solid understanding and practical knowledge of Perl in order to be able to build any project. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://school.scientificprogramming.io/home/course/perl-systems-scientific-programming/17"&gt;https://school.scientificprogramming.io/home/course/perl-systems-scientific-programming/17&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>codenewbie</category>
      <category>beginners</category>
      <category>oop</category>
    </item>
    <item>
      <title>🔥 Interactive Scientific Programming Courses — Bundle</title>
      <dc:creator>Scientific Programming Team</dc:creator>
      <pubDate>Fri, 29 Jan 2021 02:57:59 +0000</pubDate>
      <link>https://dev.to/scientificschool/interactive-scientific-programming-courses-bundle-41j8</link>
      <guid>https://dev.to/scientificschool/interactive-scientific-programming-courses-bundle-41j8</guid>
      <description>&lt;h3&gt;
  
  
  The Platform
&lt;/h3&gt;

&lt;p&gt;The &lt;strong&gt;Scientific Programming School (&lt;a href="https://scientificprogramming.io/" rel="noopener noreferrer"&gt;https://scientificprogramming.io/&lt;/a&gt;)&lt;/strong&gt; platform is powered by Digital Ocean’s multiple droplets (VPS) with a highly scalable design (read our devlogs). With 50+ languages- all set for you from Python, C/C++ OpenMP, MPI, C#, Java, Perl to Matlab, R, Swift, Kotlin and so on, you don’t fiddle with SDKs and IDEs at this time!&lt;/p&gt;

&lt;p&gt;Start learning Linux and Devops immediately. It‘s all setup for you in all three flavors of Linux- Ubuntu, RHEL and SuSE. Just click on the terminal window and get a console! Also includes easy to understand animated videos all around, also includes HD terminal captures and so on. All videos are encrypted, self-hosted and optimised for your best viewing experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing the Scientific Programming Courses — Bundles
&lt;/h2&gt;

&lt;p&gt;Why? Because we believe sharing knowledge is the most wonderful human capability - a powerful and generous way to give back and change the world for the better!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fegeblomtzkj2ir2bnrs2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fegeblomtzkj2ir2bnrs2.png" alt="Bundle offer"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://scientificprogramming.io/bundle-offer" rel="noopener noreferrer"&gt;https://scientificprogramming.io/bundle-offer&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your support will allow us to focus more on the platform: new features, bug fixes, community support etc., and it also will help to pay the server bills, CDN spaces and backup costs. Learn with the most advanced code playground.&lt;/p&gt;

&lt;h3&gt;
  
  
  What’s included?
&lt;/h3&gt;

&lt;p&gt;A course bundle purchase will enable you enrol to all the current courses at just one price. Anything published after the bundle is purchased won’t be included, but you may re-purchase the new courses/ bundle anytime. If you are not happy, we’ll offer you 100% refund! We plan to offer a new bundle each month and seasons.&lt;/p&gt;

&lt;h3&gt;
  
  
  Learn more
&lt;/h3&gt;

&lt;p&gt;Scientific Programming School — An Advanced and Interactive Learning Platform&lt;br&gt;
&lt;a href="https://scientificprogramming.io/" rel="noopener noreferrer"&gt;https://scientificprogramming.io/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>productivity</category>
      <category>programming</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>Scientific Programming School — Mobile App</title>
      <dc:creator>Scientific Programming Team</dc:creator>
      <pubDate>Wed, 16 Dec 2020 01:11:55 +0000</pubDate>
      <link>https://dev.to/scientificschool/scientific-programming-school-mobile-app-2887</link>
      <guid>https://dev.to/scientificschool/scientific-programming-school-mobile-app-2887</guid>
      <description>&lt;p&gt;Introducing the Scientific Programming School Android App. Get FREE interactive courses on the Scientific Programming School’s mobile learning app!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gIEybbVH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/vfmei7fwquil02xqierk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gIEybbVH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/vfmei7fwquil02xqierk.png" alt="APP"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  An Interactive Android App
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://app.scientificprogramming.io/"&gt;Scientific Programming School App &lt;/a&gt; is an interactive learning app for Instructors, students and professionals interested in Linux, Devops, HPC and Data Sciences.&lt;/p&gt;

&lt;p&gt;The app is designed for programming enthusiasts and computer science students to help guide them with the aspects of scientific programming such as data structures, algorithms, methods/functions, exception handling, functional programming, object-oriented programming, regular expressions, variables and operators, conditional statements and loops, arrays, classes and objects, encapsulation, polymorphism, and inheritance, abstract classes and Interfaces, anonymous and Inner Classes, threads.&lt;/p&gt;

&lt;h2&gt;
  
  
  Languages supported
&lt;/h2&gt;

&lt;p&gt;C, C++, Java, Data Structures in C, C++ &amp;amp; Java, Algorithms in C, C++ &amp;amp; Java, Computer Graphics in C, C++ &amp;amp; Java, PHP, Python, C#, Perl, JavaScript, CSS, HTML, Ruby, ASP, SQL, PLSQL, MySQL,R Programming, Lua, Assembly and so on.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mwBa4VP_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/sleldvmhc5t9g9bljluk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mwBa4VP_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/sleldvmhc5t9g9bljluk.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why use App?
&lt;/h2&gt;

&lt;p&gt;• Free courses. Get all the new, in-progress beta and completed FREE courses.&lt;br&gt;
• Ad-free experience. Learn lessons without distraction, no add.&lt;br&gt;
• Unlimited code runs. Run code as many times as you want in our code editor.&lt;br&gt;
• Break the rule. Follow the lessons in any order you want.&lt;/p&gt;

&lt;p&gt;Get FREE courses made available by the Scientific Programming Team. All in-progress, beta and in-development courses can be accessed from the app. No registration required!&lt;/p&gt;

&lt;p&gt;Video: &lt;a href="https://youtu.be/_7edEUJhbpE"&gt;https://youtu.be/_7edEUJhbpE&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://scientificprogramming.io/"&gt;Scientific Programming School &lt;/a&gt; is an interactive programming learning app for Instructors, students and professionals interested in Linux, Devops, HPC and Data Sciences. It supports all three Linux OS flavours (Ubuntu, RHEL and SuSE), Windows Power Shell and 50+ programming languages including the commercial ones like C# and so on.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xbAwg1jw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/2no35hkthbvq6w75tl4l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xbAwg1jw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/2no35hkthbvq6w75tl4l.png" alt="Scientific programming codes -App"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;See also: Scientific Programming Codes App - Coming soon!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You get all the FREE courses made available by the Scientific Programming School in this app. Feel free to contact us regarding improvement, suggestions or to report any bugs using our website.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We believe sharing knowledge is the most wonderful human capability. Sharing your skills and knowledge is a powerful and generous way to give back and change the world for the better!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We hope that you find all our content useful for yourself and leave positive feedback for our work.&lt;/p&gt;

&lt;p&gt;Learn more at &lt;a href="https://app.scientificprogramming.io/"&gt;https://app.scientificprogramming.io/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>android</category>
      <category>tutorial</category>
      <category>beginners</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How to Learn CUDA Programming Essentials?</title>
      <dc:creator>Scientific Programming Team</dc:creator>
      <pubDate>Thu, 10 Sep 2020 12:34:45 +0000</pubDate>
      <link>https://dev.to/scientificschool/how-to-learn-cuda-programming-essentials-1flf</link>
      <guid>https://dev.to/scientificschool/how-to-learn-cuda-programming-essentials-1flf</guid>
      <description>&lt;h1&gt;
  
  
  How to Learn CUDA with hands on?
&lt;/h1&gt;

&lt;p&gt;CUDA is a parallel  computing platform and application programming interface (API) model  created by NVIDIA. When it was first introduced, the name was an acronym  for Compute Unified Device Architecture, but now it's only called CUDA. &lt;/p&gt;

&lt;h2&gt;
  
  
  Install CUDA
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Windows
&lt;/h3&gt;

&lt;p&gt;To use CUDA on your system, you will need the following installed:&lt;/p&gt;


&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;A CUDA-capable GPU&lt;br&gt;
A supported version of Microsoft Windows&lt;br&gt;
A supported version of Microsoft Visual Studio&lt;br&gt;
the NVIDIA CUDA Toolkit&lt;br&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  Linux&lt;br&gt;
&lt;/h3&gt;

&lt;p&gt;Use Ubuntu, get the NVIDIA driver, and install CUDA Toolkit.&lt;/p&gt;


&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apt-get install cuda &lt;br&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  An Interactive Course&lt;br&gt;
&lt;/h2&gt;

&lt;p&gt;If you don’t want to spend money to buy time on the AWS (e.g. Linux Accelerated Computing Instances) or Google compute engine, you can locally use GPGPUSim and Docker (see the CUDA Programming Essentials example &lt;a href="https://school.scientificprogramming.io/course/lesson/cuda-programming-essentials/7/219"&gt;https://school.scientificprogramming.io/course/lesson/cuda-programming-essentials/7/219&lt;/a&gt;) and use up to CUDA Toolkit 4.0 which is just enough to learn CUDA! You can get GPGPUSim with a detailed documented project from online. It was developed at the University of British Columbia by Tor Aamodt along with his graduate students&lt;br&gt;
The best part of it is that you can use the ready-made version on a Docker and detailed information from CUDA GPU Simulator Container, check it! Docker GPGPUSIM. &lt;/p&gt;

&lt;p&gt;To start with CUDA, you'll need a course that shows and tells you the CUDA programming by developing simple examples with a growing degree of difficulty starting from the CUDA toolkit installation to coding with the help of block and threads and so on. This course covers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GPU Basics&lt;/li&gt;
&lt;li&gt;CUDA Installation&lt;/li&gt;
&lt;li&gt;CUDA Toolkit&lt;/li&gt;
&lt;li&gt;CUDA Threads and Blocks in various combinations&lt;/li&gt;
&lt;li&gt;CUDA Coding Examples

&lt;ul&gt;
&lt;li&gt;Vector addition&lt;/li&gt;
&lt;li&gt; Matrix multiplication&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Requirements
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt; Basic C or C++ programming knowladge&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try now!
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://school.scientificprogramming.io/course/cuda-programming-essentials/7"&gt;https://school.scientificprogramming.io/course/cuda-programming-essentials/7&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Learn Scientific Programming with C++?</title>
      <dc:creator>Scientific Programming Team</dc:creator>
      <pubDate>Fri, 07 Aug 2020 03:00:24 +0000</pubDate>
      <link>https://dev.to/scientificschool/how-to-learn-scientific-programming-with-c-5ai0</link>
      <guid>https://dev.to/scientificschool/how-to-learn-scientific-programming-with-c-5ai0</guid>
      <description>&lt;p&gt;Do you wish to learn programming? There are a plenty of courses online, but hardly you will find one that takes you to the next level of programming: Introducing the “&lt;a href="https://school.scientificprogramming.io/course/scientific-programming-with-c/13"&gt;Scientific Programming with C++&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;The “&lt;a href="https://school.scientificprogramming.io/course/scientific-programming-with-c/13"&gt;Scientific Programming with C++&lt;/a&gt;” is easiest and the most innovative hands-on practical C++ course for learning scientific and research data programming! It is also a finest example of Devops with Docker, Judge-API and TTYD technologies. We used these to build this course and we took 6-8 months of Devops times to build and cater the IDE environments for you.&lt;/p&gt;

&lt;p&gt;While languages like Python and R are increasingly popular for Scientific Programming or Data sciences, C/ C++ can be a stronger choice for efficient and effective data and scientific computing. In this course, we hands-on the latest C++17 for Scientific Programming, software libraries, like MKL(Intel® Math Kernel Library), BLAS (Basic Linear Algebra Subroutines), LAPACK (Linear Algebra Package), STL (Standard template library), Boost (portable C++ library), MPI, OpenMP, CUDA and so on!&lt;/p&gt;

&lt;p&gt;There are numerous hands-on to practice the C++ programming throughout the course. Happy coding!&lt;/p&gt;

&lt;h3&gt;
  
  
  Requirements
&lt;/h3&gt;

&lt;p&gt;You will need a grasp of basic C++. It is a self-learning course with all Linux and IDE environments are provided.&lt;/p&gt;

&lt;h3&gt;
  
  
  Outcome
&lt;/h3&gt;

&lt;p&gt;Understand programming C++ basics to the advanced C++ 17&lt;br&gt;
Knowledge on developing complex C++ scientific applications&lt;br&gt;
Learn about C++ libraries STL, BOOST, MPI, OpenMP&lt;br&gt;
Be in a position to apply for Developer jobs, PhD and research positions requiring good C++&lt;/p&gt;

&lt;h3&gt;
  
  
  Get it now!
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://school.scientificprogramming.io/course/scientific-programming-with-c/13"&gt;Scientific Programming with C++&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>tutorial</category>
      <category>beginners</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>InteractiveShell.com - A Simple, Accessible Shell for Learning Linux and PowerShell</title>
      <dc:creator>Scientific Programming Team</dc:creator>
      <pubDate>Sat, 01 Aug 2020 13:27:21 +0000</pubDate>
      <link>https://dev.to/scientificschool/interactive-shell-a-simple-accessible-shell-for-learning-linux-and-powershell-4gl0</link>
      <guid>https://dev.to/scientificschool/interactive-shell-a-simple-accessible-shell-for-learning-linux-and-powershell-4gl0</guid>
      <description>&lt;p&gt;Introducing the &lt;strong&gt;Interactive Shell&lt;/strong&gt; (&lt;a href="https://interactiveshell.com"&gt;https://interactiveshell.com&lt;/a&gt;). A simple, accessible shell for learning Linux and PowerShell powered by the Scientific Programming School.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5iImjQPA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/d0jkzrjeb0g54boh8w6e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5iImjQPA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/d0jkzrjeb0g54boh8w6e.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It features easy access to four different shells:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ubuntu&lt;/li&gt;
&lt;li&gt;RHEL - Redhat&lt;/li&gt;
&lt;li&gt;SusE - OpenSuSE&lt;/li&gt;
&lt;li&gt;PowerShell&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Just click on the terminal window and get a console! Presented by the &lt;strong&gt;Scientific Programming School&lt;/strong&gt; (&lt;a href="https://scientificprogramming.io/"&gt;https://scientificprogramming.io/&lt;/a&gt;) the next generation educational platform for creating and delivering interactive and adaptive courses on advanced computing topics.&lt;/p&gt;

&lt;p&gt;Video demo: &lt;a href="https://www.youtube.com/watch?v=NDPGJaDIoyk"&gt;https://www.youtube.com/watch?v=NDPGJaDIoyk&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is built upon a C++ modified version of the TTYD, Docker and Websockets and hosted by the Developer's cloud Digital Ocean. For security reasons Ping and all outgoing traffics are  barred.&lt;/p&gt;

</description>
      <category>interactiveshell</category>
      <category>linux</category>
      <category>webdev</category>
      <category>scientificprogramming</category>
    </item>
    <item>
      <title>How to Learn Bash Shell for Data Sciences?</title>
      <dc:creator>Scientific Programming Team</dc:creator>
      <pubDate>Sun, 03 May 2020 12:38:30 +0000</pubDate>
      <link>https://dev.to/scientificschool/how-to-learn-bash-shell-for-data-sciences-1157</link>
      <guid>https://dev.to/scientificschool/how-to-learn-bash-shell-for-data-sciences-1157</guid>
      <description>&lt;h1&gt;
  
  
  Why Bash?
&lt;/h1&gt;

&lt;p&gt;Bash may not be the best way to handle all kinds of data, but there often comes a time when you are provided with a pure Bash environment, such as what we get in the common Linux-based Supercomputers and you just want an early result or view of the data before driving into the real programming, using Python, R and SQL, SPSS, and so on. &lt;/p&gt;

&lt;p&gt;Expertise in data-intensive languages comes at the price of spending a lot of time on them. In contrast, bash scripting is simple, easy to learn and perfect for mining textual data. &lt;/p&gt;

&lt;h2&gt;
  
  
  The Solution
&lt;/h2&gt;

&lt;p&gt;The course "Learn Practical Data Sciences with Bash Shell" published by the &lt;a href="https://scientificprogramming.io/"&gt;Scientific Programming School&lt;/a&gt; is perhap one of the most interesting way to put your first step in Bash! It is a self-learning course with all Linux environment(s) provided.&lt;/p&gt;

&lt;p&gt;From this interactive course almost everyone can benefit, particularly: students who want to learn Bash and the command line to improve their career prospects, researchers who want to add Bash and other command line tools to their bag of tricks, scientists who want to learn to explore and analyze the data that their lab generates. &lt;/p&gt;

&lt;h3&gt;
  
  
  Data Projects
&lt;/h3&gt;

&lt;p&gt;We created a super beginner friendly reading material that would help the people who are not very much familiar with Bash/Linux, but willing to use the power of it demonstrating four practical flat file data mining projects each with a different objective function: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;University ranking data, &lt;/li&gt;
&lt;li&gt;Facebook share data, &lt;/li&gt;
&lt;li&gt;statistics of crimes data and &lt;/li&gt;
&lt;li&gt;Shakespeare-era plays and poems data (large-scale text mining). &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The course has been organised in such a way that if a reader hasn’t used Bash before, he can skip the projects and get to tutorials part. The tutorial section introduces him with bash scripting, regular expressions, AWK, sed, grep and so on.&lt;/p&gt;

&lt;h3&gt;
  
  
  Playgrounds
&lt;/h3&gt;

&lt;p&gt;The &lt;strong&gt;Scientific Programming School&lt;/strong&gt; allowed  to insert video tutorials, code playgrounds, and images all in one lesson.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FDfN8MNo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/1%2A-a_JQehy7JhV2YNQd_opHg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FDfN8MNo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/1%2A-a_JQehy7JhV2YNQd_opHg.png" alt="Bash Playgrounds demo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Playgrounds are powered by Docker and a thin client client called- isolate.&lt;/p&gt;

&lt;h3&gt;
  
  
  Interactive Shell
&lt;/h3&gt;

&lt;p&gt;The best best part of the course is the "Interactive Shell"  in all three OS flavours (Ubuntu, RHEL and SuSE), feel free to choose your flavor and practice Bash commands! &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iBTh2cu4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://miro.medium.com/max/1400/1%2ACretQ4HNQszqIXO4lRIQHQ.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iBTh2cu4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://miro.medium.com/max/1400/1%2ACretQ4HNQszqIXO4lRIQHQ.gif" alt="Interactive shell demo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For security purposes, any outgoing traffics from the shell container are stopped, which means ping wouldn't work. The interactive shells are powered by Docker.&lt;/p&gt;

&lt;h3&gt;
  
  
  Animated Video Lectures
&lt;/h3&gt;

&lt;p&gt;There have been many options to create an online video course, but we wanted to produce contents that should be interesting to watch and run! The course was voiced by a voice artist from Australia and we produced the animations with the help of Easy Schetch Pro 3.0. &lt;/p&gt;

&lt;h3&gt;
  
  
  Live classes!
&lt;/h3&gt;

&lt;p&gt;We also introduced a Zoom live class lecture series on this course through which we will explain different aspects of Bash in Data analytics! Class schedules are advertised on the course homepage. For participating the live classes no registration/ downloads required. It is powered by the Zoom Web SDK.&lt;/p&gt;

&lt;p&gt;We put so much Devops and efforts (6-8 months) to put up the Linux and Bash course online "&lt;a href="https://school.scientificprogramming.io/home/course/learn-practical-data-sciences-with-bash-shell/2"&gt;Learn Practical Data Sciences with Bash Shell&lt;/a&gt;", give it a try! &lt;/p&gt;

</description>
      <category>bash</category>
      <category>linux</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to Learn Scientific Computing Essentials with Code Playgrounds?</title>
      <dc:creator>Scientific Programming Team</dc:creator>
      <pubDate>Fri, 10 Apr 2020 09:59:01 +0000</pubDate>
      <link>https://dev.to/scientificschool/how-to-learn-scientific-computing-essentials-with-playgrounds-3fb6</link>
      <guid>https://dev.to/scientificschool/how-to-learn-scientific-computing-essentials-with-playgrounds-3fb6</guid>
      <description>&lt;h1&gt;
  
  
  What is Scientific Programming?
&lt;/h1&gt;

&lt;p&gt;Scientific programming deals with solving scientific problems with the help of parallel/ cluster computers, so as to obtain results more quickly and accurately. Computers have long been used for solving complex scientific problems — however, advancements in computer science and hardware technologies over the years have also allowed students and academicians to play around with robust scientific computation tools. Scientific programming using a cluster of computers joins computational powers of the compute nodes to provide a more combined computational power. &lt;/p&gt;

&lt;h1&gt;
  
  
  Hands-on Scientific Computing Essentials
&lt;/h1&gt;

&lt;p&gt;This is the first ever hands-on scientific programming course that uses the High Performance Computing (HPC) systems software stack: Slurm, PBS Pro, OpenMP, MPI and CUDA.   The goal main of this course is to introduce you with the HPC systems and its software stack. This course has been specially designed to enable you to utilize parallel &amp;amp; distributed programming  and computing resources to accelerate the solution of a  complex problem with the help of HPC systems and Supercomputers.  You can then use your knowledge in Machine learning, Deep learning, Data Sciences, Big data and so on.&lt;/p&gt;

&lt;h1&gt;
  
  
  You will learn
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;   Scientific programming in HPC clusters computers and is benefits, Supercomputing history and examples.&lt;/li&gt;
&lt;li&gt;   Components of a High Performance Systems (HPC) cluster, Properties of Login  node(s), Compute node(s), Master node(s), Storage node(s), HPC networks  and so on.&lt;/li&gt;
&lt;li&gt;   Introduction to PBS, PBS basic commands, PBS &lt;code&gt;qsub&lt;/code&gt;,  PBS &lt;code&gt;qstat&lt;/code&gt;, PBS &lt;code&gt;qdel&lt;/code&gt;  command,  PBS &lt;code&gt;qalter&lt;/code&gt;, PBS job states, PBS variables, PBS  interactive jobs, PBS arrays, PBS Matlatb example&lt;/li&gt;
&lt;li&gt;   Introduction to Slurm, Slurm commands, A simple Slurm job, Slurm distrbuted MPI and  GPU jobs, Slurm multi-threaded OpenMP jobs, Slurm interactive jobs,  Slurm array jobs, Slurm job dependencies&lt;/li&gt;
&lt;li&gt;   OpenMP basics, Open MP - clauses,  worksharing constructs, OpenMP- Hello  world!,  reduction and parallel &lt;code&gt;for-loop&lt;/code&gt;,  section parallelization,  vector addition, MPI - hello world! send/ receive and &lt;code&gt;ping-pong&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;   Friendly guide to the GPUs - graphics  processing units, GPU Programming - CUDA, CUDA - hello world and so on!&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Requirements
&lt;/h1&gt;

&lt;p&gt;It is a self-learning course with all Linux environtments provided.&lt;br&gt;
    Foundations of C/C++&lt;/p&gt;

&lt;h1&gt;
  
  
  Virtual cluster
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eMUy2ln7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/c69aasnatyctfhb4a6hz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eMUy2ln7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/c69aasnatyctfhb4a6hz.png" alt="Virtual HPC cluster"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For this course, we created a small private virtual cluster with Docker technology. It has the following components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;slurmctld: master node/ login node&lt;/li&gt;
&lt;li&gt;   mysql and slurmdbd: database nodes&lt;/li&gt;
&lt;li&gt;   c1: compute node 1&lt;/li&gt;
&lt;li&gt;   c2: compute node 2&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See further details: &lt;a href="https://developer.scientificprogramming.io/how-do-we-deploy-a-virtual-cluster-for-the-course-scientific-computing-essentials-ck8yaympy00qzmys1isazmmmr"&gt;How do we deploy a virtual cluster for the course "Scientific Computing Essentials"?&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Outcome
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt; Hands-on learning capability of Scientific computing&lt;/li&gt;
&lt;li&gt;   HPC system's basic components&lt;/li&gt;
&lt;li&gt;   HPC software stack&lt;/li&gt;
&lt;li&gt;   HPC job schedulers and batch systems (Slurm and PBS Pro)&lt;/li&gt;
&lt;li&gt;   Introduction to parallel programming concepts: Open MP and MPI&lt;/li&gt;
&lt;li&gt;   GPU programming: CUDA&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Points to note
&lt;/h1&gt;

&lt;p&gt;We initially released this course on the Educative, but the platform do not yet support the relevant playgrounds (e.g., CUDA, virutal HPC, MPI and so on). Therefore re-published at the &lt;strong&gt;Scientific Programming School&lt;/strong&gt;, which is a specialized platform for scientific coding. It's much better and interactive! Also forget to mention that the course is now FREE!&lt;/p&gt;

&lt;h1&gt;
  
  
  Why wait?
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://school.scientificprogramming.io/course/scientific-computing-essentials/5"&gt;Scientific Computing Essentials @ Scientific Programming School&lt;/a&gt;&lt;/p&gt;

</description>
      <category>hpc</category>
      <category>cuda</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
