400 likes | 489 Views
Welcome to CMPE003 Personal Computer Concepts: Hardware and Software. Winter 2003 UC Santa Cruz Instructor: Guy Cox. Assignments. Assignment #6 – DUE TODAY Due March 12, 2003 Spreadsheets – (MS Excel) Generate a monthly budget spreadsheet. Final Project.
E N D
Welcome to CMPE003 Personal Computer Concepts: Hardware and Software Winter 2003 UC Santa Cruz Instructor: Guy Cox
Assignments • Assignment #6 – DUE TODAY • Due March 12, 2003 • Spreadsheets – (MS Excel) • Generate a monthly budget spreadsheet
Final Project • Due no later than March 19, 2003 • You can turn in earlier.. • Power Point presentation • 4 pages • Extra points for special effects, animations • Up load to your CATS account and write file location on your printout http://www.soe.ucsc.edu/classes/cmpe003/Winter03/finalproject.html
Programming Languages: Telling the Computers What to Do Chapter 16
Objectives • Describe what programmers do and do not do • Explain how programmers define a problem, plan the solution and then code, test, and document the program • List and describe the levels of programming languages – machine, assembly, high level, very high level, and natural • Describe the major programming languages in use today • Explain the concepts of object-oriented programming
Program Set of instructions written in a programming language that tells the computer what to do
Programmers • Prepare instructions that make up the program • Run the instructions to see if they produce the correct results • Make corrections • Document the program • Interact with • Users • Managers • Systems analysts • Coordinate with other programmers to build a complete system
The Programming Process • Defining the problem • Planning the solution • Coding the program • Testing the program • Documenting the program
The Programming Process: Defining the Problem • What is the input • What output do you expect • How do you get from the input to the output
The Programming Process: Planning the Solution • Algorithms • Detailed solutions to a given problem • Sorting records, adding sums of numbers, etc.. • Design tools • Flowchart • Pseudocode • Has logic structure, but no command syntax • Desk-checking • Personal code design walk through • Peer Reviews • “Code walk through”/structured walk through
The Programming Process: Planning the Solution Accept series of numbers and display the average
The Programming Process: Coding the Program • Translate algorithm into a formal programming language • Within syntax of the language • How to key in the statements? • Text editor • Programming environment • Interactive Development Environment (IDE)
The Programming Process: Testing the Program • Translation – compiler • Translates from source module into object module • Detects syntax errors • Link – linkage editor (linker) • Combines object module with libraries to create load module • Finds undefined external references • Debugging • Run using data that tests all statements • Logic errors
The Programming Process: Documenting the Program • Performed throughout the development • Material generated during each step • Problem definitions • Program plan • Comments within source code • Testing procedures • Narrative • Layouts of input and output • Program listing
Choosing a Language • Choice made for you • What is available? • Required interface • What do you know best? • Which language lends itself to the problem to be solved?
Language Generations • Low levels closer to binary • High levels closer to human code • Five Generations: • Procedural Languages • Machine language • Assembly language • High-level language – 3GL • Nonprocedural Languages • Very high-level language – 4GL • Natural language – 5GL
Machine Language • Written in strings of 0 and 1 • Displayed as hexadecimal • Only language the computer understands • All other programming languages are translated to machine language • Computer dependent
Assembly Language • Mnemonic codes • Add, sub, tst, jmp… • Names for memory locations • Computer dependent • Assembler translates from Assembly to machine language
3GL: High-Level Languages • 1960s • Languages designed for specific types of problems and used syntax familiar to the people in that field • FORTRAN: (FORmula TRANslator) • Math • COBOL: (COmmon Business Oriented Language) • Business • Compile translates from high-level language to machine language
4GL: Very High-Level Languages • Programmer specifies the desired results; the language develops the solution • Ten times more productive with a 4GL than a procedural language • Query Languages • Retrieve information from databases • Easy to learn and use
5GL: Natural Languages • Resemble natural or spoken English • Translates human instructions into code the computer can execute • Commonly used by non-programmers to access databases
Third Generation Languages: Traditional Programming • Describe data • Describe procedures or operations on that data • Data and procedures are separate
Third Generation Languages • FORTRAN • 1954 • Represent complex mathematical formulas • C/C++ has replaced FORTRAN • COBOL • 1959 • Business • Large complex data files • Formatted business reports
Average a list of numbers Accept series of numbers and display the average
Third Generation Languages FORTRAN
Third Generation Languages • BASIC (Beginners All-purpose Symbolic Instruction Code) • 1965 • Popularity grew with PC popularity (1970s) • Easy to learn • Used little memory • Bill Gates beginnings.. MS Basic • RPG • 1965 • Report generation – quickly creates complex reports
Third Generation Languages • MS Visual Basic • 1987 • Create complex user interfaces • Uses standard Windows features • Event-driven – user controls the program • C • 1972 • Efficient code – the language of UNIX • Portability • C++ • Enhancement of C (Object Oriented)
OOP: Object-Oriented Programming • Object • Self-contained unit of data and instructions • Includes • Related facts (data) • Related functions (instructions to act on that data) • Example • Object: cat • Data: feet, nose, fur, tail • Functions: eat, purr, scratch, walk • Cat: Kitty, Tabby
OOP: Object-Oriented Programming • Encapsulation – describes the objects self- containment • Attributes – the facts that describe the object • Methods / operations – the instructions that tell the object what to do • Instance – one occurrence of an object • Messages – activate methods • Polymorphism Example: A ‘walk’ message causes Kitty to move (in a cat-like way)
OOP: Object-Oriented Programming • Class – defines characteristics unique to all objects of that class • Inheritance – Objects of a class automatically posses all of the characteristics of the class from which it was derived • Subclass – inherits characteristics from class and defines additional characteristics that are unique • Instance – actual occurrence of an object
OOP: Object-Oriented Programming Example Class: Boat Subclass: Canoe Subclass: Powerboat Subclass: Sailboat Instance: Chardonnay II
OOP: Object-Oriented Programming Using Objects in Business Class: Customer Subclass: Retail or Wholesale Instance: John Smith Retail and Wholesale customers automatically inherit customer address since it is part of the Customer class
OOP: Object-Oriented Programming Languages • C++ Can write both structured and object-oriented code • Visual Basic Rudimentary features of object-oriented language
Third Generation Languages Java • Cross-platform • Java Virtual Machine (JVM) • Sits on top of computer’s regular platform • Translates compiled Java code into instructions for the specific platform • Applets
Learning to Program • Enroll in courses • Learn logic as well as language syntax • Read books, articles • Use tutorials • View Sample code • Write code (start small) • Enjoy