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

Programming languages
Programming languagesProgramming languages
Programming languagesSimon Mui
 
Introduction To Computer Programming
Introduction To Computer ProgrammingIntroduction To Computer Programming
Introduction To Computer ProgrammingHussain Buksh
 
software development and programming languages
software development and programming languages software development and programming languages
software development and programming languages PraShant Kumar
 
Generations of programming_language.kum_ari11-1-1-1
Generations of programming_language.kum_ari11-1-1-1Generations of programming_language.kum_ari11-1-1-1
Generations of programming_language.kum_ari11-1-1-1lakshmi kumari neelapu
 
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
 
computer languages
computer languagescomputer languages
computer languagesRajendran
 
Program & language generation
Program & language generationProgram & language generation
Program & language generationBuxoo Abdullah
 
Programming Language
Programming  LanguageProgramming  Language
Programming LanguageAdeel Hamid
 
Generation of computer languages
Generation of computer languagesGeneration of computer languages
Generation of computer languageskitturashmikittu
 
Coding vs programming
Coding vs programmingCoding vs programming
Coding vs programmingAman Kumar
 
Basic programming concepts
Basic programming conceptsBasic programming concepts
Basic programming conceptssalmankhan570
 
History of Programming Language
History of Programming LanguageHistory of Programming Language
History of Programming Languagetahria123
 
Types of Programming Languages
Types of Programming LanguagesTypes of Programming Languages
Types of Programming LanguagesJuhi Bhoyar
 
Intro To Programming Concepts
Intro To Programming ConceptsIntro To Programming Concepts
Intro To Programming ConceptsJussi Pohjolainen
 
Programming Fundamental Slide No.1
Programming Fundamental Slide No.1Programming Fundamental Slide No.1
Programming Fundamental Slide No.1Arslan Hussain
 

What's hot (20)

Programming languages
Programming languagesProgramming languages
Programming languages
 
Introduction To Computer Programming
Introduction To Computer ProgrammingIntroduction To Computer Programming
Introduction To Computer Programming
 
software development and programming languages
software development and programming languages software development and programming languages
software development and programming languages
 
Generations of programming_language.kum_ari11-1-1-1
Generations of programming_language.kum_ari11-1-1-1Generations of programming_language.kum_ari11-1-1-1
Generations of programming_language.kum_ari11-1-1-1
 
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
 
computer languages
computer languagescomputer languages
computer languages
 
Program & language generation
Program & language generationProgram & language generation
Program & language generation
 
Introduction to programming languages
Introduction to programming languagesIntroduction to programming languages
Introduction to programming languages
 
Programming Language
Programming  LanguageProgramming  Language
Programming Language
 
Programming
ProgrammingProgramming
Programming
 
Generation of computer languages
Generation of computer languagesGeneration of computer languages
Generation of computer languages
 
Computer Programming
Computer ProgrammingComputer Programming
Computer Programming
 
Coding vs programming
Coding vs programmingCoding vs programming
Coding vs programming
 
Computer programming concepts
Computer programming conceptsComputer programming concepts
Computer programming concepts
 
Basic programming concepts
Basic programming conceptsBasic programming concepts
Basic programming concepts
 
History of Programming Language
History of Programming LanguageHistory of Programming Language
History of Programming Language
 
Types of Programming Languages
Types of Programming LanguagesTypes of Programming Languages
Types of Programming Languages
 
Intro To Programming Concepts
Intro To Programming ConceptsIntro To Programming Concepts
Intro To Programming Concepts
 
Programming Fundamental Slide No.1
Programming Fundamental Slide No.1Programming Fundamental Slide No.1
Programming Fundamental Slide No.1
 
Programming Language
Programming LanguageProgramming Language
Programming Language
 

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.pptxAryanSharma853911
 
GDSC career guide presentation.pptx
GDSC career guide presentation.pptxGDSC career guide presentation.pptx
GDSC career guide presentation.pptxDishaSharma737984
 
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
 
What is the best programming language for your web product?
What is the best programming language for your web product?What is the best programming language for your web product?
What is the best programming language for your web product?MobiDev
 

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
 
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
 
What is the best programming language for your web product?
What is the best programming language for your web product?What is the best programming language for your web product?
What is the best programming language for your web product?
 

Recently uploaded

WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...chiefasafspells
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburgmasabamasaba
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 

Recently uploaded (20)

WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 

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