Programming Merit Badge Slide Show

Post on 08-Jan-2017

647 views 0 download

transcript

Programming Merit BadgeBy Nate Swedberg

History of ProgrammingA programming language is a way that humans can communicate with computers. There are many different types of programming languages that are used today. Like real languages they are constantly changing and evolving.

The first computers

Charles Babbage creates the difference machine.

The first computers

The U.S government built ENIAC

Von Neumann creates the fundamental concepts of programming

1.Programs should not be hardwired, making the computer architecture more simple

2.Programs should be able to branch logically instead of being linear

Grace Hopper creates first compiler

The first compiler A-0 turned statements into ones and zeros which the computer could understand.

First generation of programming languages

Fortran: specialized in scientific computingCobol: specialized for businessLisp: specialized for artificial intelligence

C is developed by Dennis Ritchie

Fixed most of the problems of Pascalwas built to be fast and powerful at the cost of

being hard to read

Object Oriented programming is created

Object Oriented programs are organized around “objects” - structured chunks of data - instead of focused on actions. The design emphasis becomes less on logic and more on data. Can help reduce “spaghetti code” through the use of class inheritance.

Programming LanguagesA programming language is a way that

humans can communicate with computers. There are many different types of

programming languages that are used today. Like real languages they are constantly

changing and evolving.

Java - The workhorse of programming languages

“C++ with all the knives, guns, and clubs put away.”

Java is one of the most widely used programming languages and is used in server side development due to its stability. Used by industries such as social media, financial services, e commerce, and insurance applications

Minecraft was programmed using Java

Python - simple zen like programming language

“Compile, run and ship your pseudo-code.”

Python is used for: scientific and numeric computingWeb and Internet DevelopmentTeaching programmingSoftware DevelopmentDesktop GUIs

C - The foundation for many other language

“Combines the power of assembly language with the readability and maintainability of assembly language.”

C is used for: Computer applicationsEmbedded SoftwaresCreating compilersUnix Kernel

C++ - High performance programming language

“Enough rope to shoot yourself in the foot.””

C++ is used for: Software for large scale ecommercevideogamesAdobe systemsCAD (Autodesk)Most microsoft applicationsBrowsers (Firefox))

Hearthstone’s backend is written in C++

Objective-C - apple’s programming language

“All the memory safety of C combined with all the blazing speed of Smalltalk.”

Objective- C is used for: Iphone appsOS XIOS

Haskell - the black magic of programming languages

“Avoid success at all costs”

Haskell is used for: Aerospace and defenceFinanceWeb startupsHardware design firms

SQL - a specialized language to manage data

used for relational database management systems

Lisp - an old distinguished programming language

Lisp is used for: Jak and Daxter“Artificial Intelligence” (Watson) Web browsers

“To iterate is human; to recurse is divine”

Javascript - necessary language for web development

“A vastly underrated language that became a vastly overrated language.”

Javascript is used for: video game developmentinteractive web functions

This security check was made using Javascript

Perl - the duct tape of the internet

“If you put a million monkeys at a million keyboards, one of them will eventually write a Java program. The rest of them will write Perl programs.”

JPerl is used for:Web automationDatabaseEmail handlingText generationSystem Administration

Intellectual PropertyIntellectual property refers to the legal ownership of what one thinks up. This could be music you wrote, a movie you made or an application that you programmed.

Software patents

Software patents allow programmers to monetize their work by ensuring that their work will not be copied without their permission.

Not everybody thinks this is a good idea. Copyright law already prevents copying, and patents can be awfully broad.

Licensing and owning software

Owning software is where you have every right to do what you want with the software or code.

Licensing is where you can only do certain things detailed in the license agreement

Open source vs Commercial vs Freeware

Open source: can be freely used, changed, and shared by anyone. But still comes with a license that may dictate how you can use it, especially if you change it.

Commercial: produced for sale and is usually protected under a license agreement. Usually closed source.

Freeware: available at no cost but may have restrictions on redistribution or on modification, often not open source.

Careers in ProgrammingComputer ProgrammerSoftware ArchitectWeb DeveloperInformation Security AnalystComputer Systems Administrator