Programming Merit Badge Slide Show
-
Upload
nathaniel-swedberg -
Category
Technology
-
view
647 -
download
0
Transcript of Programming Merit Badge Slide Show
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