ITP 101 Intro to IT Programming Overview • Programming lifecycle • Program design • Testing and debugging 2 Facebook? 3 Why Learn Programming? • Intellectually challenging • Careers in programming – Entry level programmer averages $54,139 – Senior software engineer averages $115,931 – Salary data from Salary.com • Manage projects that involve software – Interface with other programmers – Also know the capabilities and limitations – Understand the lingo • Program for mobile devices 4 What is a program? • A series of step by step instructions for solving a problem – Normally, this problem must be well defined – Problem must be easily broken down into individual tasks 5 Programming • Also known as the software development life cycle • Six steps 1. 2. 3. 4. 5. 6. Specification Design Code Test Documentation Maintenance 6 1. Program Specification • Define the objectives – The problem you are trying to solve! – The more specific, the better • Define the input and output – Typically, this is the end user definition, not the programmer • State the requirements for processing – Any particular prerequisite steps • Document! 7 2. Program Design • Plan a solution • Programming techniques – Top down design • Take the problem, and continuously break it down into smaller chunks until it cannot be broken down any more – Pseudocode • Write the code in plain English before writing in computer code – Flowcharts • Used to represent the flow of the program from the programmer’s perspective • Logic structures are used here (for program branching) • In reality, every large program uses a combination of these and other techniques. They are not mutually exclusive. 8 Software Engineering • UML – Unified Modeling Language – A language for modeling software systems – A blueprint for software – Used for all aspects of design of software – Managers should know and understand UML 9 3. Programming • Actually writing the code • Elements to a good program – Reliable – Structured – Uses the most appropriate language – Secure – can handle bad data 10 Geek Joke 11 Coding • Programming language – Language that expresses computations that can be performed by a computer • A computer program is – “A set of coded instructions that enables a machine, especially a computer, to perform a desired sequence of operations.” – American Heritage Dictionary • Programming instructions are written using a “programming language” – Examples: C/C++, Java, Python, Objective-C, BASIC – LOTS of programming languages – Different uses for different languages 12 Example Java Code MyStory.java 13 4. Testing • Debugging – Testing and eliminating errors – Syntax error – language violation – Logic error – problem with the design of the program • Testing – Use sample data 14 • Software Release Cycle Pre-Alpha – Initial development – Tested while functionality is developed • Alpha – Most of the functionality is there – Sent to internal testing for functionality • Beta – Public phase testing – Used for the public to give feedback to developers – Functionality may still be implemented and changed • Release Candidate – All functionality is present – Last phase of testing for public • Release – Sent to public as a “finished” product 15 5. Documentation • Actually done throughout the entire process • Documentation for users, operators, and programmers – Writing end-user documentation is the hardest part • Programmers should never write this 16 6. Maintenance • > 75% of cost is devoted to maintenance • User’s needs change over time • Program may not be written to accommodate future changes in programming – Example: multi-core processing • Operational Maintenance 17 Software to Write Software • Software tools for aiding programmers to write source code • All programming can be done with Notepad! • Most development is done using an Integrated Development Environment (IDE) – Microsoft Visual Studio – used on PCs for C, C++, C# – Eclipse – used for Java, Android, … – Xcode – used on Macs for Objective-C (iPhone, iPad) 18 Procedural vs. OO Programming • Procedural Programming – Step-by-step approach to solving a problem – Used extensively until the development of objectoriented programming • Object-Oriented Programming (OOP) – Program is organized into discrete units called objects – Objects contain the data and the processing instructions – Allows for code to be reused easily, – Programming can be broken down into portions to be independently developed 19 Programming Languages • Low-level languages – Machine language – bunch of 1’s and 0’s – Assembly Language – language to directly manipulate hardware • High-level languages – C, C++, C#, Java, Objective-C – Compiler – directly translates an entire high-level language into another language (high level or low level) – Interpreter – translates the language in real time • Examples – Python – Query Languages – SQL being the most common – Scripting Languages – Javascript, Perl, etc. 20 Top 20 Languages by Book Sales http://readwrite.com/2012/04/10/java-leads-programming-languag 21 History of Programming Languages • http://www.rackspace.com/blog/infographic -evolution-of-computer-languages/ • http://c179631.r31.cf0.rackcdn.com/Infogr aphic_Programming_Rackspace_Final_Ve rsion.png • http://en.wikipedia.org/wiki/History_of_pro gramming_languages 22 Complied Programs Examples: 23 C, C++, Objective-C Compiling Code 24 Interpreted Programs Example: 25 Python • Great first programming language • Runs on Windows, Linux/Unix, Mac OS X, and has been ported to the Java and .NET virtual machines • Free to use, even for commercial products, because of its OSI-approved open source license • Named after Monty Python 26 Sequencing – Making a PB&J • Put the following steps into order Dip the knife into the jelly and spread onto one slice of bread. Eat and enjoy! Dip the knife into the peanut butter and spread onto one slice of bread. Cut the sandwich in half. Get out 2 slices of bread, peanut butter, jelly and a knife. Put the pieces of bread together. Open the jars of peanut butter and jelly. 27 PB&J • Steps in order 1. Get out 2 slices of bread, peanut butter, jelly and a knife. 2. Open the jars of peanut butter and jelly. 3. Dip the knife into the peanut butter and spread onto one slice of bread. 4. Dip the knife into the jelly and spread onto one slice of bread. 5. Put the slices of bread together. 6. Cut the sandwich in half. 7. Eat and enjoy. 28 Hello World • In a file named HelloWorld.py print 'Hello World' 29 Java uses a Compiler and Interpreter 30 Large-scale Development • Need to have a way to manage the source code • SCM – Source Code Management – Most popular is SVN – Subversion – Programmers check-in and check-out code – As you check-in code that you’ve worked on, the server (SVN) process the changes and integrate them into the rest of the project 31 Careers in IT • Programmer / Software Engineer – – – – Create programs Bachelors in CS, or equivalent experience Average salary is $72,000 Also work on a contractual basis • Quality Assurance (QA) / Tester – Write and run test procedures – Average salary is $66,000 • Quality Assurance Manager – Average salary is $90,000 32 Programmer Salaries 33
© Copyright 2026 Paperzz