computer programming overview

37
Computer Programming Overview

Upload: agorolabs

Post on 19-Jul-2015

153 views

Category:

Software


0 download

TRANSCRIPT

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 Languageo 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

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 courseso https://www.coursera.org/

o https://www.udacity.com/

o https://developers.google.com/university/

● Online tutorialso https://www.khanacademy.org/

o http://www.codecademy.com

● Other online resourceso http://www.w3schools.com

o http://learncodethehardway.org/

Aim of this Meetup Group

● Help you to Learn Computer Programmingo 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?