CSC 403
CSC 403
MODULE 1
APPLICATION DOMAINS
1. Scientific Applications
2. Data processing Applications
3. Text processing Applications
4. Artificial intelligence Applications
5. Systems Programming Applications
6. Web software
Some languages have better “pedagogy” than others. That is, they are
intrinsically easier to teach and to learn, they have better textbooks; they
are implemented in a better program development environment, they are
widely known and used by the best programmers in an application area.
Programming Languages
Programming has come a long way since its inception in the 19th century,
with new technologies and innovations driving its evolution.
Initially, programming was done using punch cards and it was a tedious and
time-consuming task. But with the invention of computers, programming
became more accessible and efficient. In this blog, we will take a closer look
at the evolution of programming languages, the history of programming,
types of programming languages, the future of programming, the role of AI
in programming, and the role of IDEs popular for programming.
Others are
Declarative Languages
Scripting Languages
Display Languages
Display languages are the languages that are used for displaying content on
web pages. The mostly used display languages are HTML, XML, and PHP.
Functional Languages
Functional languages are programming languages in which the bigger
functions are divided into smaller functions to solve complex problems.
Examples of functional languages are Java and Haskell.
o Should know about working with databases by using SQL and other
query languages.
What is the difference between Computer Science and Computer
Programming?
Computer programming includes creating and developing code to build new
things to eliminate problems and bring solutions by creating applications.
The job roles under the computer programming categories are software
developer, web developer, mobile application developer, and quality
assurance (QA) analyst.
The history of programming dates back to the early 19th century when
mathematician Ada Lovelace created an algorithm for Charles Babbage's
Analytical Engine, which is considered the first computer. However, the first
actual programming language was developed in the 1950s, called FORTRAN
(Formula Translation). This language was used for scientific and engineering
calculations.
The 1970s saw the development of languages such as C and Pascal, which
were used to write operating systems and applications. In the 1980s, the first
object-oriented language, Smalltalk, was created. This language allowed
developers to create reusable code and was used for graphical user
interfaces.
The 1990s saw the development of scripting languages such as Perl and
Python, which were used for web development. In the early 2000s,
languages such as Ruby and PHP became popular for web development.
Today, programming languages such as Java, C++, Python, and JavaScript
are widely used for various applications.
Programming requires logical thinking and the ability to break down complex
problems into smaller, more manageable parts. Programmers use logic to
develop algorithms, which are step-by-step procedures for solving problems.
These algorithms must be logical and accurate, with each step leading
logically to the next.
The 1990s saw the rapid expansion of the internet, which spurred the need
for languages that could handle dynamic content and web applications.
Ruby (1995) and PHP (1994): Ruby, with its Rails framework, and
PHP became popular for web development due to their ease of use and
rapid development cycles. Ruby on Rails pioneered the MVC (Model-
View-Controller) framework model for web applications, while PHP
became dominant in server-side scripting.
C# (2000): Developed by Microsoft, C# was intended for the .NET
framework and influenced by Java and C++. It brought modern
language features into the Microsoft ecosystem and is widely used for
Windows applications, web services, and enterprise software.
Swift (2014): Swift was developed by Apple as a modern language for
iOS and macOS development. It focuses on safety, performance, and
expressiveness, aiming to replace Objective-C for Apple development.
Kotlin (2011): Kotlin was developed as an alternative to Java,
particularly for Android development. It features modern syntax, null
safety, and interoperability with Java, making it popular in the Android
ecosystem.
Modern Trends:
o Functional programming has gained renewed interest with
languages like Haskell, Scala, and F#. Functional programming
encourages immutability and avoids side effects, making it
suitable for concurrent and parallel processing.
o Domain-Specific Languages (DSLs) are tailored for specific
application areas, such as SQL for database queries and R for
statistical analysis.
o Concurrent and Reactive Programming: Languages like Go and
Rust are designed with concurrency in mind, addressing the
need for efficient parallel execution in multi-core systems.
o Data Science and AI: Languages like Python and R dominate data
science, while specialized languages like Julia offer optimized
performance for scientific computing.
The machine code cannot run on all The high-level code can run all the
machines, so it is not a portable platforms, so it is a portable
language. language.
There are many other programming languages in use today, each with its
strengths and weaknesses. Choosing the right programming language for a
particular task depends on a variety of factors, including the requirements of
the project, the developer's experience and expertise, and the availability of
tools and libraries.
To become a good programmer, there are several key skills that you should
develop:
Future of Programming
Role of AI in Programming
1. Visual Studio Code: This IDE is a lightweight and powerful tool that
supports many programming languages, including JavaScript, Python,
and C++. It has built-in debugging, Git integration, and extensions that
can enhance its functionality.
2. IntelliJ IDEA: This IDE is designed for Java developers and provides
advanced features such as code refactoring, code analysis, and
debugging. It also supports other programming languages such as
Python, Kotlin, and Scala.
3. Eclipse: This IDE is an open-source platform that supports many
programming languages, including Java, C++, and Python. It has a
modular architecture, making it easy to customize and extend its
functionality.
4. Xcode: This IDE is designed for macOS and iOS development and
supports languages such as Swift and Objective-C. It has a graphical
user interface that allows developers to create interfaces and design
layouts.
Using an IDE effectively involves using its features and tools to streamline
the development process and improve productivity. Here are some tips for
using an IDE effectively:
2. Use code completion: Most IDEs offer code completion features, which
can save you time and reduce errors by suggesting code as you type.
3. Debug effectively: Use the debugging tools in your IDE to identify and fix
errors in your code. Learn how to set breakpoints, step through code, and
inspect variables to find the root cause of problems.
4. Use version control: IDEs often offer integration with version control
systems such as Git. Learning how to use version control effectively can help
you collaborate with other developers, manage changes to your codebase,
and roll back changes if necessary.
Programming Paradigm
int main() {
// Array to store marks
int marks[5] = { 12, 32, 45, 13, 19 };
return 0;
}
Output
Average of five numbers: 24.2
Advantages
o Easy to implement.
o It is efficient.
Disadvantages
o Order is crucial.
Examples of Imperative programming paradigm:
C : developed by Dennis Ritchie and Ken Thompson
Fortran : developed by John Backus for IBM
Basic : developed by John G Kemeny and Thomas E Kurtz
o Object-oriented Programming
o Procedural Programming
// Class Signup
class Signup {
int userid;
string name;
string emailid;
char sex;
long mob;
public:
// Function to create and object using
// the parameters
void create(int userid, string name, string emailid,
char sex, long mob)
{
cout << "Welcome to GeeksforGeeks\nLets create "
"your account\n";
this->userid = 132;
this->name = "Radha";
this->emailid = "[email protected]";
this->sex = 'F';
this->mob = 900558981;
cout << "your account has been created" << endl;
}
};
// Driver Cpde
int main()
{
cout << "GfG!" << endl;
// Creating Objects
Signup s1;
s1.create(22, "riya", "[email protected]", 'F', 89002);
return 0;
}
Output
GfG!
Welcome to GeeksforGeeks
Lets create your account
Procedural Programming
The paradigm deals with procedure calls that are called routines or functions.
the functions contain a series of computational commands to be carried out
to achieve a certain outcome.
#include <iostream>
using namespace std;
int main()
{
int i, fact = 1, num;
cout << "Enter any Number: ";
cin >> number;
for (i = 1; i <= num; i++) {
fact = fact * i;
}
cout << "Factorial of " << num << " is: " << fact << endl;
return 0;
}
The parallel programming paradigm breaks the problem or task into chunks
that are distributed among multiple processors. These chunks work on the
same problem, simultaneously. It reduces the total time to solve a problem.
It connects multiple processors to the memory. It is either pooled across all
processors or distributed over a network.
Declarative (Focus on What): writing declarative code forces you to ask first