Programming Merit Badge Slide Show

28
Programming Merit Badge By Nate Swedberg

Transcript of Programming Merit Badge Slide Show

Page 1: Programming Merit Badge Slide Show

Programming Merit BadgeBy Nate Swedberg

Page 2: Programming Merit Badge Slide Show

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.

Page 3: Programming Merit Badge Slide Show

The first computers

Charles Babbage creates the difference machine.

Page 4: Programming Merit Badge Slide Show

The first computers

The U.S government built ENIAC

Page 5: Programming Merit Badge Slide Show

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

Page 6: Programming Merit Badge Slide Show

Grace Hopper creates first compiler

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

Page 7: Programming Merit Badge Slide Show

First generation of programming languages

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

Page 8: Programming Merit Badge Slide Show

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

Page 9: Programming Merit Badge Slide Show

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.

Page 10: Programming Merit Badge Slide Show

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.

Page 11: Programming Merit Badge Slide Show

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

Page 12: Programming Merit Badge Slide Show

Minecraft was programmed using Java

Page 13: Programming Merit Badge Slide Show

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

Page 14: Programming Merit Badge Slide Show

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

Page 15: Programming Merit Badge Slide Show

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

Page 16: Programming Merit Badge Slide Show

Hearthstone’s backend is written in C++

Page 17: Programming Merit Badge Slide Show

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

Page 18: Programming Merit Badge Slide Show

Haskell - the black magic of programming languages

“Avoid success at all costs”

Haskell is used for: Aerospace and defenceFinanceWeb startupsHardware design firms

Page 19: Programming Merit Badge Slide Show

SQL - a specialized language to manage data

used for relational database management systems

Page 20: Programming Merit Badge Slide Show

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”

Page 21: Programming Merit Badge Slide Show

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

Page 22: Programming Merit Badge Slide Show

This security check was made using Javascript

Page 23: Programming Merit Badge Slide Show

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

Page 24: Programming Merit Badge Slide Show

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.

Page 25: Programming Merit Badge Slide Show

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.

Page 26: Programming Merit Badge Slide Show

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

Page 27: Programming Merit Badge Slide Show

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.

Page 28: Programming Merit Badge Slide Show

Careers in ProgrammingComputer ProgrammerSoftware ArchitectWeb DeveloperInformation Security AnalystComputer Systems Administrator