Chapter 13 Computer Languages Applications and Emerging Technol
Chapter 13 Computer Languages Applications and Emerging Technol
1-1-2023
Clinton Daniel
University of South Florida, [email protected]
Manish Agrawal
University of South Florida, [email protected]
This Book Chapter is brought to you for free and open access by the The Modernization of Digital Information
Technology at Digital Commons @ University of South Florida. It has been accepted for inclusion in
FUNDAMENTALS OF INFORMATION TECHNOLOGY: Textbook – English by an authorized administrator of Digital
Commons @ University of South Florida. For more information, please contact [email protected].
Computer Languages, Applications,
and Emerging Technologies
CHAPTER CONTENTS
Overview 278
Types of Computer Languages 278
Binary Code 279
Computer Programming 279
Block Based Coding 280
Programming Basics 281
Variables 281
Functions/Methods 282
Algorithm 284
Object Oriented Programming 285
Objects 286
Popular OOP Languages 286
Applications 287
Desktop Applications 288
Web Applications 288
Mobile Applications 289
The Interplay Between Desktop, Web, and Mobile 289
Computer Program Design 289
Emerging Technologies 290
Artificial Intelligence (AI) and Machine Learning (ML) 290
Blockchain and Cryptocurrencies 292
Augmented Reality and Virtual Reality 292
Internet of Things 293
Autonomous Vehicles (Self-Driving Cars, EVTOL, Drone
Delivery) 293
Advanced Robotics 294
Biotechnology 294
Learning to Program: Getting Started 295
Chapter Terms and Definitions 298
Chapter Case: Vivian’s Raspberry Pi 299
Overview
Computer languages are the rules for writing computer programs. Just as we need languages such
as English to communicate ideas and information with each other, we need computer languages
to tell computers what to do. Computer languages are popularly called programming languages.
The important difference between human languages and computer languages originates from the
human ability to handle ambiguity and fill context. For example, in most contexts people would
understand the phrase “let’s meet tomorrow.” But computers would not be able to figure out who is
meeting, the place of the meeting, the time of the meeting, any prior preparation for the meeting,
etc. Therefore, computer languages use specific syntax and grammar to precisely communicate with
machines to avoid miscommunication. Once you develop some familiarity with computer languages
and comfort with giving precise instructions in computer languages to get the job done, you can
create increasingly complex computer applications that make life easier. Computer applications are
a set of instructions written in a programming language. Computers read these instructions and
perform the corresponding set of actions.
Binary Code
Eventually, all computer programs are stored as instructions in binary code. Computers can only read
binary code, which is a collection of 1s and 0s. Binary code is the native language of computers and
is necessary for communication and storage of data. For example, files and data are stored in binary
format on hard drives and other storage media.
Specialized software programs called compilers convert software code, written in any of the above
languages, into binary code that can then be executed directly by the computers. Compilers allow
developers to write computer programs in languages that resemble plain English (called high-level
languages) and convert these programs into binary code customized for each processor.
Computer Programming
Each type of programming language has its own strengths and weaknesses. The choice of language
often depends on the specific needs of the application being developed. It is common to use a
combination of languages to build a software application.207 You may use HTML and JavaScript to
FIGURE 227 — The drag and drop capability makes Blockly a great starting point when learning to code.
Programming Basics
While there are many popular programming languages (e.g., Java, C#, C, C++, JavaScript, Python),
they all share most of the underlying concepts. Once you learn the basic programming concepts
and use them in a few languages, learning new programming languages will be easy and fun. Here
are a few concepts you will need to learn no matter which language you choose. If you would like to
practice the examples in this chapter, and create your own programs, you can use the jdoodle online
code editor. Most students find Python to be their favorite introductory language. The Python editor
is at https://www.jdoodle.com/python3-programming-online/.
Variables
A variable is a named storage location in a computer’s memory that holds a value. Variables are the
basic mechanism used to store and manipulate data in code. A variable is one of the first things you
will learn when you begin to write software programs.
Let’s say you are creating a program that calculates the area of rectangles. Since the area is computed
from the length and width of the rectangle, you would need to store the width and height of the
rectangle as variables. You would need to create one variable for each dimension, maybe one called
width and the other called height. For simplicity in this example, let’s assume all numbers are integers.
Every language has its own way of declaring a variable. Once you declare the variables to hold the
dimensions of the rectangle, you would assign values to the variables when a user inputs the width
and height values of the rectangle.
Variable declaration of the type int (integer):
int width;
int height;
Variable assignment:
width = 10;
height = 5;
Functions/Methods
A function (aka method in some programming languages) is a block of code that performs a specific
task. A function is defined with a name and can be called or invoked repeatedly from other parts of
a program.
Functions provide a way to modularize code and make it easier to read, understand, and reuse.
Instead of writing the same code multiple times in different parts of a program, a function can be
defined once and called whenever it is needed. Functions also improve program correctness since
program errors only need to be fixed in one place (the method), instead of all the places where the
methods are used.
Functions typically have inputs and outputs. The inputs are called parameters or arguments. They
represent the data that the function will receive and work on. The outputs are the result of the
function’s computation and can be returned to the calling code.
Here is an example function in JavaScript that adds two numbers together and returns the result:
function AddNumbers (x, y) {
let sum = x+ y;
return sum;
}
Functions are an important part of programming languages and are used extensively in both frontend
and backend development. They allow us to write reusable code that can be called from anywhere in
our program, making our code more modular and easier to maintain.
Objects
As described above, an object is an instance of a class. An object consists of one or more properties
that are key-value pairs defining the characteristics of the object, and methods, which are functions
that define the behavior of the object.
Objects are a core feature of most programming languages used today, including JavaScript, Python,
and Java. They allow us to encapsulate related data and functionality into a single unit, which can be
more convenient and easier to work with than using separate variables and functions.
Here is an example of an object in JavaScript that represents a recipe:
let recipe = {
recipeName: “Lemon Orange Cake”,
recipeSource: “Taste of Home”,
recipeDetails: function () {
return recipeName + “from” + recipeSource;
}
};
In this example, we have defined an object named recipe that has three properties: recipeName,
recipeSource, and recipeDetails. The recipeName and recipeSource have basic information about
the recipe, while the recipeDetails property is a method that returns a string with the recipe name
concatenated to the recipe source.
We can access the properties and methods of an object using dot notation or bracket notation. For
example, to access the recipeName property of the recipe object, we can use the following code:
console.log (recipe.recipeName); //Ouput: Lemon Orange Cake
To call the recipeDetails of the recipe object, we can use the following code:
console.log(recipe.recipeDetails());//Output: Lemon Orange Cake from Taste of Home
Objects are a powerful tool in programming and make it easy to organize and manipulate complex
data structures. They are used extensively in all types of programming.
Applications
Computer applications created by developers can typically be used in three different versions; (1)
downloaded to desktops, (2) downloaded to mobile devices, or (3) accessed through browsers. This
has evolved over time. Personal computers (desktops and laptops) running Microsoft Windows and
Apple MacOS were the first computing platforms used to run applications. These became common
in offices in the 1980s and homes in the 1990s. In the 2000s, the Internet and World Wide Web
allowed desktops to connect to the web and exchange information. People began using web-based
applications to file taxes and pay their bills. Then in 2007, Apple introduced the iPhone and the IOS
mobile platform and launched the era of mobile applications.
Desktop Applications
Desktop applications are computer programs that are installed and run on a personal computer
or a local network. Word processors, spreadsheets, graphics editors, and audio and video editors
are desktop applications. Typically, desktop applications are faster, more powerful, and offer more
features than web applications. Desktop applications can also be used offline, without an Internet
connection. Here are just a few examples of desktop applications:
· Word, Excel, PowerPoint, and Outlook from Microsoft are desktop applications widely used for
business and personal productivity. Chrome, Safari, Edge, Firefox, and Opera are popular web
browsers.
· Photoshop, Illustrator, InDesign, and other applications are part of the Adobe Creative Suite
and are used for graphic designing and photo and video editing.
· QuickBooks accounting software is used by businesses to manage financial transactions and
generate reports.
· AutoCAD is a computer-aided design (CAD) software used by architects, engineers, and
designers to create 2D and 3D drawings and models.
· Visual Studio is an integrated development environment (IDE) used by developers to create
software applications for Windows, Mac, and other platforms.
Web Applications
Web applications run on remote servers and are accessed through a web browser. Facebook, Amazon,
Gmail, Instacart, and Netflix are all web applications we use in our daily lives. Typically, web applications
are relatively simpler in design and functions compared to desktop applications, as they are unable to
use all the capabilities of desktops such as notifications. Popular web applications include:
· Gmail is used for emailing. Google Drive and Google Docs are used for storing information,
editing, and collaboration.
· Amazon, Instacart, and other online shopping platforms allow users to buy and sell products
and services, browse reviews and ratings, and compare prices.
· Yelp, TripAdvisor, and other rating platforms let users review products and services before
making a major purchase or committing to a hiring decision.
· Monday.com, Trello, and Asana are web-based tools that allow users to manage projects with
the help of online boards, calendars, approval workflows, and reports.
Web applications are available 24*7 from any device that has a reliable Internet connection. Not
surprisingly, they have become an essential part of our daily lives—we cannot imagine going back to
the time when we didn’t have web applications.
Emerging Technologies
There is an adage in the technology industry that technology helps us build better technology. If
you observe how computer chips are made, you will notice that the most powerful chips we have
were made possible because of technology. It would have been impossible to build today’s computer
chips in the 1980s or 1990s. The pace of development of several other technologies has increased
in recent decades. The power of the mobile phone, your ability to connect to a GPS satellite and ask
for navigation, the cost/speed of sending money to a friend, or the cost of messaging your friends
are all examples of this trend. Being aware of emerging technologies can help us anticipate how our
future is likely to shape over the next few decades. We provide a brief overview of some emerging
technologies that we believe will have the greatest impact in our lifetimes.
Machine Learning and Artificial Intelligence are highly likely to change our lives. While there is great
fear that these technologies may make some jobs redundant, they will also create new job categories
that we don’t even know about. For example, Figure 229 shows that a large percent of jobs done
today are new, and this trend is likely to continue.
However, we must exercise caution when adopting AI and ML models because the long-term impact
on humans is difficult to predict and the regulatory framework around these technologies, to guide
software makers is still in its infancy.
215 Source: “The Work of the Future: Building Better Jobs in an Age of Intelligent Machines,” by
David Autor, David Mindell and Elisabeth Reynolds, Figure 2, https://workofthefuture.mit.edu/
wp-content/uploads/2021/01/2020-Final-Report4.pdf (accessed June 2023).
Internet of Things
Devices connected to the Internet form the Internet of Things (IOT). Your old doorbell did a good
enough job of notifying you when someone rang the bell. However, if you attach a camera and a
microprocessor to it and connect it to the Internet, it can notify you on your mobile device when
someone is at your doorstep. It is not only a doorbell but also a security and communication device
that lets you interact with the person at the door (even if you are not at home) to receive a package
or let a family member in. Ring and Nest have become popular by selling smart doorbells. If you own
a fleet of trucks, you can connect smart sensors to your trucks to notify you ahead of time about
any required maintenance. Your smart fridge may determine that you are short on milk, eggs, and
vegetables and place an order on your behalf for online delivery.
The Internet of Things and devices connected to the Internet can lead to savings of time and energy.
The world as we know it will change as a result because many of the manual chores that we have been
doing for ages will be done automatically by Internet connected devices.
217 “Autonomous Driving’s Future: Convenient and Connected,” January 6, 2023, https://www.
mckinsey.com/industries/automotive-and-assembly/our-insights/autonomous-drivings-
future-convenient-and-connected (accessed June 2023).
Advanced Robotics
Imagine a world where a robot follows you around carrying your coffee and your laptop. A robotic
dog walks around your property guarding your perimeter, looking for trespassers, broken fences,
navigating difficult terrain, and using its camera like eyes. It can identify security risks and let you
know if anything is amiss. Imagine a robotic exo-skeleton that lets a soldier carry 100s of pounds with
ease over difficult terrain. A robotic surgeon that can do surgery with precision. A drone that can act
as a refueling gas station in the sky for military aircraft. Robots that can run into a fiery building and
rescue people.
All these science-fiction sounding robots are available today. And they are continually getting better
as their underlying computers, batteries, motors, and machine learning improve.
Biotechnology
Emerging biotechnology trends have the potential to impact our health and happiness in a big way.
Here are a few:
· Gene editing techniques such as CRISPR have revolutionized the field of genetics and have
the potential to cure genetic diseases. In the future, gene editing could become more precise,
efficient, and accessible, opening new possibilities for genetic therapies.
· Personalized medicine is becoming a reality with advances in genomics and data analytics.
Healthcare providers can use genetic data to develop targeted therapies for individual
patients, reducing the need for trial and error in treatment and improving patient outcomes.
· Synthetic biology involves the design and engineering of biological systems for specific
purposes. This field has the potential to create new biologically inspired materials, improve
food production, and develop novel treatments for diseases.
· Cell therapies involve using living cells to treat diseases. Stem cell therapies are already being
used to treat some diseases, but researchers are exploring the potential of other cell types,
such as immune cells, to treat cancer and other conditions.
You can also use ChatGPT to identify errors in your programs as shown in Figure 230 (bottom). ChatGPT
will not just fix errors but also explain them. ChatGPT can, therefore, serve as your personal tutor and
debugger as you write programs.
Algorithm: A set of instructions for solving a Markup Languages: Computer languages used
problem to specify how information should be displayed or
interpreted; examples include HTML, Markdown,
Augmented Reality (AR): Combines digital and XML
information and real-world information in one
place Object-Oriented Programming Languages:
Computer languages that allow developers to
Compiler: A specialized software program that create their own data types by organizing data
can convert software code written from specific and related functions into objects; examples
languages into binary code, which can then be include Java, C#, and C++
executed directly by the computers
Procedural Programming Languages:
Domain-Specific Languages: Computer Computer languages that use precise steps to
languages optimized for specific application compose programs: examples include C, Fortran,
domains; examples include SQL, R, and MATLAB and Pascal
Internet of Things (IOT): Devices that serve Scripting Languages: Computer languages
a specific purpose and are connected to the used to automate tasks using the capabilities
Internet of existing applications; examples include
AppleScript, JavaScript, and Python
Low-Level Languages: Programming languages
that are close to the processor’s native instruction Variable: A named storage location in a
set; these languages are sometimes called computer’s memory that holds a value
assembly language
Vivian’s Raspberry Pi
Vivian had a hard time with volleyball practice today. She couldn’t get her mind off
of her science fair project idea. She wasn’t sure exactly what she wanted to do. All
she knew is that she wanted to use a Raspberry Pi. Suddenly…BOOM! Here comes
the volleyball straight at her head! And then…she got an idea!
Question 1: Look through the projects on the Raspberry Pi website. Find a project
that interests you. Describe at least 2 things about the project that
interests you to include: What will you make and what will you learn?
Question 2: Each Raspberry Pi project includes a detailed set of Instructions. Look
through all the steps included in the instructions of your project. What
do you think would be the most difficult task for you to complete
and why do you think it would be so difficult? Now, describe what
you think you would need to learn in order to complete this most
difficult task.