You are on page 1of 23

Computer Programming 1

1
Introduction to Computing and Programming

Module 001 Introduction to Computing and


Programming

“The future is always beginning now.”


– Mark Strand.

Have you ever wondered about the ever-growing world? Have you been
fascinated by the massive field of Technology? This introductory module will
give you insights in the diversities in the field of Computing and
Programming. We will explore the different paradigms in Software
Development and engage you to concepts that will enable you to study,
utilize and master any programming language you will like in the future.

At the end of this module, you will be able to:


1. Identify the events that led to the development of computing and
programming
2. Differentiate hardware, software and development
3. Identify the domains of computer development
4. Identify the features and developers of the infamous programming
languages

Researching beyond the coverage of this module is highly encouraged to


supplement your understanding of the topics covered. Always, think and see
beyond the box.

So, what are we waiting for? Let us now explore the world of Computer
Programming.

Course Module
Introduction

Computers have a long history of progress from the creation of the Chinese-
tool abacus at around 3,000 B.C. to the current generations of gaming and
enterprise peripherals that powers massive data centers and cloud servers.
Handheld devices are also now a necessity for modern life. Even Nano-scaled
machineries and chips made its way to the market as computer devices
shrink in size throughout the years. What we then call a storage device the
size of a refrigerator is now just the size of a wallet. These amazing
evolutions in technology leads the life of modern man.

Each year, papers about advancements in Physics, Medical Sciences,


Agriculture and other sciences make their way to publications and journals.
These advancements are made possible because of technology. Stem-cell
research, oncology, artificial intelligence and hydroponics are some of the
studies that were made possible using technology.

People cannot live without technology. Imagine a world without computers.


Therefore, no televisions, mobile phones, radios or anything which relies on
electricity and circuits. Can you live a life of ease? People have become
dependent on technology. They cannot live with it.

Now the question is what drives technology to prosper to have what we have
now and will probably have soon? Is it our demand to automate basically
everything around us? Is it our need to communicate with one another? Is it
our need to entertain ourselves while being physically away from everything
that can distract us including people? Is it our need to solve problems that
time proven difficult to solve?Nowadays these questions are a chicken-and-
egg situation. The questions are moot. It does not matter anymore what the
answer is. We need technology, we all love it.

Hardware, Software, Development?!

When we talk about computers, we all deal with hardware, software,


development and other jargons we probably do not know how to answer if
asked. It is sometimes confusing when people ask us about these things and
all we have for them are what we can observe in our environment. You have
a mouse; that is a hardware. You have a copy of Microsoft Office;that is a
software. All but that. It is imperative that we settle these things and have a
strong grasp on classifying not only peripherals as hardware and application
as software, but also which are peripherals, applications or utilities. This
knowledge will be our entry point to Computing and Programming.
Computer Programming 1
3
Introduction to Computing and Programming

In addition, equipping you with this knowledge will make you create critical
decisions when you are about to develop an application. Will you need to
support x64 version of Microsoft Windows? Will you need to setup a port of
your application to support Macintosh? These and many more questions will
be factored in once you know about your target platform. A platform is any
device on which an application was specially designed to run. A platform can
be a personal computer running Windows. It can also be a personal computer
running Linux. Typically, when we speak of a platform, we usually refer to a
specific device running a specific operating system.

Figure 1. Components of Computer System

Hardware

Since you are taking this course in computing, you probably know already
about the basic parts of computer. We categorize those parts of computer
into input-process-output-storage(IPOS). You need to know about the
categorization to better classify the parts of the computer which you will use
in developing an application. You will use at least one input device, one
process device, one output and one storage device when running your
application. This will let the user be immersed in fully experiencing the
capabilities of your application.
Course Module
Input devices are the parts of the computer which allows the user to provide
signals and information to the processor. This includes the mouse, keyboard,
scanners and sensors. The mouse is the part of the computer which allows the
user to easily navigate within an application. The keyboard is the part of the
computer which allows the user to enter textual values in applications. The
scanner is the part of the computer which takes digital copies of any prints,
usually texts and images printed on a bond paper. The sensors are
specialized devices attached or embedded in a computer to take different
information. We have fingerprint sensor to take fingerprint samples and
optical sensor to take images of our iris, microphone to take audio samples,
and camera to take images.

Biometric sensors are sensors which takes biometric samples like our voices,
fingerprints, iris scans and facial samples. Included in this category are the
fingerprint sensors and optical sensors. These are typically used in information
security to protect sensitive information or safeguard objects.

Process devices, processors as we call them¸ are the parts of the computers
which performs massive calculations on our entered data through the input
devices. They maintain the central functions of the computer. We are all
familiar with the main part of the computer under this category – the central
processing unit or CPU as we call it. The CPU oversees to fully integrate all
parts of the computers under all categories. It is also in charge of carrying out
instructions sent by the running applications. Because of its massive
capabilities and functions, this part is called the brain of the computer by
which losing this will render the entire computer useless. Included also in
this category is the part of the computer which processes the graphical
outputs – the graphics processing unit or GPU. The GPU enhances the
capabilities of the CPU by rendering graphical information to the output
devices.

There is a common misconception with the term central processing unit. What
non-computer literate persons call the CPU is the casing that houses the
motherboard and its peripherals including the actual CPU, or the casing
including the peripherals within. However, the actual CPU is the small square
chip found in the center of the motherboard housed by a cooling unit that
maintains optimal thermal condition for the CPU.

Output devices are the parts of the computer which presents intellectual
displays to the user, both digital and in print. The monitor and printer belong
in this category. The monitor displays the visual information processed by
the CPU. The GPU is often utilized as well to present displays in the monitor.
The monitor can be installed as part of the computer, like the case in laptops
Computer Programming 1
5
Introduction to Computing and Programming

and netbooks, or an external unit, like the case in Personal Computers and
Mac. The printer converts the digital information from the CPU and renders
them on a physical object. The typical printer and 3D printers are some
examples of printers. The main difference between the two is where the
information is rendered; in a typical printer, the information is rendered on a
bond paper, whereas in a 3D printer, the information is rendered as a 3D
object. Cool, right?

Storage devices are the parts of the computer which stores data and
information for later use. These data and information can be stored
permanent or temporary. Included in this category are the hard drives, flash
drives (or pen drives) and the random-access memory (RAM). Hard drives
and flash drives provide permanent storage. Hard drives contain a specialized
disk which is utilized as a by-fragment storage where data and information
are stored in a sector of the disk. By-fragment means that the data and
information stored in a hard drive are distributed in separate sectors. A flash
drive does not contain any disk component, but rather has a chip called flash
memory. Since there is no physical disk where the data will be stored or
retrieved, flash drives run faster than hard drives. The RAM is the component
found in the motherboard that provides temporary storage for the CPU while
the CPU processes instructions of different applications. Think of the RAM as
coin purse where you place coins of different sizes for future yet immediate
use. In this analogy, the coins are used within the day they are stored.

Familiarizing yourself with the different categories of the parts of computers


and which parts belong to which category will help you with determining in the
future what libraries you will use. Libraries will be taught in these coming
weeks.

Software

The computer is not only composed of the hardware parts. Though when we
refer to the computer, we usually refer to its hardware parts, without its
software counterpart, the computer is just a pile of electrical circuits.
Software are the intangible components of the computer. They make the
computer useful since the software is the reason why the computer does
what it does. People usually misunderstands software and application since
they are used interchangeably in daily conversation. However, you will find
out that this is not the case regardless of how true the previous statement is.

Course Module
The software is just a classification of all the intangible programmed
components of the computer. In this group, we have operating systems,
firmwares, applications and utilities.

The operating system is environment that have the capability to run


firmwares, applications and utilities to run. These kinds of software have the
direct access to the hardware components. Computers usually run only one
operating system. Microsoft Windows, Macintosh and Linux belong to this
category.

It is possible for computers to run more than one operating systems through
two methods. Dual Boot enables a computer to run two different operating
system by configuring the master boot sector of the BIOS. Virtualization
enables the user to run multiple operating systems within a parent operating
system.

Firmwares are small-sized software that enables the different hardware


components of the computer communicate with each other. Think of these
kind of software as translators. Each hardware has its own “language” that
the operating system does not know how to interpret. Firmwares enable the
operating system to recognize the hardware components and assign
appropriate resources to fully utilize the capabilities of the hardware. Drivers
can be classified under firmwares.

When we talk about software, we usually mean an application. Applications


are software that perform specific tasks for the user. The term application is
still a diverse classification of different specialized software categorized by
the general tasks they perform. Included in this classification are the word
processing applications like Microsoft Word and OpenOffice Writer,
spreadsheet applications like Microsoft Excel and OpenOffice Spreadsheet,
multimedia applications, databases, and office productivity applications.

Utilities are small-sized application usually kilobytes to some megabytes in


file size. These perform small-time tasks for the user such as taking notes,
setting an alarm, connecting to networks and retrieving specific information
about the computer. These kinds of software are directly tied to the
operating system and usually comes as part of the operating system.

You may learn more about hardware and software in any course about
Computer Fundamentals.
Computer Programming 1
7
Introduction to Computing and Programming

Development

You probably enrolled in this course without knowing the difference


between development and programming. There is a subtle difference which
people, even IT practitioners tend to disregard in their profession.

Computer Programming is the act of writing codes that the computer can run
using a specific programming languages. This may or may not include the
compiling or interpreting process. Characteristically, programming is geared
towards a specific task such as calculating the Gaussian difference of pixels.
The end products of programming are source codes and executables. Source
codes are files which contains the codes written in a programming language.
They have the file extensions of their respective programming language.
Source codes written in Python have the file extension of .py; all variants of C
language use the file extension C. You may refer to the Table 1 for the
complete listing of the common programming languages.

Executables are the run able versions of the source codes. They are only
available to all compiled programming languages. Windows executables have
the file extension of .exe like cmd.exe, while Linux executables typically does
not use any file extensions like update-grub.

Programming Language File Extension

Active Server Pages .asp

ASP.NET .aspx

C, Objective-C .c

C++ .cpp

C# .cs

Java .java

PHP .php

Python .py

Ruby .rb

Course Module
Visual Basic, Visual Basic.NET .vb

Table 1. File Extensions of Common Programming Language Source Codes

Computer Development refers writing, building and deploying software under a


domain. Domains under Computer Development includes, but is not limited to, Web
Development, Desktop Application Development and Mobile Application
Development. Computer Development is accompanied by Software Development
Lifecycle, or commonly referred to as SDLC. SDLC is a set of systematic routine in
planning to maintenance of software applications. Computer Development may
utilize more than one programming language and a few frameworks.

The main difference between programming and development is their coverage.


Programming normally involves small-scale applications or modules, whereas
development involves medium- to enterprise-scale applications. Computer
Development internally includes programming on the process, hence the former
covers the latter.

Domains of Computer Development

Since we have talked about Computer Development, you also need to know
about the different domains in Computer Development. Knowledge about the
different domains of Computer Development shall open the doors for you to
have an initial idea of the paths you can take in your chosen academic
program. Not only will you know the difference between each domain, but
you will also have grasp on what encompasses them through their covered
platforms.

Web Development

Let us start with the most used domain, Web Development. Web
Development utilizes the internet, particularly the World Wide Web. The
World Wide Web (WWW) is a subset in the internet where documents are
relating to other documents using hypertext links. These documents can come
in form of file documents, media files, markup language documents, script
files and others.

The most common of which is the Hypertext Markup Language, or HTML.


HTML presents a simple information system where the user browses for
specific topics. They are accompanied by some scripting languages including
JavaScript and VBScripts. They are designed using Cascading Stylesheet, or
CSS. However, HTML are static files which does nothing but present
information in form of texts and media.
Computer Programming 1
9
Introduction to Computing and Programming

To create dynamic versions of HTML, we have Front-end Web Development


and Back-end Web Development. Front-end Web Development focuses on
using client-side scripts to create interactive and dynamic user interface. The
most common front-end web development scripting language is the
JavaScript through several JavaScript frameworks like ReactJS and AngularJS.
Back-end Web Development focuses on using server-side scripts which run on
the hosting server. These scripts provide database integration and file
system management capabilities that cannot run on the user’s computer
without compromising security. Some programming languages under back-
end development are ASP.NET, PHP, Ruby on Rails (RoR) and Java Server
Pages (JSP).

The advantage of Web Development over other domains is its flexibility.


Since majority of the platform can access the internet, in turn, they can also
access the by-product of Web Development. It is platform-independent hence
the “code once, run all” ideal is applicable to this domain.

There exists a hybrid between Front-end Web Development and Back-end Web
Development called Full-Stack Development. This hybrid domain covers both
the front-end “stack” and the back-end “stack” of Web Development mastering
both the vast client-side script frameworks and diverse server-side scripts.

Back-end Development

Back-end Development deals with server configurations. A server is a


specialized computer system that is oriented to serve a lot of services to
different client computers. A client computer can be your personal computer.
Those scripts are operating system-specific which instructs the server to
perform a series of interconnected actions such as starting a specific service,
or even remotely shutting down client computers.

Microsoft Windows uses PowerShell scripts for Back-end Development.


PowerShell is malleable enough to run even on a client computer. PowerShell
considers the access level of the current user. It also takes advantage of
Active Directory, or AD. AD is a service that provides server-controlled
directory for Microsoft Windows domain networks.

Course Module
Linux uses bash scripts. A bash script is a small script that uses the built-in
terminal commands. Linux is well-known for being programmer friendly
since everything including the kernel is accessible to the user. A lot of
configurations and customizations are available. This makes it flexible for
bash scripts to utilize and even exploit.

The advantage of Back-end Development over other domains is its direct


access to the running operating system. Though platform-dependent, scripts
written for this can-do tasks that is available to the operating system with the
least restriction.

Mobile Development

Mobile Development is the blooming domain of Computer Development. This


domain deals with the growing number of smart devices which includes
mobile phones, smart televisions and wears.Per Statista, a company that
conducts enterprise statistical study using open data and enterprise
espionage, there will be about 2.32 billion smartphone users worldwide in
2017, and about 2.87 billion in 2020. Considering this number of smartphone
users alone, the marketability of mobile application is totally open-entry.
Mobile Development is normallyplatform-dependent meaning your
developed mobile application will only run on a specific range of smart
devices.

For Android devices, we have Android Framework using Java as the base
programming language. This includes smartphones, car smart devices, smart
TVs running Android-base operating system, and Android wears. For iOS
devices, we have xcode and Objective-C. This includes all variants of iOS
devices including Apple wears.

Though normally platform-dependent, due to the high demand of porting,


there have been a multi-platform versions of development environment for
mobile development. The big name for this is mono develop which is a
framework that works on all well-known platforms like Microsoft’s, Apple’s
and Linux’s desktop, mobile, and wearable devices. To easily integrate mono
develop in writing codes, Xamarinis also big name to consider. Xamarin is an
integrated development environment (IDE) which houses mono develop as
its base framework.

Data Science

Going away from the typical development domains, Data Science deals on
presenting data in a user-understandable manner. This includes charts,
nodes and maps. This domain aims to present data in which the user can
Computer Programming 1
11
Introduction to Computing and Programming

dynamically change the perspective like from local business perspective to


worldwide coverage.This domain is typically not open source so looking for a
place to start on your own without any enterprise support is virtually
difficult.

Under this domain we have Tableau and Salesforce Wave to name some
environments.

Figure 2. Cía, J. F. (2015). Tableau against the world: the battle of Business Intelligence heats up
[Online Blog]. Retrieved from https://bbvaopen4u.com/en/actualidad/tableau-against-world-battle-
business-intelligence-heats

Application Development

The bread to the crumbs of this entire course is Application Development.


This domain deals with the creation of various applications for desktop and
server computers. Though we are talking about applications for desktop and
server computer, we are not limited to local connectivity between them. We
are also talking about the involvement of the internet to provide various
services to other users.Under this domain we have Desktop Application
Development, Game Development and Cloud Application Development.

Desktop Application Development deals with the creation of discrete


applications for desktop computers. This subdomain has a lot of
categorization based on their general use like word processing, spreadsheet
and multimedia as mentioned in the previous topics. Programming languages

Course Module
used in this subdomain varies depending on the target interface – Graphical
User Interface (GUI) and Command-line User Interface (CLI).

GUI Desktop Applications present the users with easy to navigate and
manipulate controls for convenience since they support keyboard and mouse
interactions. Programming languages used under this subdomain include,
but is not limited to C++, C# (read as C Sharp) and VB.NET. CLI Desktop
Applications present the user with stream-line experience. Clear majority of
CLI Desktop Applications only support keyboard interactions which gives the
users all the flexibility he/she needs to control the actions of the application
continually. Programming languages used under this subdomain include, but
is not limited to, C, C++ (read as C plus plus), C#, VB.NET, Python and Ruby.

Game Development deals with the creation of computer games as means of


entertainment and sometimes education. This subdomain deals heavily with
the integration of various scripts to manipulate objects called models and
sprites. Given its extensive coverage, Game Development usually involves
more than one person – the developer, the model artist, the sprites artist and
the sound artist. Programming languages used in this subdomain include, but
is not limited to, C++ and C#.

Cloud Application Development deals the hybrid between Web Development


and Desktop Application Development. This subdomain breaks the barrier
between the interaction with the web application and the server and clients
running instances of the web application. With a click of a button in the web
application, the server can execute local tasks such as turning on a client
computer connected to it, scheduling shutdown timeout for a running
service, and automate various service calls. Programming languages used in
this subdomain include, but is not limited to, JavaScript, PHP, ASP.NET and
C#.

The advantage of Application Development over the other domains is the


utilization of a computer’s resources to perform process-heavy tasks and
calculations.

API Development

Application Program Interface Development, or referred easily to as API


Development, deals with the creation of libraries and modules to help
developers create applications that can interact with a specific application
created by other developers. This breaks the barrier of using the existing
utilities of a well-known application to expand the capabilities of an
application being developed. To make this clearer, APIs are used to reuse
services from web applications like the social media giant Facebook and the
search engine giant Google. API developers create a linkage for their
Computer Programming 1
13
Introduction to Computing and Programming

applications for other to exploit like using Google API to login in your
application using your Google account, or Facebook API to automatically post
pictures to your Facebook timeline directly from your created camera
application.

This domain is developer-friendly and is geared towards developers. Think


of this as a module or library created by developers for developers.
Programming languages used in this domain vary on the base programming
language of the hosting application. However, heavy knowledge in JavaScript
Object Notation (JSON, read as Jay-son) and Extensive Markup Language
(XML, read as ex-em-el). The advantage of API Development over the other
domains is its being developer-friendly and capability to exploit existing
services of running applications.

Embedded Systems Development

The last domain under Computer Development is the Embedded Systems


Development. Embedded Systems Development deals with programming
instructions to readily-made hardware components, typically a
microcontroller. Developing firmwares can be considered as part of this
domain since firmwares are developed for hardware components. This
domain is continually growing since a lot of major companies and startups
are moving towards the Cloud and Internet of Things (IoT). The Internet of
Things is a network of interconnected embedded systems through the
internet. This includes basic analysis of data coming from different sensors to
advanced tracking of various sentries to create viable predictions.

This domain is probably the most interactive among the rest since not only
are you dealing with the software side of the development, but you will also
be engaging in the hardware aspects of the development. In addition, a lot of
automation can be done through Embedded Systems Development. Familiar
with Home Automation, Automotive Automation and Industrial Automation?
They are all made possible thanks to Embedded Systems Development. The
programming languages used primarily in this domain are C, C++, C# and
Java.

Course Module
Infamous Programming and Scripting Languages

Since you are now familiar with the different domains of Computer
Development, let us now talk about the specific programming and scripting
languages used across those domains. We are going to talk about the top and
commonly used programming languages in the Open Source community.

The data that will be presented from this point came from GitHub – the top
open source repository in the IT industry as of 2017.

JavaScript

JavaScript is a scripting language used for Web Development. It was first


introduced by Brendan Eich in 1995 as an attempt to add interactive user
experience to static web pages in the Netscape Navigator browser. His
attempt paved the way to modern web applications where modules within
the application can directly interact with each other without requiring the
page to reload for every action committed.

Figure 3. Padilla, D. (2012). Brendan Eich [Online Image]. Retrieved from


https://blog.mozilla.org/press/files/2012/04/Thumbnail-Full_Eich_04.jpg

JavaScript is datatype independent, meaning you can insert any value of


varying datatypes to its variables. There exists no restriction in the usage of
its variables hence its flexibility. Though many would argue that such thing
presents problematic consequences, this shortcoming was overcome by
JavaScript because of its being lightweight having no resource checking for
its variables. Some developers impose naming convention for JavaScript to
exploit its variant datatype.
Computer Programming 1
15
Introduction to Computing and Programming

Because of the cleverness that JavaScript displayed during its time, various
demands for adaptation have risen. Ecma International Organization
presented a standardization of Netscape JavaScript for other browsers which
was called the ECMAScript.

Since 2000, JavaScript has been seen to have dominance over other
languages present especially in Web Development. Until now, JavaScript
holds the Top 1 place in language usedat GitHub for 2016.

JavaScript the scripting language is not, in any way, related to Java the
programming language. When JavaScript was created in 1995, Java is already
the most used programming language for client-side applications. This famous
scripting language was named JavaScript to capture the same success that Java
has during those times.

Java

Java is a programming language developed by James Gosling, Patrick


Naughton, Chris Warth, Ed Frank and Mike Sheridan at Sun Microsystems in
1991. During this time, the internet and the World Wide Web have made its
way to conventional market where static web pages were used to present
various information to their users. Java was the successful attempt to bring
dynamic forms in web pages.

Figure 4. Campbell, P. (2008). James Gosling [Online Image]. Retrieved from


https://commons.wikimedia.org/w/index.php?curid=3672205

Course Module
Java was originally designed with a simple idea in mind – to create a portable
platform capable of running under different operating systems – which was
promoted by their original slogan “Write once, run anywhere”.

Suns Microsystem’s original slogan is “Write once, run anywhere”. However due
to the different issues that surrounds Suns Java platform, which eventually
refuted their claim of portability, Suns riposted “Write once, debug
everywhere”.

Now, Java has made its way to different platforms including the original
World Wide Web, enterprise solutions, mobile devices and smart devices.
Java ranked as Top 2 in the most used language in GitHub as of 2016.

Python

Python is the first interpreted programming language covered in this module.


Python was designed by Guido van Rossum at Python Software Foundation
in 1991. It was designed with the idea of readability focusing on whitespace
indentation to definecode blocks, going against well-known programming
languages like C and C++ that use curly brackets.

Figure 5. Rossum, G. Guido van Rossum [Twitter Profile].


Retrieved from https://twitter.com/gvanrossum

Because of the extensive library that Python has, it is generally used in


machine learning algorithms and application development. Several
extensions have been created for Python to extend its features including the
ability to create graphical user interface.By far, Python ranks as the Top 3
most used language in GitHub as of 2016.
Computer Programming 1
17
Introduction to Computing and Programming

Ruby

Figure 6. RubyWorld Conference Executive Committee. (2011).Yukihiro Matsumoto [Online Article].


Retrieved from http://2011.rubyworld-conf.org/en/program/Key-1/

Ruby is another interpreted programming language alongside Python.Ruby


was designed and developed by Yukihiro “Matz” Matsomoto in 1990 and was
publicly released in 1995. Ruby is completely open source. Developers not
only receive free use of Ruby in their development, but also they have the
right to copy, modify and distribute any part of Ruby as they like provided
they keep it free-of-charge.

The idealization behind Ruby is “a scripting language that was more


powerful than Perl, and more object-oriented than Python,” as said by
Matsomoto in “An Interview with the Creator of Ruby” in the late 2001. Ruby
sports its characteristic as a flexible language allowing the users to alter any
of its part. Unfortunately, Ruby is known to feature a single inheritance so
classes made cannot have more than one parent.

But even though this small shortcoming, Ruby has a lot of implementations
including Ruby on Rails framework made for Web Development.

PHP

PHP is a server-side programming language written for Web Development. It


was designed by Rasmus Lerdorf and developed together with The PHP
Development Team of Zend Technologies in 1994. The abbreviation PHP
originally meant Personal Home Page, but was changed to PHP Hypertext
Preprocessor.

Course Module
Figure 7. Lerdorf, R. Rasmus Lerdorf [Twitter Profile].
Retrieved from https://twitter.com/rasmus

PHP is an easy-to-use programming language in Web Development. It easily


creates dynamic pages ideal for time-constrained development. It also
supports dynamically and programmatically generated images. In addition,
PHP has vast number of functions that include file interactions, uploading
files, sessions and cookies, and remote file handling. PHP remained Top 5 of
the most used language in GitHub as of 2016.

C++

C++ is a general-purpose high-level lightweight programming language


mainly used for Application Development. C++ was designed by Bjarne
Stroustrup in 1979. It can be called an extension of C programming language
equipped with object-oriented development paradigm, which was originally
called C with Classes. C++ became its name in 1983 when the original C with
Classes programming language was added with derived classes, strict data
typing, inlining and default parameters. The “++” in its name served as an
indicator that C++ is the successor of the original C programming language.

C++ will be further discussed in the succeeding modules of this course.

Figure 8. Computer History Museum. (2015). Bjarne Stroustrup [Online Biography].


Retrieved from http://www.computerhistory.org/fellowawards/hall/bjarne-stroustrup/

C++ still uses pointers and references which are originally available to C. In
addition, a lot of code optimization is present in C++ which kicks in during
the compiling stage of the source code. Also, C++ supports both imperative
paradigm and object-oriented paradigm.
Computer Programming 1
19
Introduction to Computing and Programming

The person credited for naming C++ as such is Rick Mascitti. He intended to use
“++”, an operator in the original C programming language that means “+1”, in
the naming. His thoughts are that C++ is the newer version of C.

C#

C# is one of the programming languages that is both imperative and object-


oriented. Released by Anders Hejlsberg’s team in 2000, C# is well-known
programming language versatile for Application Development, Web
Development and Game Development. It is also now conquering the domain
of Mobile Development through Xamarin, to name one.

Figure 9. Hejlsberg, A. Anders Hejlsberg [Twitter Profile].


Retrieved from https://twitter.com/ahejlsberg?lang=en

C# made its first appearance in Microsoft’s Visual Studio.NET 2002. Its name
was a wordplay like C++, wherein the “#” indicates further increment of the
value of C++; “#” is four (4) plus “+” signs.

Go

Go, sometimes referred to as golang, is an open source programming


language created at Google by Robert Griesemer, Ken Thompson and Rob
Pike in 2007. Go is a compiled programming language having the same
syntax as C. Go has been made a public open source project in 2009.

Course Module
Figure 10. Robert Griesemer [Research at Google Profile].
Retrieved from https://research.google.com/pubs/author96.html

Go is ideal for Web Development and Application Development. Go sports its


concurrency, ease-of-use, fast compilation, extensive security and efficiency
features. Go also sports its HTTP/2 Server Push which is more secure and
efficient that the previous versions HTTP/1.

Go programming language is currently growing in number usage which


currently stands at Top 10 most used languages in GitHub. GitHub is seeing a
93% growth in the number of pushes in their repositories.

Shell

Shell is a scripting language for Linux operating system which is run in the
terminal of the system. Shell is a CLI language capable of extending the
running services by committing timely executed commands in the terminal.
There are a few versions of Shell including, but is not limited to, the Bourne
Again Shell (or bash), the C Shell (or csh), the remote shell (or rsh), the Korn
Shell (or ksh) and the secure shell for SSL telnet connections (or ssh).

Shell is used primarily by Linux Administrators and Network Administrators


to manage the instances of Linux distros over an enterprise architecture.
Shell ranks Top 11 in GitHub’s most used languages as of 2016.

Objective-C

Objective-C is another variant of the original C programming language with a


new twist, addition of Smalltalk-style message passing between processes. It
was designed by Tom Love and Brad Cox in 1980.

Objective-C is an object-oriented programming language like C++ however it


sticks to adopting the ideologies of the original C language. Objective-C ranks
Top 12 of the most used languages in GitHub for the year 2016.
Computer Programming 1
21
Introduction to Computing and Programming

Objective-C is used by Apple as the main programming language that compiled


to OS X and iOS operating systems, and Cocoa and Cocoa Touch APIs.

Glossary
Abacus: A simple non-electrical device used for calculating values using
beads.
Central Processing Unit (CPU): a processor that carries out the instructions
of an application.
Client-side [scripts]: scripts that run in the user’s web browser which
provides interactive user experience.
Concurrency [programming]: a feature in programming languages which
allows to run several tasks simultaneously without any dependency in the
number of processors.
Development: act of writing, building and deploying applications which may
involve more than one computer programming language.
Extensive Markup Language (XML): a specially crafted message digest to
deliver data between to different applications regardless of platform using
Markup Language (using user-defined markup tags like those used by
HTML).
Flash drives: a storage device that utilizes the use of flash memory to store
permanent data and information.
Graphics Processing Unit (GPU): a processor that enhances the capabilities
of the central processing unit through rendering graphical information.
Hard drives: a storage device that utilizes the use of disks to store
permanent data and information.
Hardware: an electrical component of any computer built with circuits.
Internet of Things (IoT): a network of internet-connected devices, vehicles,
establishments and other embedded systems.
Input [devices]: parts of a computer that takes data for the computer to
process.

Course Module
JavaScript Object Notation (JSON): a specially crafted light-weight message
digest to deliver data between to different applications regardless of
platform using JavaScript notation (using curly brackets).
Microcontroller: a small credit card-sized programmable computer using
integrated circuits that has input and output pins for general-use.
Output [devices]: parts of the computer that displays information to the
users.
Platform: any Personal Computer, Macintosh, Android Wear or other
devices where an application can run.
Port [of an application]: a specialized version of an application designed for
a specific platform which originally not supported.
Porting: act of rewriting existing working codes of a specific platform to
support other platforms which is not supported by the current codes.
Process [devices]: parts of the computer that performs calculations which
then are presented to the users as intellectual information.
Programming: act of writing codes using a specific computer programming
language.
Server-side [scripts]: scripts that run in the hosting server which provides
database integration and heavy data crunching.
Software: any intangible computer file or group of files that performs tasks
and computations collectively.
Storage [devices]: parts of the computer that stores temporary and/or
permanent information.
Variant [datatype]: a datatype that does not restrict the kind of values
stored to the variables.

References and Supplementary Materials


Books and Journals
Marjin Haverbeke; 2015; Eloquent JavaScript, 2nd Edition; United States of
America; William Pollock
Herbert Schildt; 2014; Java: A Beginner’s Guide, Sixth Edition; United States
of America; McGraw-Hill Education
Sebastian Raschka; 2016; Python Machine Learning; United Kingdom; Packt
Publishing
Christopher Haupt; 2016; Ruby For Kids For Dummies; United States of
America; Wiley/For Dummies
Rob Aley; 2016. PHP Beyond the Web; United States of America; Apress
Richard Halterman; 2017; Fundamentals of C++ Programming; United States
of America; Southern Adventist University
Syed Shanu; 2016; Beginning C# Object Oriented Programming; C# Corner
Computer Programming 1
23
Introduction to Computing and Programming

Caleb Doxsey; 2016; Introducing Go; United States of America; O’Reilly Media
Andrew Mallett; 2015; Mastering Linux Shell Scripting; United Kingdom;
Packt Publishing Ltd.
Stephen Kochan; 2013; Programming in Objective-C; United States of
America; Pearson Education, Inc.

Online Supplementary Reading Materials


Number of smartphone users worldwide from 2014 to 2020 (in billions);
https://www.statista.com/statistics/330695/number-of-smartphone-users-
worldwide/; April 10, 2017
Tableau against the world: the battle of Business Intelligence heats up;
https://bbvaopen4u.com/en/actualidad/tableau-against-world-battle-
business-intelligence-heats/; April 10, 2017
15 most popular languages used on GitHub by opened Pull Request and
percentage change from previous period; https://octoverse.github.com/;
April 10, 2017

Course Module

You might also like