410 likes | 424 Views
Introduction to Programming. Our Book in CS1160. 1.1. Why Program? Lets watch a video. Why Program?. Computer – programmable machine designed to follow instructions Program – instructions in computer memory to make it do something
E N D
1.1 Why Program? Lets watch a video
Why Program? Computer – programmable machine designed to follow instructions Program – instructions in computer memory to make it do something Programmer – person who writes instructions (programs) to make computer perform a task SO, without programmers, no programs; without programs, a computer cannot do anything
1.2 Computer Systems: Hardware and Software
“Computers” • Different kinds of “computers”
Main Hardware Component Categories: • Central Processing Unit (CPU) • Main Memory • Secondary Memory / Storage • Input Devices • Output Devices
Main Hardware Component Categories Figure 1-2 May be special purpose
Central Processing Unit (CPU) Comprised of: Control Unit Retrieves and decodes program instructions Coordinates activities of all other parts of computer Arithmetic & Logic Unit Hardware optimized for high-speed numeric calculation Hardware designed for true/false, yes/no decisions
CPU Organization Figure 1-3
Main Memory • It is volatile. Main memory is erased when program terminates or computer is turned off • Also called Random Access Memory (RAM) • Organized as follows: • bit: smallest piece of memory. Has values 0 (off, false) or 1 (on, true) • byte: 8 consecutive bits. Bytes have addresses.
Main Memory • Addresses – Each byte in memory is identified by a unique number known as an address.
Main Memory • Above the number 149 is stored in the byte with the address 16, and the number 72 is stored at address 23.
Secondary Storage • Non-volatile: data retained when program is not running or computer is turned off • Comes in a variety of media: • solid state: SSD (the data is stored on interconnected flash memory chips that contain arrays of transistors that retain the data even when there's no power present) • magnetic: hard drive - uses movable arm to read/write • optical: CD-ROM, DVD • Flash drives (permanent and connected to the USB port) MORE: (not required) FYI how dotransistors work: video 1 or video 2
Input Devices • Devices that send information to the computer from outside • Many devices can provide input: • Keyboard, mouse, scanner, digital camera, microphone • Disk drives, CD drives, and DVD drives
Software-Programs That Run on a “Computer” • Categories of software: • System software: programs that manage the computer hardware and the programs that run on them. Examples: operating systems, utility programs, software development tools (could also be called application software) • Application software: programs that provide services to the user. Examples : word processing, games, programs to solve specific problems, APPS
Kinds of Programs • System Software • Applicaitons
Software-Programs ---System Software--- Operating Systems • Operating Systems • Unix, MacOS, Windows, iOS, Android, others.. Smart Tip: Mobile iOS and Android notactually operating systems
Software-Programs ---System (application) Software--- Software Development Tools • Program (application) used in the development of applications • Other Name: IDE= Integrated Development Environment.. Microsoft VisualStudio Eclipse NetBeans
Software-Programs ---System Software--- Utility Programs • Utility Programs • Beyond OS but, often to do with system components
Software-Programs ---System Software--- Server Software • Typically think of Web and Data Layers
Software-Programs ---Application Software--- Consumer Software • Many genres
Software-Programs ---Application Software--- Business Software • Overlaps with Sever Software
A Special Note ---not everything on one computer • Today’s computer applications often involve multiple programs that run on multiple machines. Consider the following --- a typical app –like maybe the amazon app or your favorite travel app or …..
Modern app Cloud and/or Company owned iOS/Android Other services like inventory Programs-specific to This app ID system –can use 3rd party id (like facebook/google) Database 3rd Party –external sites
WOW ---that’s a lot • Don’t worry --- we are just basic 1st class in program • But isn’t it exciting the kinds of things you can learn in CS
1.3 Programs and Programming Languages
Programs and Programming Languages • A program is a set of instructions that the computer follows to perform a task • We start with an algorithm, which is a set of well-defined steps.
Machine Language • Although the previous algorithm defines the steps for calculating the gross pay, it is not ready to be executed on the computer. • The computer only executes machinelanguage instructions
Machine Language • Machine language instructions are binary numbers, such as1011010000000101 • Rather than writing programs in machine language, programmers use programming languages.
Programs and Programming Languages • LEVELS of languages: • Low-level: used for communication with computer hardware directly. Often written in binary machine code (0’s/1’s) directly. • High-level: closer to human language
Some Well-Known Programming Languages Objective-C C++ BASIC Ruby Java FORTRAN NodeJS Visual Basic C# COBOL JavaScript C Python PHP Swift
Different Kinds of Programming Languages • Interpreted • When you run the program (“run-time”) there is a separate program called the interpreter that on the fly converts your high-level language to machine level code to run it • Can be slower • Names: Interpreted Languages, Scripting • Examples: PHP, Perl, JavaScript, Ruby, NodeJS…. • Compiled • Have a process called “COMPLIATION” that converts high-level language to machine level code • Run by passing executable file (machine level code) to the O.S. • Fastest in general • Names: Binary languages, Compiled Languages • Examples: C, C++, Swift • Managed (Pseudo-Compiled) • Have a “Pseudo-Compilation” process that converts high-level language to an in-between language that is independent of the machine (OS,chipset) • Run by passing intermediate file to an Interpreter, often called a Virtual Machine • Faster than Interpreted, still have portability • Sometimes language lets you compile down to executable/machine language. • Names: Managed Code, Pseudo-Compiled Code • Examples: Java, .NET, C#
Different Kinds of Programming Languages THIS IS WHAT WE ARE DOING INTHIS CLASS • Compiled • Have a process called “COMPLIATION” that converts high-level language to machine level code • Run by passing executable file (machine level code) to the O.S. • Fastest in general • Names: Binary languages, Compiled Languages • Examples: C, C++, Swift
Different Kinds of Programming Languages • Interpreted • When you run the program (“run-time”) there is a separate program called the interpreter that on the fly converts your high-level language to machine level code to run it • Can be slower • Names: Interpreted Languages, Scripting • Examples: PHP, Perl, JavaScript, NodejS, Ruby….
Different Kinds of Programming Languages • Managed (Pseudo-Compiled) • Have a “Pseudo-Compilation” process that converts high-level language to an in-between language that is independent of the machine (OS,chipset) • Run by passing intermediate file to an Interpreter, often called a Virtual Machine • Faster than Interpreted, still have portability • Sometimes language lets you compile down to executable/machine language. • Names: Managed Code, Pseudo-Compiled Code • Examples: Java, .NET, C#
Compiled Languages From a High-Level Program to an Executable File • Create file containing the program with a text editor. • Run preprocessor to convert source file directives to source code program statements. • Run compiler to convert source program into machine instructions. • Run linker to connect hardware-specific code to machine instructions, producing an executable file. • Steps b–d are often performed by a single command or button click. • Errors detected at any step will prevent execution of following steps.
Integrated Development Environments (IDEs) • An integrated development environment, or IDE, combine all the tools needed to write, compile, and debug a program into a single software application. • Examples are Microsoft Visual Studio C++, Eclipse, Xcode, Turbo C++ Explorer, CodeWarrior, etc. I am REQUIRING you to use Microsoft Visual Studio Community