SlideShare a Scribd company logo
1 of 37
Computer Programming
Overview
Outline
● Overview
● Paradigms
● Languages
● Popular Languages
● Choosing a Language
● Learning Resources
● Summary
Programming Overview
What is programming?
● Instructing a computer to carry
out a task
● Creative process of turning
ideas into software
● Empowers you to make
computers do anything you
want...?
Why do we program?
● A natural, satisfying and creative experience
● Enables accomplishments previously possible.
● Opens new world of intellectual endeavor
● It is cool, fun and potentially very rewarding
● Anyone can do it!
Programming Paradigms
A programming paradigm is...
● A way of building the structure and elements
of computer programs
Procedural Languages
Structured Languages
Functional Languages
Object-oriented Languages
Multi-paradigm Languages
● Languages can support one or more
paradigms
More recently…
+
Programming Languages
Natural Language Examples
● Kids Make Nutritious Snacks
● Red Tape Holds Up New Bridge
● Police Squad Helps Dog Bite Victim
● Local High School Dropouts Cut in Half
[ real news paper headlines, compiled by Rich Pattis ]
Generations
● Machine Language (1GL)
o Very low level, tedious and error-prone
● Assembly Language (2GL)
o Usually specific to a particular processor family and
environment
● High-level Languages (3GL)
o Independent of a particular type of computer
hardware
● Fourth Generation Languages (4GL)
o Provides a higher level of abstraction than 3GLs
o Closer to natural human languages
● Natural Language
o Ambiguous and hard for computer to understand
Languages
Common Features
● Data Types & Structures
● Operators, Conditionals and Loops
● Functions and Procedures
● Exception Handling
Choosing a Language
Where do you begin?
● Depends on your problem domain
o High performance, low latency applications
o Complex computation and data analysis
o Embedded and control systems
o Enterprise applications
o Dynamic web applications, widgets and APIs
o Computer graphics and animation
o Computer and console games
o Mobile applications and games
Choose a language that is...
● Best suited to the problem you are trying to solve
● Widely available
o Runs on various hardware platforms
o Supports multiple operating systems
● Widely used
o Large, active community
o Readily available libraries and frameworks
Source: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Source: http://sogrady-media.redmonk.com/sogrady/files/2014/01/lang-rank-114-wm.png
Popular Languages
● Problem Domains
o High performance applications
o Complex computations
o Embedded systems
o Computer and console games
o Mobile applications and games
● Communities
o C - http://www.cprogramming.com
o C++ -
https://plus.google.com/communities/1
16007775542700637383
o Objective-C -
https://plus.google.com/communities/1
03997592872376747208
● Problem Domains
● Client/server applications and APIs
● Mobile applications and games
● Communities
o http://www.meetup.com/Londonjavaco
mmunity/
o http://www.csharpforums.net
o http://androidcommunity.com
● Problem Domains
o Dynamic web sites and applications
o Web Plugins and widgets
o Web based games
o Automation of system admin tasks
o Popular choices for learning
programming
● Communities
o http://phpcommunity.org
o https://www.python.org/community/
o https://www.ruby-
lang.org/en/community/
o https://plus.google.com/communities/1
00875929141897651837
Learning Resources
Learning Resources
● Intensive Courses
o http://www.makersacademy.com
o https://generalassemb.ly
● Online courses
o https://www.coursera.org/
o https://www.udacity.com/
o https://developers.google.com/university/
● Online tutorials
o https://www.khanacademy.org/
o http://www.codecademy.com
● Other online resources
o http://www.w3schools.com
o http://learncodethehardway.org/
Aim of this Meetup Group
● Help you to Learn Computer Programming
o Programming 101: Fundamentals
o Programming 201: Hands-on Workshops
o Coaching & Mentoring
● Build a fun and vibrant community of
passionate programmers
Recommended Approach
● Find an interesting problem to solve
● Choose a language and learn the
fundamentals and language features
● Practice, practice, practice…..
● Have fun!
● ...is really not just about learning a
language
● Computer Programming in general
involves a lot more…
In Summary...
Think Big, Work Smart and Have Fun!
Questions?

More Related Content

What's hot

Basic programming concepts
Basic programming conceptsBasic programming concepts
Basic programming conceptssalmankhan570
 
Programming Languages An Intro
Programming Languages An IntroProgramming Languages An Intro
Programming Languages An IntroKimberly De Guzman
 
Natural Language Processing
Natural Language ProcessingNatural Language Processing
Natural Language ProcessingYasir Khan
 
Lecture 01 introduction to compiler
Lecture 01 introduction to compilerLecture 01 introduction to compiler
Lecture 01 introduction to compilerIffat Anjum
 
Introduction to programming
Introduction to programmingIntroduction to programming
Introduction to programmingNeeru Mittal
 
software development and programming languages
software development and programming languages software development and programming languages
software development and programming languages PraShant Kumar
 
Programming languages and concepts by vivek parihar
Programming languages and concepts by vivek pariharProgramming languages and concepts by vivek parihar
Programming languages and concepts by vivek pariharVivek Parihar
 
High Level Languages (Imperative, Object Orientated, Declarative)
High Level Languages (Imperative, Object Orientated, Declarative)High Level Languages (Imperative, Object Orientated, Declarative)
High Level Languages (Imperative, Object Orientated, Declarative)Project Student
 
Programming Fundamentals lecture 1
Programming Fundamentals lecture 1Programming Fundamentals lecture 1
Programming Fundamentals lecture 1REHAN IJAZ
 
Programming Fundamental Slide No.1
Programming Fundamental Slide No.1Programming Fundamental Slide No.1
Programming Fundamental Slide No.1Arslan Hussain
 
introduction computer programming languages
introduction computer programming languages introduction computer programming languages
introduction computer programming languages BakhatAli3
 
Programming Paradigm & Languages
Programming Paradigm & LanguagesProgramming Paradigm & Languages
Programming Paradigm & LanguagesGaditek
 
Principles of-programming-languages-lecture-notes-
Principles of-programming-languages-lecture-notes-Principles of-programming-languages-lecture-notes-
Principles of-programming-languages-lecture-notes-Krishna Sai
 
What is an algorithm?
What is an algorithm?What is an algorithm?
What is an algorithm?Angela DeHart
 
Presentation of programming languages for beginners
Presentation of programming languages for beginnersPresentation of programming languages for beginners
Presentation of programming languages for beginnersClement Levallois
 

What's hot (20)

Basic programming concepts
Basic programming conceptsBasic programming concepts
Basic programming concepts
 
Programming Languages An Intro
Programming Languages An IntroProgramming Languages An Intro
Programming Languages An Intro
 
Natural Language Processing
Natural Language ProcessingNatural Language Processing
Natural Language Processing
 
Lecture 01 introduction to compiler
Lecture 01 introduction to compilerLecture 01 introduction to compiler
Lecture 01 introduction to compiler
 
Introduction to programming
Introduction to programmingIntroduction to programming
Introduction to programming
 
software development and programming languages
software development and programming languages software development and programming languages
software development and programming languages
 
Programming languages and concepts by vivek parihar
Programming languages and concepts by vivek pariharProgramming languages and concepts by vivek parihar
Programming languages and concepts by vivek parihar
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
High Level Languages (Imperative, Object Orientated, Declarative)
High Level Languages (Imperative, Object Orientated, Declarative)High Level Languages (Imperative, Object Orientated, Declarative)
High Level Languages (Imperative, Object Orientated, Declarative)
 
Programming Fundamentals lecture 1
Programming Fundamentals lecture 1Programming Fundamentals lecture 1
Programming Fundamentals lecture 1
 
Programming Fundamental Slide No.1
Programming Fundamental Slide No.1Programming Fundamental Slide No.1
Programming Fundamental Slide No.1
 
Introduction to Computer Programming
Introduction to Computer ProgrammingIntroduction to Computer Programming
Introduction to Computer Programming
 
introduction computer programming languages
introduction computer programming languages introduction computer programming languages
introduction computer programming languages
 
Programming Paradigm & Languages
Programming Paradigm & LanguagesProgramming Paradigm & Languages
Programming Paradigm & Languages
 
Introduction to problem solving in C
Introduction to problem solving in CIntroduction to problem solving in C
Introduction to problem solving in C
 
Principles of-programming-languages-lecture-notes-
Principles of-programming-languages-lecture-notes-Principles of-programming-languages-lecture-notes-
Principles of-programming-languages-lecture-notes-
 
Computer Languages
Computer Languages Computer Languages
Computer Languages
 
What is an algorithm?
What is an algorithm?What is an algorithm?
What is an algorithm?
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
Presentation of programming languages for beginners
Presentation of programming languages for beginnersPresentation of programming languages for beginners
Presentation of programming languages for beginners
 

Viewers also liked

MITH Digital Dialogues: Intro to Programming for Humanists (with Ruby)
MITH Digital Dialogues: Intro to Programming for Humanists (with Ruby)MITH Digital Dialogues: Intro to Programming for Humanists (with Ruby)
MITH Digital Dialogues: Intro to Programming for Humanists (with Ruby)joegilbert
 
Java 102 intro to object-oriented programming in java - exercises
Java 102   intro to object-oriented programming in java - exercisesJava 102   intro to object-oriented programming in java - exercises
Java 102 intro to object-oriented programming in java - exercisesagorolabs
 
Introduction to Agile
Introduction to AgileIntroduction to Agile
Introduction to Agileagorolabs
 
Java 101 Intro to Java Programming
Java 101 Intro to Java ProgrammingJava 101 Intro to Java Programming
Java 101 Intro to Java Programmingagorolabs
 
Java 201 Intro to Test Driven Development in Java
Java 201   Intro to Test Driven Development in JavaJava 201   Intro to Test Driven Development in Java
Java 201 Intro to Test Driven Development in Javaagorolabs
 
Java 102 intro to object-oriented programming in java
Java 102   intro to object-oriented programming in javaJava 102   intro to object-oriented programming in java
Java 102 intro to object-oriented programming in javaagorolabs
 
Java 103 intro to java data structures
Java 103   intro to java data structuresJava 103   intro to java data structures
Java 103 intro to java data structuresagorolabs
 
Java 101 Intro to Java Programming - Exercises
Java 101   Intro to Java Programming - ExercisesJava 101   Intro to Java Programming - Exercises
Java 101 Intro to Java Programming - Exercisesagorolabs
 
The next 2500 days
The next 2500 daysThe next 2500 days
The next 2500 daysKevin Feenan
 
C# programming language
C# programming languageC# programming language
C# programming languageswarnapatil
 
Programming Paradigm
Programming ParadigmProgramming Paradigm
Programming ParadigmSabahtHussein
 
Data structures and algorithms lab5
Data structures and algorithms lab5Data structures and algorithms lab5
Data structures and algorithms lab5Bianca Teşilă
 
data structure(tree operations)
data structure(tree operations)data structure(tree operations)
data structure(tree operations)Waheed Khalid
 

Viewers also liked (20)

MITH Digital Dialogues: Intro to Programming for Humanists (with Ruby)
MITH Digital Dialogues: Intro to Programming for Humanists (with Ruby)MITH Digital Dialogues: Intro to Programming for Humanists (with Ruby)
MITH Digital Dialogues: Intro to Programming for Humanists (with Ruby)
 
Java 102 intro to object-oriented programming in java - exercises
Java 102   intro to object-oriented programming in java - exercisesJava 102   intro to object-oriented programming in java - exercises
Java 102 intro to object-oriented programming in java - exercises
 
Introduction to Agile
Introduction to AgileIntroduction to Agile
Introduction to Agile
 
Java 101 Intro to Java Programming
Java 101 Intro to Java ProgrammingJava 101 Intro to Java Programming
Java 101 Intro to Java Programming
 
Java 201 Intro to Test Driven Development in Java
Java 201   Intro to Test Driven Development in JavaJava 201   Intro to Test Driven Development in Java
Java 201 Intro to Test Driven Development in Java
 
Java 102 intro to object-oriented programming in java
Java 102   intro to object-oriented programming in javaJava 102   intro to object-oriented programming in java
Java 102 intro to object-oriented programming in java
 
Java 103 intro to java data structures
Java 103   intro to java data structuresJava 103   intro to java data structures
Java 103 intro to java data structures
 
Java 101 Intro to Java Programming - Exercises
Java 101   Intro to Java Programming - ExercisesJava 101   Intro to Java Programming - Exercises
Java 101 Intro to Java Programming - Exercises
 
The next 2500 days
The next 2500 daysThe next 2500 days
The next 2500 days
 
Paradigm 1218656614474137 8
Paradigm 1218656614474137 8Paradigm 1218656614474137 8
Paradigm 1218656614474137 8
 
Sql Overview
Sql OverviewSql Overview
Sql Overview
 
C# programming language
C# programming languageC# programming language
C# programming language
 
Programming Paradigm
Programming ParadigmProgramming Paradigm
Programming Paradigm
 
Standard Algorithms
Standard AlgorithmsStandard Algorithms
Standard Algorithms
 
Enum Report
Enum ReportEnum Report
Enum Report
 
Java Day-7
Java Day-7Java Day-7
Java Day-7
 
Java Day-2
Java Day-2Java Day-2
Java Day-2
 
Data structures and algorithms lab5
Data structures and algorithms lab5Data structures and algorithms lab5
Data structures and algorithms lab5
 
data structure(tree operations)
data structure(tree operations)data structure(tree operations)
data structure(tree operations)
 
Prgramming paradigms
Prgramming paradigmsPrgramming paradigms
Prgramming paradigms
 

Similar to Computer Programming Overview

Intro to software development
Intro to software developmentIntro to software development
Intro to software developmentHawkman Academy
 
Introduction to the Software Development world
Introduction to the Software Development worldIntroduction to the Software Development world
Introduction to the Software Development worldTutti Quintella
 
Generation of Computer language by arya dutta (1).pptx
Generation of Computer language by arya dutta (1).pptxGeneration of Computer language by arya dutta (1).pptx
Generation of Computer language by arya dutta (1).pptxAryaDutta4
 
Computer programming programming_langugages
Computer programming programming_langugagesComputer programming programming_langugages
Computer programming programming_langugageseShikshak
 
GDSC career guide presentation.pptx
GDSC career guide presentation.pptxGDSC career guide presentation.pptx
GDSC career guide presentation.pptxDishaSharma737984
 
GDSC career guide presentation.pptx
GDSC career guide presentation.pptxGDSC career guide presentation.pptx
GDSC career guide presentation.pptxAryanSharma853911
 
12 best programming languages for web & app development
12 best programming languages for web & app development12 best programming languages for web & app development
12 best programming languages for web & app developmentBiztech Consulting & Solutions
 
Flutter not yet another mobile cross-platform framework - i ox-kl19
Flutter   not yet another mobile cross-platform framework - i ox-kl19Flutter   not yet another mobile cross-platform framework - i ox-kl19
Flutter not yet another mobile cross-platform framework - i ox-kl19oradoe
 
The Ring programming language version 1.9 book - Part 6 of 210
The Ring programming language version 1.9 book - Part 6 of 210The Ring programming language version 1.9 book - Part 6 of 210
The Ring programming language version 1.9 book - Part 6 of 210Mahmoud Samir Fayed
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to pythonJaya Kumari
 
Career potentials and opportunities in ICT
Career potentials and opportunities in ICTCareer potentials and opportunities in ICT
Career potentials and opportunities in ICTOsahon Gino Ediagbonya
 
Software development, mobile platforms, cloud services - Lean Development and...
Software development, mobile platforms, cloud services - Lean Development and...Software development, mobile platforms, cloud services - Lean Development and...
Software development, mobile platforms, cloud services - Lean Development and...Francesco Mapelli
 
The Ring programming language version 1.5.1 book - Part 4 of 180
The Ring programming language version 1.5.1 book - Part 4 of 180The Ring programming language version 1.5.1 book - Part 4 of 180
The Ring programming language version 1.5.1 book - Part 4 of 180Mahmoud Samir Fayed
 
Types Of Coding Languages: A Complete Guide To Master Programming
Types Of Coding Languages: A Complete Guide To Master ProgrammingTypes Of Coding Languages: A Complete Guide To Master Programming
Types Of Coding Languages: A Complete Guide To Master Programmingcalltutors
 
COMPUTER LANGUAGES AND THERE DIFFERENCE
COMPUTER LANGUAGES AND THERE DIFFERENCE COMPUTER LANGUAGES AND THERE DIFFERENCE
COMPUTER LANGUAGES AND THERE DIFFERENCE Pavan Kalyan
 
Introduction Programming Languages
Introduction Programming LanguagesIntroduction Programming Languages
Introduction Programming LanguagesManish Kharotia
 
The Ring programming language version 1.5.4 book - Part 5 of 185
The Ring programming language version 1.5.4 book - Part 5 of 185The Ring programming language version 1.5.4 book - Part 5 of 185
The Ring programming language version 1.5.4 book - Part 5 of 185Mahmoud Samir Fayed
 

Similar to Computer Programming Overview (20)

Intro to software development
Intro to software developmentIntro to software development
Intro to software development
 
Introduction to the Software Development world
Introduction to the Software Development worldIntroduction to the Software Development world
Introduction to the Software Development world
 
Generation of Computer language by arya dutta (1).pptx
Generation of Computer language by arya dutta (1).pptxGeneration of Computer language by arya dutta (1).pptx
Generation of Computer language by arya dutta (1).pptx
 
IT Career Planning v2
IT Career Planning v2IT Career Planning v2
IT Career Planning v2
 
Computer programming programming_langugages
Computer programming programming_langugagesComputer programming programming_langugages
Computer programming programming_langugages
 
GDSC career guide presentation.pptx
GDSC career guide presentation.pptxGDSC career guide presentation.pptx
GDSC career guide presentation.pptx
 
GDSC career guide presentation.pptx
GDSC career guide presentation.pptxGDSC career guide presentation.pptx
GDSC career guide presentation.pptx
 
Learning to code in 2020
Learning to code in 2020Learning to code in 2020
Learning to code in 2020
 
12 best programming languages for web & app development
12 best programming languages for web & app development12 best programming languages for web & app development
12 best programming languages for web & app development
 
Flutter not yet another mobile cross-platform framework - i ox-kl19
Flutter   not yet another mobile cross-platform framework - i ox-kl19Flutter   not yet another mobile cross-platform framework - i ox-kl19
Flutter not yet another mobile cross-platform framework - i ox-kl19
 
The Ring programming language version 1.9 book - Part 6 of 210
The Ring programming language version 1.9 book - Part 6 of 210The Ring programming language version 1.9 book - Part 6 of 210
The Ring programming language version 1.9 book - Part 6 of 210
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
Introduction to programming languages
Introduction to programming languagesIntroduction to programming languages
Introduction to programming languages
 
Career potentials and opportunities in ICT
Career potentials and opportunities in ICTCareer potentials and opportunities in ICT
Career potentials and opportunities in ICT
 
Software development, mobile platforms, cloud services - Lean Development and...
Software development, mobile platforms, cloud services - Lean Development and...Software development, mobile platforms, cloud services - Lean Development and...
Software development, mobile platforms, cloud services - Lean Development and...
 
The Ring programming language version 1.5.1 book - Part 4 of 180
The Ring programming language version 1.5.1 book - Part 4 of 180The Ring programming language version 1.5.1 book - Part 4 of 180
The Ring programming language version 1.5.1 book - Part 4 of 180
 
Types Of Coding Languages: A Complete Guide To Master Programming
Types Of Coding Languages: A Complete Guide To Master ProgrammingTypes Of Coding Languages: A Complete Guide To Master Programming
Types Of Coding Languages: A Complete Guide To Master Programming
 
COMPUTER LANGUAGES AND THERE DIFFERENCE
COMPUTER LANGUAGES AND THERE DIFFERENCE COMPUTER LANGUAGES AND THERE DIFFERENCE
COMPUTER LANGUAGES AND THERE DIFFERENCE
 
Introduction Programming Languages
Introduction Programming LanguagesIntroduction Programming Languages
Introduction Programming Languages
 
The Ring programming language version 1.5.4 book - Part 5 of 185
The Ring programming language version 1.5.4 book - Part 5 of 185The Ring programming language version 1.5.4 book - Part 5 of 185
The Ring programming language version 1.5.4 book - Part 5 of 185
 

Recently uploaded

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 

Recently uploaded (20)

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 

Computer Programming Overview

  • 2. Outline ● Overview ● Paradigms ● Languages ● Popular Languages ● Choosing a Language ● Learning Resources ● Summary
  • 4. What is programming? ● Instructing a computer to carry out a task ● Creative process of turning ideas into software ● Empowers you to make computers do anything you want...?
  • 5. Why do we program? ● A natural, satisfying and creative experience ● Enables accomplishments previously possible. ● Opens new world of intellectual endeavor ● It is cool, fun and potentially very rewarding ● Anyone can do it!
  • 7. A programming paradigm is... ● A way of building the structure and elements of computer programs
  • 12. Multi-paradigm Languages ● Languages can support one or more paradigms
  • 15. Natural Language Examples ● Kids Make Nutritious Snacks ● Red Tape Holds Up New Bridge ● Police Squad Helps Dog Bite Victim ● Local High School Dropouts Cut in Half [ real news paper headlines, compiled by Rich Pattis ]
  • 16. Generations ● Machine Language (1GL) o Very low level, tedious and error-prone ● Assembly Language (2GL) o Usually specific to a particular processor family and environment ● High-level Languages (3GL) o Independent of a particular type of computer hardware ● Fourth Generation Languages (4GL) o Provides a higher level of abstraction than 3GLs o Closer to natural human languages ● Natural Language o Ambiguous and hard for computer to understand
  • 18. Common Features ● Data Types & Structures ● Operators, Conditionals and Loops ● Functions and Procedures ● Exception Handling
  • 20. Where do you begin? ● Depends on your problem domain o High performance, low latency applications o Complex computation and data analysis o Embedded and control systems o Enterprise applications o Dynamic web applications, widgets and APIs o Computer graphics and animation o Computer and console games o Mobile applications and games
  • 21. Choose a language that is... ● Best suited to the problem you are trying to solve ● Widely available o Runs on various hardware platforms o Supports multiple operating systems ● Widely used o Large, active community o Readily available libraries and frameworks
  • 25. ● Problem Domains o High performance applications o Complex computations o Embedded systems o Computer and console games o Mobile applications and games ● Communities o C - http://www.cprogramming.com o C++ - https://plus.google.com/communities/1 16007775542700637383 o Objective-C - https://plus.google.com/communities/1 03997592872376747208
  • 26. ● Problem Domains ● Client/server applications and APIs ● Mobile applications and games ● Communities o http://www.meetup.com/Londonjavaco mmunity/ o http://www.csharpforums.net o http://androidcommunity.com
  • 27. ● Problem Domains o Dynamic web sites and applications o Web Plugins and widgets o Web based games o Automation of system admin tasks o Popular choices for learning programming ● Communities o http://phpcommunity.org o https://www.python.org/community/ o https://www.ruby- lang.org/en/community/ o https://plus.google.com/communities/1 00875929141897651837
  • 29. Learning Resources ● Intensive Courses o http://www.makersacademy.com o https://generalassemb.ly ● Online courses o https://www.coursera.org/ o https://www.udacity.com/ o https://developers.google.com/university/ ● Online tutorials o https://www.khanacademy.org/ o http://www.codecademy.com ● Other online resources o http://www.w3schools.com o http://learncodethehardway.org/
  • 30.
  • 31.
  • 32. Aim of this Meetup Group ● Help you to Learn Computer Programming o Programming 101: Fundamentals o Programming 201: Hands-on Workshops o Coaching & Mentoring ● Build a fun and vibrant community of passionate programmers
  • 33. Recommended Approach ● Find an interesting problem to solve ● Choose a language and learn the fundamentals and language features ● Practice, practice, practice….. ● Have fun!
  • 34. ● ...is really not just about learning a language ● Computer Programming in general involves a lot more… In Summary...
  • 35. Think Big, Work Smart and Have Fun!
  • 36.

Editor's Notes

  1. Using pre-packaged software is not programming!
  2. Notes: Structural and Procedural paradigms were at the beginning of the computing era, and thereabouts also existed the Functional paradigm. Some languages are designed to support one particular paradigm (Smalltalk supports object-oriented programming, Haskell supports functional programming), while other programming languages support multiple paradigms (such as Object Pascal, C++, Java, C#, Scala,Visual Basic, Common Lisp, Scheme, Perl, Python, Ruby,Oz and F#). For example, programs written in C++ or Object Pascal can be purely procedural, purely object-oriented, or they can contain elements of both or other paradigms. Software designers and programmers decide how to use those paradigm elements. The next advance was the development of procedural languages. These third-generation languages (the first described as high-level languages) use vocabulary related to the problem being solved. For example, COBOL (COmmon Business Oriented Language) – uses terms like file, move and copy. FORTRAN (FORmula TRANslation) – using mathematical language terminology, it was developed mainly for scientific and engineering problems. ALGOL (ALGOrithmic Language) – focused on being an appropriate language to define algorithms, while using mathematical language terminology and targeting scientific and engineering problems just like FORTRAN. PL/I (Programming Language One) – a hybrid commercial/scientific general purpose language supporting pointers. BASIC (Beginners All purpose Symbolic Instruction Code) – it was developed to enable more people to write programs. C – a general-purpose programming language, initially developed by Dennis Ritchie between 1969 and 1973 at AT&T Bell Labs. All these languages follow the procedural paradigm. That is, they describe, step by step, exactly the procedure that should, according to the particular programmer at least, be followed to solve a specific problem. The efficacy and efficiency of any such solution are both therefore entirely subjective and highly dependent on that programmer's experience, inventiveness and ability.
  3. Notes: Structural and Procedural paradigms were at the beginning of the computing era, and thereabouts also existed the Functional paradigm. Some languages are designed to support one particular paradigm (Smalltalk supports object-oriented programming, Haskell supports functional programming), while other programming languages support multiple paradigms (such as Object Pascal, C++, Java, C#, Scala,Visual Basic, Common Lisp, Scheme, Perl, Python, Ruby,Oz and F#). For example, programs written in C++ or Object Pascal can be purely procedural, purely object-oriented, or they can contain elements of both or other paradigms. Software designers and programmers decide how to use those paradigm elements. The next advance was the development of procedural languages. These third-generation languages (the first described as high-level languages) use vocabulary related to the problem being solved. For example, COBOL (COmmon Business Oriented Language) – uses terms like file, move and copy. FORTRAN (FORmula TRANslation) – using mathematical language terminology, it was developed mainly for scientific and engineering problems. ALGOL (ALGOrithmic Language) – focused on being an appropriate language to define algorithms, while using mathematical language terminology and targeting scientific and engineering problems just like FORTRAN. PL/I (Programming Language One) – a hybrid commercial/scientific general purpose language supporting pointers. BASIC (Beginners All purpose Symbolic Instruction Code) – it was developed to enable more people to write programs. C – a general-purpose programming language, initially developed by Dennis Ritchie between 1969 and 1973 at AT&T Bell Labs. All these languages follow the procedural paradigm. That is, they describe, step by step, exactly the procedure that should, according to the particular programmer at least, be followed to solve a specific problem. The efficacy and efficiency of any such solution are both therefore entirely subjective and highly dependent on that programmer's experience, inventiveness and ability.
  4. Lisp Haskell Clojure
  5. Examples Java C++ Smalltalk Scala
  6. Examples Java Clojure Scala
  7. Natural Language Examples Kids Make Nutritious Snacks Red Tape Holds Up New Bridge Police Squad Helps Dog Bite Victim Local High School Dropouts Cut in Half [ real news paper headlines, compiled by Rich Pattis ]
  8. In computer science, primitive data type is either of the following:[citation needed] a basic type is a data type provided by a programming language as a basic building block. Most languages allow more complicated composite types to be recursively constructed starting from basic types. a built-in type is a data type for which the programming language provides built-in support. In most programming languages, all basic data types are built-in. In addition, many languages also provide a set of composite data types. Opinions vary as to whether a built-in type that is not basic should be considered "primitive".[citation needed] The actual range of primitive data types that is available is dependent upon the specific programming language that is being used. For example, in C, strings are a composite but built-in data type, whereas in modern dialects of BASIC and in JavaScript, they are assimilated to a primitive data type that is both basic and built-in. Classic basic primitive types may include: Character (character, char); Integer (integer, int, short, long, byte) with a variety of precisions; Floating-point number (float, double, real, double precision); Fixed-point number (fixed) with a variety of precisions and a programmer-selected scale. Boolean, logical values true and false. Reference (also called a pointer or handle), a small value referring to another object's address in memory, possibly a much larger one. More sophisticated types which can be built-in include: The Boolean type represents the values true and false. Although only two values are possible, they are rarely implemented as a single binary digit for efficiency reasons. Many programming languages do not have an explicit boolean type, instead interpreting (for instance) 0 as false and other values as true. Character and string types can store sequences of characters from a character set such as ASCII. Since most character sets include the digits, it is possible to have a numeric string, such as"1234". However, many languages would still treat these as belonging to a different type to the numeric value 1234 Any type that does not specify an implementation is an abstract data type. Abstract types can be handled by code that does not know or "care" what underlying types are contained in them. Programming that is agnostic about concrete data types is called generic programming. Arrays and records can also contain underlying types, but are considered concrete because they specify how their contents or elements are laid out in memory.
  9. High performance, complex computation - weather prediction, mathematical simulation, Embedded systems (e.g. cars, traffic lights, MRI scanners)
  10. http://norvig.com/21-days.html
  11. http://arihant427.blogspot.co.uk/2014/12/overview-of-c-language.html
  12. Python - great first language for beginners available on multiple platforms Ruby - “...focus on simplicity and productivity with an elegant syntax that is natural to read and easy to write” - www.ruby-lang.org PHP - Usually for web programming and “hackers” language of choice
  13. http://www.mooc-list.com/course/programming-everybody-coursera https://www.coursera.org/course/pythonlearn