Programming and Software - College of Charleston

Programming and Software - College of Charleston

Software and Operating Systems How Computers Do Things You Actually Care About The Uber Stack Applications Operating Systems Computers Processors

Memories Display Components Interconnects Materials Physics

This is what computers are made of! Remember, how we Interact with Computers User Applications Operating System

Hardware Remember our CPU is at the core Fetch, Decodes, Executes Instructions in sequence What is Software?

Software = Programs Programs = a set of computer instructions for carrying out computing tasks Programmer = He or She that attempts to correctly structure those instructions to achieve a desired result ! Programmers having fun at work The trouble with programmers is that you can

never tell what a programmer is doing until its too late. Programming Language A programming language is a convenient way of expressing instructions for a computer to execute Computer languages have evolved to the point where anyone can learn the basics of using one Low and High Level Languages

Programming languages are divided up into lowlevel languages and high-level languages. The closer the language is to machine language, the lower the level. In general, high level languages make things easier to develop large complex programs. Machine Language Every computer CPU has its machine language, the set of instructions it knows how to execute. This is the lowest level.

A typical instruction might say, get the contents of a memory location and put it in the accumulator (perhaps in preparation for adding it to another number). A Machine Language Program Put contents of memory location 10 in accumulator. Add contents of memory location 11 to accumulator. Put contents of accumulator back in location 10 It might look like

110011011111100111110000011110000010000011111 100010001000100100001000001111000001110000000 010000100010010000101010000111001110000011000 ..not very user friendly! But believe it or not, computers were programmed in machine language at one time. Natural Languages Computers dont understand English Need to deal with

Ambiguity Redundancy Literalness So, we express what a computer should do in a formal language Assembly Language Assembly language is machine language made slightly easier. LDACC 0A ; (current_balance)

LoaD ACCumulator ADD 0B ; (add new_check) STACC 0A ; (store new_balance) STore ACCumulator High-Level Languages In a high-level language the previous piece of code might look like this:

Input current_balance current_balance = current_balance +new_check; store current_balance Some High Level Languages Still in Use Today Fortran Basic PL/1 Cobol

C C++ VISUAL BASIC Pascal LISP ADA JAVA PHP Python

Simplifying The Translation High-level language Compiler Matrix::Compute(double* values, int size) { for(int i=0; i

values[i*size+j]<0.0) values[i*size+j] = values[j*size+i]; values[i*size+j] = 2*values[i*size+j]; } } } Assembly Language

Assembler Machine Code pushl %ebp movl %esp,%ebp movb hi_temp,%al addb lo_temp,%al movb $0,%ah adcb $0,%ah

movb $2,%bl idivb %bl movb %al,av_temp leave ret 1001010101101011010101010010101010111101 0000110101001110101011101011000110101001 0011010101010101010101101111010101010100 1111010101010101110101010101101110101011

0110101101011101000101010000101010101100 0100001010101010111110101010101011111111 Real world problem A real-world example is assigning gates at airports. Some constraints are: A plane that lands at time t1 should be assigned a gate for use at time t2 > t1. If a plane is at a gate, no other plane may be assigned that gate, etc.

Find an assignment of gates that minimizes passenger time (and perhaps distance). The Price of Failure The opening of the new Denver Airport was delayed for almost one year in 1994! The software which handled the routing of luggage from the gates to the various luggage carousels was so complex that it could not be fixed in time for the opening and the airport was two large to operate without it

The delay in opening cost over $1Million per day! Even 120 Computers couldnt figure this out! A small portion of the Denver Conveyer System Complexity Controlling complexity is the essence of

computer programming -Brian Kernigan Complexity Software is becoming more complex as we attempt to solve more complex and difficult problems Managing complexity is a huge problem in software reliability and cost The problem is getting worse, not better at the present time as reflected in industry software issues

worldwide This means Job security for SW developers! And, speaking of complexity Operating Systems: Software That Runs the Show Making everyones life a little easier.?

Operating System The OS is a collection of resident programs that manage the systems resources supervise the execution of processes provide useful services OS Components

An operating system is a collection of programs that perform the following tasks: Managing user requests (Supervisor) Interpreting user commands (User Interfaces) I/O control Memory management File management Execution-Monitoring Security

Multitasking System Calls The work of the OS comes about through system calls to one of the OS components. The system calls are initiated either by the user (e.g., by a mouse click) or by the user application software. For instance, saving a file to a directory location.

User Interface Most computer users used to interact with the OS by clicking on icons with the mouse. Some operating systems (e.g., Unix or Dos) typically use text-based interfaces. E.g., prompt prompt C:\ edit cs2

C:\ cd ipstack C\ipstack> ipconfig command The User Interface Text-based Command Line Interpreters (CLIs)

terse, powerful steeper learning curves, unforgiving Graphical User Interfaces (GUIs) intuitive,

user-friendly slower, less efficient A Typical Command Line Interface Contrasted with this File Management Files are collections of data arranged in a specified format for use by programs

Files can reside in memory as well as in peripheral devices such as disk drives, CD-ROMs or tape drives Every file has a name and attributes that specify its size, its location and its type File Manager Creating and maintaining references to a systems files is the responsibility of the file manager. The actual address of a file is a pathname, which is made up

of the folders in which the file is located (sometimes called directories) and the file name. Directories and Pathnames C:\CS2\Lec1.ppt CS2 Lec1.ppt Lec1.doc

Hard Disk C: Research Theater C:\Hobbies\ Hobbies

Art Reading The File Manager maintains the hierarchy between the physical and logical The File Manager Keeps Track of File

Types It is important to know what type of data is stored in any given set of locations Types include PROGRAM INSTRUCTIONS, TEXT, IMAGES, VIDEO, SOUND as well as numerical data such as INTEGERS and Real NUMBERS The file manager keeps track of the different types of data and its location The Memory Manager

When we click on a Word document, the OS must bring first the Word program into RAM, and then the particular document we wish to work on. Allocating segments of RAM to each program is the responsibility of the memory manager. Security The OS provides some basic security features Password access Firewall to block unwanted access from the Internet

Monitors your virus control programs Monitors the integrity of your files Generally insufficient, which requires additional security software to be added to the system Questions ? Command line lab https://www.youtube.com/watch?v=PGjLhOhMLXc

Lab instructions Go to: https://www.codecademy.com Open an account or use your google/facebook account to login Find the tutorial: Learn the command line Complete the tutorial. Submit a snapsot of the screen that indicates the completed lab Command line on your computer If you have a Mac, you can use command line by using the program terminal! Just open spotlight search and type: terminal

If you have a windows machine you have two options: Download Cygwin: https://cygwin.com/install.html Enable Linux: http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-s hell-on-windows-10/

Recently Viewed Presentations

  • Cinematic Techniques - salamlit.weebly.com

    Cinematic Techniques - salamlit.weebly.com

    Cinematic Techniques . How movies are made. Cinematic techniques. the methods a director uses to communicate meaning and to evoke particular emotional responses in viewers. Shots and Framing. Shot: a single piece of film uninterrupted by cuts.
  • 1.1 Safety in the Science Classroom

    1.1 Safety in the Science Classroom

    See pages 189 - 191 This manganese is Mn3+ sulphur is S2- Lowest common multiple of 3 and 2 is 6 2 Mn3+ ions and 3 S2- ions Try the name for TiF4 (c) McGraw Hill Ryerson 2007 Polyatomic Ions...
  • wp.racesofsedgwickcounty.org

    wp.racesofsedgwickcounty.org

    We get sloppy in radio etiquette because machines are so convenient. DO use the repeater to monitor and to make initial contact with a station, that's what it's for. But if you need to carry on a conversation of more...
  • www.doe.in.gov

    www.doe.in.gov

    What words do you think of when you hear. Root Cause Analysis? @EducateIN @ntwilliamson @GinaGRomano ? This is a Pear Deck Text Slide ? To edit the type of question, go back to the "Ask Students a Question" in the...
  • Team 4 Brandon Erinn Matt Kunal Video Rental

    Team 4 Brandon Erinn Matt Kunal Video Rental

    Must have an Internet capable device in order to stream movies to TV (Xbox 360, PS3, TiVo, Internet-connected Blu-Ray players, Internet-connected HD TVs, Blu-Ray Home Theater Systems) PCs must meet certain system requirements in order to stream movies.
  • Intelligent Agents - University of California, Berkeley

    Intelligent Agents - University of California, Berkeley

    Goal-based agents Utility-based agents Learning agents Intelligent Agents Chapter 2 Outline Agents and environments Rationality PEAS (Performance measure, Environment, Actuators, Sensors) Environment types Agent types Agents An agent is anything that can be viewed as perceiving its environment through sensors...
  • CARA Portable Communications Unit - caraham.org

    CARA Portable Communications Unit - caraham.org

    A project proposal to the February 2012 General Meeting of the Calgary Amateur Radio Association A CARA Portable Communications Unit The Need/Opportunity Hook up and go On the inside On the inside This unit has portable heating and cooling units...
  • Eating a balanced Diet - MR JEFF&#x27;S SECONDARY SCIENCE 1

    Eating a balanced Diet - MR JEFF'S SECONDARY SCIENCE 1

    The amount of each type of nutrient a person needs varies between individuals. What factors might affect how much a person needs? Dietary guidelines carbohydrate (50%) vitamins and minerals (1%) protein (14%) fat (35%) Why do some people need more...