0% found this document useful (0 votes)
28 views34 pages

Module Five Slides - 2022-1

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views34 pages

Module Five Slides - 2022-1

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 34

School of Information Technology

MSIT-5 0 0 Foundations of Information Technology

Module Five – Foundations of Programming and System Development

2022 All Rights Reserved 1


Agend a

• Module Overview
• Programming Fundamentals
• History and Evolution of Programming Languages
• Choice of Programming Language
• Top 10 Programming Languages
• Application and System Development
• Development Frameworks
• Traditional Waterfall vs. Agile
• Challenges and Best Practices in Application / System Development
• Module Level Summary

2022 All Rights Reserved 2


Module Overview
• Computer programming languages help give instructions to a computer in a
language the computer understands.
• Similar to human-based languages, several computer programming languages are
available to the world.
• The speed of creating new language is also influenced by demand for efficiency,
productivity, and time-to market.
• From protecting our water and sanitary systems, to providing information through social
media; from flight scheduling to doctors appointments; from online banking systems to
Uber
transport and Uber eats, programming languages became an integral part to human life.
• Developing stand-alone/enterprise systems and deploying to the customer is
complex, dynamic and requires a holistic approach to software engineering and
integration.
• This module covers:
• The foundational concepts of programming
• The top 10 programming languages
• A discussion of application/software development processes
• An outline of the challenges, best practices, and trends in software/system development
projects

2022 All Rights Reserved 3


Course Roadmap

2022 All Rights Reserved 4


Programming Languages

• A programming language is a set of commands, instructions, and other syntax


used to create a software program.

• Designe d to connect instructions to a machine or a computer

• Used to control the performance of a machine or to express algorithms


• With over 50 categories and hundreds of types, programming languages
shape Information technology. Some of these categories include:
• Array |Assembly | Authoring | Constraint Programming | Command Line
Interface |Compiled | Concurrent | Curly-bracket | Dataflow | Data-oriented |
Decision Table |Declarative | Embodable | Educational | Esoteric | Extension |
Fourth-generation |Functional | Hardware Description | Imperative | Interactive
Mode | Interpreted |Iterative | Memory Management | Logic Basic | Machine |
Marco | Meta | Numerical |Object-Oriented | Query | Procedural | Rule-based |
Scripting | Synchronous |Visual |XML-based

Full discretion of the languages can be found from (https://en.wikipedia.org/wiki/List_of_programming_languages_by_type)

2022 All Rights Reserved 5


Evolution of Programming Languages
1 9 5 0 s -1 9 7 0 s
1980s - 1990
1 9 9 0 s -2 0 0 0 s

2 0 0 0 s -2 0 1 5 s
Source: https://en.wikipedia.org/wiki/History_of_programming_languages

2022 All Rights Reserved 6


Evolution of Programming Lan gu ages (cont’d)

2022 All Rights Reserved 7


Which Programming Lan gu ages to use?
• D e pe nding on the organization’s needs, the types of languages
used may differ.
• Web-based startups are more likely to be programming in
Python and JavaScript.
• Larger companies tend to develop their internal software
applications using C # or Java and their Web applications using
PHP.
• Programs for data analytics typically use the R and
MATLAB programming languages.
• Embedded devices, such as those in the automotive and
healthcare industries, run software written in C, C + + , or Rust.
• Applications that run on the cloud are increasingly written in
G o or Scala.
• Mobile applications are increasingly written in Swift or Kotlin.
• In J une 2020, Northeastern University published the 10 most
popular programming languages to learn in 2020
• Python |JavaScript |Java |C # |C |C + + |G O |R |Swift | PHP

2022 All Rights Reserved 8


Top Ten Programming Lan gu ages to Learn – 1. Phyton

• Widely regarded as a programming language that’s easy


to learn, due to its simple syntax, and a large library of
standards and toolkits.
• Easily integrates with other popular programming
languages such as C and C + + .
• Popular programming language, especially among
startups, and therefore Python skills are in high demand.

• Not suitable for mobile application development.


• Used for a variety of applications including artificial
intelligence, financial services, data science, and social
media sites (Instagram and Pinterest).

2022 All Rights Reserved 9


Top Ten Programming Lan gu ages to Learn – 2. JavaScript

• Most popular programming language for building


interactive websites.
• When combined with Node.js, programmers can use
JavaScript to produce web content on the server before a
page is sent to the browser; can be used to build games and
communication applications that run directly in the browser.
• A wide variety of add-ons extend the functionality of
JavaScript.
• Internet browsers can disable JavaScript code from running,
as JavaScript is used to code pop-up ads that in some cases
can contain malicious content.
• Used extensively in website and mobile application
development.

2022 All Rights Reserved 10


Top Ten Programming Lan gu ages to Learn – 3. Java

• Programming language most commonly associated with the


development of client-server applications, which are used by large
businesses around the world.

• Designe d to be a loosely coupled programming language, meaning


that an application written in Java can run on any platform that
supports Java.

• Described as the “write once, run anywhere” programming language.


• Not ideal for applications that run on the cloud, as o ppo s e d to the
server (which is common for business applications).

• The software company Oracle, which owns Java, charges a licensing


fee to use the Java Development Kit.

• A lo ng with business applications, Java is used extensively in the


Android mobile operating system.

2022 All Rights Reserved 11


Top Ten Programming Lan gu ages to Learn – 4. C #

• Developed by Microsoft
• Fully integrated with Microsoft’s .NET software framework, which
supports the development of applications for Windows, browser
plug-ins, and mobile devices.

• C # offers shared codebases, a large code library, and a variety of


data types.

• Have a steep learning curve, especially for resolving errors. It is less


flexible than languages such as C + + .

• The go - to language for Microsoft and Windows application


development.

• Used for mobile devices and video ga me consoles using an


extension of the .NET Framework called Mono.

2022 All Rights Reserved 12


Top Ten Programming Lan gu ages to Learn – 5. C

• On e of the first programming languages ever developed.


• Served as the foundation for writing more modern
languages such as Python, Ruby, and PHP. It is also an easy
language to debug, test, and maintain.
• An older programming language, C is not suitable for
more modern use cases such as websites or mobile
applications.
• Has a complex syntax as compared to more modern
languages.
• C is often used to program hardware, such as embedded
devices in automobiles and medical devices used in
healthcare.

2022 All Rights Reserved 13


Top Ten Programming Lan gu ages to Learn – 6. C + +

• An extension of C that works well for programming the


systems that run applications, as opposed to the
applications themselves.

• Works well for multi-device and multi-platform systems.


• Has large set of libraries and compilers.
• Complex syntax and an abundance of features that can
make it complicated for new programmers.
• Does not support run-time checking, which is a method
of detecting errors or defects while software is running.
• Has many uses and is the language behind everything
from computer games to mathematical simulations.

2022 All Rights Reserved 14


Top Ten Programming Lan gu ages to Learn – 7. G o (Golang)

• Developed by Google
• Designed to be an efficient, readable, and secure language for
system-level programming.

• Works well for distributed systems, in which systems are located on


different networks and need to communicate by sending messages to
each other.

• Is a relatively new language.

• Has a large standards library and extensive documentation.


• Has not gained widespread use outside of Silicon Valley.
• Does not include a library for graphical user interfaces, which are the
most common ways that end-users interact with any device that has a
screen.
• Used primarily for applications that need to process a lot of data. In
addition to Google, companies using G o for certain applications
include Netflix, Twitch, and Uber.

2022 All Rights Reserved 15


Top Ten Programming Languages to Learn – 8. R

• Heavily used in statistical analytics and machine


learning applications.

• Extensible and runs on many operating systems.


• Large companies have adopted R in order to
analyze their massive data sets, so programmers
who know R are in great demand.
• Does not have the strict programming guidelines
of older and more established languages.

2022 All Rights Reserved 16


Top Ten Programming Languages to Learn – 9. Swift

• Developed by Apple
• Used for developing applications for Mac computers
and Apple’s mobile devices, including the iPhone,
iPad, and Apple Watch.
• Has a highly readable syntax, runs code quickly, and
can be used for both client-side and server-side
development.
• Can only be used on newer versions of iOS 7 and
will not work with older applications.
• As a newer programming language, the code can be
unstable at times, and there are fewer third-party
resources available to programmers.

2022 All Rights Reserved 17


Top Ten Programming Lan gu ages to Learn – 1 0 . PHP

• Widely used for server-side web development, when a


website frequently requests information from a server.

• As an older language, PHP benefits from a large ecosystem


of users who have produced frameworks, libraries, and
automation tools to make the programming language easier
to use.

• Easy to debug.
• As Python and JavaScript have gained popularity, PHP’s
popularity has dropped.

• Has security vulnerabilities.


• Most PHP programmers take short-term roles that last less
than one year (Source: Indeed)

• Used to run content-oriented websites such as Facebook,


WordPress, and Wikipedia.

2022 All Rights Reserved 18


The Next Runners in Programming Lan gu age
• Dart is optimal for programming applications that need to run on multiple platforms, such as
Windows and iOS.

• Kotlin is used to develop applications for the Android OS.


• M A T L A B is a proprietary language developed by MathWorks and used for scientific research and
numerical computing.

• Perl got its start for programming text, which makes it easy to learn; popular for developing a proof of
concept.

• R u b y is losing traction as compared to other languages, but the Ruby on Rails framework was
influential to other, later, Web application frameworks for Python, PHP, and JavaScript.

• Rust emphasizes high performance and security and is useful for applications where many things are
happening concurrently.

• Scala, named as a play on scalable language, is compatible with Java and is useful for cloud-based
applications.
Sources: https://www.northeastern.edu/graduate/blog/most-popular-programming-languages/

2022 All Rights Reserved 19


Fundamental Concepts of Programming

• Most computer programming follow similar logic in


their programs. The five components are:
• Variables
• Loops
• Conditionals
• Input / Output
• Subroutines and functions

2022 All Rights Reserved 20


Concepts of Programming – Variables

• Variables in programming tell how the data is represented


and can range from very simple to complex ones.
• The value they contain can be changed depending on the
condition. As we know program consist of instructions that
tell the computer to do things and the data the program
uses when it is running.

• Data is constant with fixed values or variables. The variable


can hold a very simple value like the age of a person, or it
can hold something that is very complex, like a student’s
performance track record for a whole year.

Source: https://www.assignmenthelp.net/assignment_help/elements-of-programming

2022 All Rights Reserved 21


Concepts of Programming – Loops

• Loops can be defined as a sequence of instructions that


are repeated continuously till a certain condition is not
satisfied.
• Carry out execution of a group of instruction of
commands a certain number of times.
• There is also a concept of infinite loop, also termed as
endless loop, which is a piece of code that lacks a
functional exit and goes to repeat indefinitely.

2022 All Rights Reserved 22


Concepts of Programming – Conditionals

• Conditionals specify the execution of the statements


depending on whether the condition is satisfied or not.
• An action that is only fulfilled when the applied condition
or instruction is satisfied.
• Conditionals are important components of the
programming language because they give freedom for the
program to act differently every time it executes
depending on input provided.

2022 All Rights Reserved 23


Concepts of Programming – Input / Output

• Input/Output are the elements of computer programming


that allow interaction of the program with external entities.
• Examples of input/output elements are printing something
out to the terminal screen, capturing some text that a user
inputs on the keyboard and can include reading and
writing files.
• C + + uses streams to perform input and output operations
in sequential media such as the screen, keyboard, or a file.
• Streams are entities that can insert or extract characters
and there is no need to know details about the media
associated to the stream or any of its internal specification.

2022 All Rights Reserved 24


Concepts of Programming – Subroutines / Functions

• Functions and Subroutines are ways of breaking up code into smaller,


reusable, more logical units.

• Functions and subroutines operate similarly but have one key


difference. A function is used when a value is returned to the calling
routine, while a subroutine is used when a desired task is needed, but
no value is returned.
• Functions take any number or arguments, perform a calculation, and
return a single result.
• A subroutine is used when a series of steps are required but no value
is returned to the routine that called the subroutine.

2022 All Rights Reserved 25


2022 All Rights Reserved 26
Application Development / Integration

2022 All Rights Reserved 27


From Requirements to Production

Source: https://magora-systems.com/application-development-life-cycle/

2022 All Rights Reserved 28


Options of Development – Traditional vs. Agile

2022 All Rights Reserved 29


Challenges and Best Practices in Application/System
Development

2022 All Rights Reserved 30


Challenges and Best Practices in Application / System
Development

• Fully capturing customers requirements

• Finding the right project manager/lead


• Selecting the right development framework
(waterfall, Iterative, Agile)
• Forming the right development team (architect,
UI/UX designers, web and mobile, quality
assurance and testers, documentation experts,
security experts)
• Selecting the right development architecture,
platform, and language

• DevOps

2022 All Rights Reserved 31


Challenges and Best Practices in Application/System
Development - Integration

• Application/systems integration is one


of the critical components of software
development
• Integrating development and operation
was a challenge until the DevOps
concept was introduced
• Helps the development team build, test,
deploy automatically
• The future of software development and
deployment

2022 All Rights Reserved 32


Career Development Opportunities

• Several opportunities are available for programming, system development, integration,


and support professionals.
• If you have interest in pursuing a career in these areas, below are a few certification paths
you may want to consider.
• Developers
• Core |web |mobile |interface
• Testers / Quality Assurance
• Technical Documentation
• Software Engineers
• Front-end Developers
• Database Developers

2022 All Rights Reserved 33


Thank You!

2022 All Rights Reserved 34

You might also like