Lesson 06: Basics of Software Development (W02D2



Similar documents
Software. Programming Language. Software. Instructor Özgür ZEYDAN. Bülent Ecevit University Department of Environmental Engineering

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Example of Standard API

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

Chapter 2 System Structures

Fall Lecture 1. Operating Systems: Configuration & Use CIS345. Introduction to Operating Systems. Mostafa Z. Ali. mzali@just.edu.

Software: Systems and Application Software

1.1 Electronic Computers Then and Now

OPERATING SYSTEM SERVICES

Chapter 3: Operating-System Structures. Common System Components

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

4.1 Introduction 4.2 Explain the purpose of an operating system Describe characteristics of modern operating systems Control Hardware Access

Chapter 3 Operating-System Structures

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Operating Systems. Notice that, before you can run programs that you write in JavaScript, you need to jump through a few hoops first

Unit 4 Objectives. System Software. Component 4: Introduction to Information and Computer Science. Unit 4: Application and System Software Lecture 2

3 SOFTWARE AND PROGRAMMING LANGUAGES

CS3600 SYSTEMS AND NETWORKS

Operating System Structures

Running Windows on a Mac. Why?

Operating System Overview. Otto J. Anshus

Operating System Today s Operating Systems File Basics File Management Application Software

Obj: Sec 1.0, to describe the relationship between hardware and software HW: Read p.2 9. Do Now: Name 3 parts of the computer.

Chapter 1. Dr. Chris Irwin Davis Phone: (972) Office: ECSS CS-4337 Organization of Programming Languages

Republic Polytechnic School of Information and Communications Technology C226 Operating System Concepts. Module Curriculum

Upon completion of this chapter, you will able to answer the following questions:

Python Programming: An Introduction to Computer Science

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition

Chapter 5: System Software: Operating Systems and Utility Programs

After studying this lesson, you will have a clear understanding of, what an Operating System is. functions of an Operating System

Functions of NOS Overview of NOS Characteristics Differences Between PC and a NOS Multiuser, Multitasking, and Multiprocessor Systems NOS Server

Computer Layers. Hardware BOOT. Operating System. Applications

CHAPTER 15: Operating Systems: An Overview

1 PERSONAL COMPUTERS

Operating System Structures

Network operating systems typically are used to run computers that act as servers. They provide the capabilities required for network operation.

1/20/2016 INTRODUCTION

CS420: Operating Systems OS Services & System Calls

Multiprogramming. IT 3123 Hardware and Software Concepts. Program Dispatching. Multiprogramming. Program Dispatching. Program Dispatching

Chapter 3. Operating Systems

Virtual Machines.

Building Applications Using Micro Focus COBOL

System Structures. Services Interface Structure

How To Run Linux On Windows 7 (For A Non-Privileged User) On A Windows 7 Computer (For Non-Patty) On Your Computer (Windows) On An Unix Computer (Unix) On Windows) On The Same

Installing Java (Windows) and Writing your First Program

AIR FORCE ASSOCIATION S CYBERPATRIOT NATIONAL YOUTH CYBER EDUCATION PROGRAM UNIT THREE. Computer Basics and Virtual Machines.

Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages

Chapter 16: Virtual Machines. Operating System Concepts 9 th Edition

Installing a Second Operating System

Installing Java. Table of contents

SOFTWARE TECHNOLOGIES

Kernel. What is an Operating System? Systems Software and Application Software. The core of an OS is called kernel, which. Module 9: Operating Systems

Primary Memory. Input Units CPU (Central Processing Unit)

Survey of Filesystems for Embedded Linux. Presented by Gene Sally CELF

VMware Server 2.0 Essentials. Virtualization Deployment and Management

Embedded Software development Process and Tools: Lesson-4 Linking and Locating Software

Embedded Operating Systems in a Point of Sale Environment. White Paper

LSN 10 Linux Overview

ELEC 377. Operating Systems. Week 1 Class 3

A+ Guide to Software: Managing, Maintaining, and Troubleshooting, 5e. Chapter 3 Installing Windows

Chapter 7A. Functions of Operating Systems. Types of Operating Systems. Operating System Basics

Computer Virtualization in Practice

Chapter 12 Programming Concepts and Languages

CSC230 Getting Starting in C. Tyler Bletsch

Types Of Operating Systems

Operating System Fundamentals Robert Power & Robert Ford

Tutorial 0A Programming on the command line

2. Advance Certificate Course in Information Technology

Parallels Desktop for Mac

Introduction to Computers and Programming

OS Concepts and structure

Operating System Structure

01 Introduction. The timeline

Preparing Your Computer for LFS101x. July 11, 2014 A Linux Foundation Training Publication

SUMMARIES OF VIDEOS GRADE 11 SYSTEMS TECHNOLOGIES

Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines

Chapter 1 Fundamentals of Java Programming

1/5/2013. Technology in Action

Fastboot Techniques for x86 Architectures. Marcus Bortel Field Application Engineer QNX Software Systems

Programming for GCSE Topic H: Operating Systems

Operating Systems 4 th Class

VMware Virtualization and Software Development

Concepts in Computer Engineering. Operating Systems

Overview and History of Operating Systems

Chapter 8 Objectives. Chapter 8 Operating Systems and Utility Programs. Operating Systems. Operating Systems. Operating Systems.

CGI-based applications for distributed embedded systems for monitoring temperature and humidity

Operating Systems Introduction

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

In this chapter, we want to make sure that your computer (and you) is ready for the Red Hat Linux installation.

Computers: Tools for an Information Age

Software: Systems and. Application Software. Software and Hardware. Types of Software. Software can represent 75% or more of the total cost of an IS.

AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping

A single user ran a single program ran on a single computer there was no need for Page 1 of 6 Copyright Virtual University of Pakistan

International Engineering Journal For Research & Development

Programming Languages

CSE 120 Principles of Operating Systems. Modules, Interfaces, Structure

WA1826 Designing Cloud Computing Solutions. Classroom Setup Guide. Web Age Solutions Inc. Copyright Web Age Solutions Inc. 1

Virtual Machines for Backward Compatibility

Transcription:

Lesson 06: Basics of Software Development (W02D2) Balboa High School Michael Ferraro <mferraro@balstaff.org> Lesson 06: Basics of Software Development (W02D2

Do Now 1. What is the main reason why flash drives are able to retrieve and return data more quickly than traditional hard drives? 2. From memory, write the three commands we used when writing thehelloworld program. The three commands are related to the process of (a) edit, (b) compile, & (c) run. Lesson 06: Basics of Software Development (W02D2

Aim Students will finish the overview of computer basics and learn about software development and its history. Students will receive textbooks and Problem Set #1. Lesson 06: Basics of Software Development (W02D2

Do Now Solutions 1. What is the main reason why flash drives are able to retrieve and return data more quickly than traditional hard drives? Lesson 06: Basics of Software Development (W02D2

Do Now Solutions 1. What is the main reason why flash drives are able to retrieve and return data more quickly than traditional hard drives? RAM (NVRAM, in this case) is solid state no moving parts! Lesson 06: Basics of Software Development (W02D2

Do Now Solutions 1. What is the main reason why flash drives are able to retrieve and return data more quickly than traditional hard drives? RAM (NVRAM, in this case) is solid state no moving parts! 2. From memory, write the three commands we used when writing thehelloworld program. The three commands are related to the process of (a) edit, (b) compile, and (c) run. Lesson 06: Basics of Software Development (W02D2

Do Now Solutions 1. What is the main reason why flash drives are able to retrieve and return data more quickly than traditional hard drives? RAM (NVRAM, in this case) is solid state no moving parts! 2. From memory, write the three commands we used when writing thehelloworld program. The three commands are related to the process of (a) edit, (b) compile, and (c) run. (a) edit: gedit HelloWorld.java Lesson 06: Basics of Software Development (W02D2

Do Now Solutions 1. What is the main reason why flash drives are able to retrieve and return data more quickly than traditional hard drives? RAM (NVRAM, in this case) is solid state no moving parts! 2. From memory, write the three commands we used when writing thehelloworld program. The three commands are related to the process of (a) edit, (b) compile, and (c) run. (a) edit: gedit HelloWorld.java (b) compile: javac HelloWorld.java Lesson 06: Basics of Software Development (W02D2

Do Now Solutions 1. What is the main reason why flash drives are able to retrieve and return data more quickly than traditional hard drives? RAM (NVRAM, in this case) is solid state no moving parts! 2. From memory, write the three commands we used when writing thehelloworld program. The three commands are related to the process of (a) edit, (b) compile, and (c) run. (a) edit: gedit HelloWorld.java (b) compile: javac HelloWorld.java (c) run: java HelloWorld Lesson 06: Basics of Software Development (W02D2

Act I Computer Basics, Continued Lesson 06: Basics of Software Development (W02D2

Peripheral Devices Peripherals are the non-core parts of a computer, not necessary for the computer to run (but might be necessary for usability!) Examples: Keyboard, Printer, Scanner, CD-ROM reader Lesson 06: Basics of Software Development (W02D2

ROM RAM! Unlike RAM, ROM [Read-Only Memory] contents can t be changed (well, you can flash some ROM chips to change their contents, so-called firmware updates) Useful for storing instructions that need always be present, consistent Present on motherboards as BIOS chips, on MP3 players to hold their very slim operating systems. Lesson 06: Basics of Software Development (W02D2

he Boot Process: ROM HD RAM System BIOS [Basic Input/Output System] has knowledge of how to find and communicate with hard disks; can find the boot sector of a hard disk Lesson 06: Basics of Software Development (W02D2

he Boot Process: ROM HD RAM System BIOS [Basic Input/Output System] has knowledge of how to find and communicate with hard disks; can find the boot sector of a hard disk Boot sector of hard disk contains information about how to load the operating system, whose files are written on the hard disk; referred to as the boot loader, examples include GRUB, LILO, and the anonymous Windows boot loader Lesson 06: Basics of Software Development (W02D2

he Boot Process: ROM HD RAM System BIOS [Basic Input/Output System] has knowledge of how to find and communicate with hard disks; can find the boot sector of a hard disk Boot sector of hard disk contains information about how to load the operating system, whose files are written on the hard disk; referred to as the boot loader, examples include GRUB, LILO, and the anonymous Windows boot loader Operating system (OS) starts Lesson 06: Basics of Software Development (W02D2

he Boot Process: ROM HD RAM System BIOS [Basic Input/Output System] has knowledge of how to find and communicate with hard disks; can find the boot sector of a hard disk Boot sector of hard disk contains information about how to load the operating system, whose files are written on the hard disk; referred to as the boot loader, examples include GRUB, LILO, and the anonymous Windows boot loader Operating system (OS) starts OS loads instructions from the various programs it starts into RAM, where the CPU has fast access to them Lesson 06: Basics of Software Development (W02D2

OS Examples Examples: Modern OSes: MS Windows { 10, 8, 7, Vista, & XP}, Ubuntu Linux a, Mac OS/X, Android, Solaris b Older OSes: MS-DOS, SCO Unix, MS Windows 3.1 c a Theapcs02 server runs the Ubuntu flavor of Linux b Was Sun Solaris, now owned by Oracle just like Java c Early versions of Windows still required DOS beneath them! Lesson 06: Basics of Software Development (W02D2

Two Key Roles of an OS A full a OS serves two key functions: 1. Act as a program capable of running other programs, making sure they play nice together 2. Hide the details of the hardware it runs on from the programs; i.e., hide the differences between communicating with different brands network cards so the programs using the network connection don t have to worry about dealing with every kind of network card in existence this task is left to the writers of drivers; this idea is called abstraction (more later!) a Non-full OSes would be very slim OSes that run on specialized hardware to perform a very limited number of functions, like a simple MP3 player.

A few more details... Functions of an OS (not all-inclusive!) load drivers, or software modules enabling the OS to communicate with peripherals so that applications can take advantage of devices like printers and USB drives; can be written by different people after OS is written

A few more details... Functions of an OS (not all-inclusive!) load drivers, or software modules enabling the OS to communicate with peripherals so that applications can take advantage of devices like printers and USB drives; can be written by different people after OS is written provide services like file system creation and maintenance, user management (accounts and security privileges), process management (time-sharing between concurrently running programs)

A few more details... Functions of an OS (not all-inclusive!) load drivers, or software modules enabling the OS to communicate with peripherals so that applications can take advantage of devices like printers and USB drives; can be written by different people after OS is written provide services like file system creation and maintenance, user management (accounts and security privileges), process management (time-sharing between concurrently running programs) provide environment within which applications can run application are that which you will write, programs that perform specific functions

BIOS-OS-Apps Hierarchy Systems are typically designed in layers; e.g., computer networks (like ethernet adapters and switches), transport mechanisms (software, like TCP), networked applications (like a web browser) Each layer interacts with the ones directly above and below Layers can sometimes be replaced with similar so long as the replacement interacts with the other layers in ways the other layers expect; e.g., replace Windows XP (OS layer) with Debian Linux and system can still work!

Files and Directories OS can communicate with a hard disk to read and write 0s and 1s OS creates strings of binary values that represent folders (directories) and files that "live" within those containing structures Files and Directories are, at a logical level, trees; physically, they re stored as clusters of adjacent bytes pointing to other clusters, forming chains of clusters we call files see here

Files and Directories OS can communicate with a hard disk to read and write 0s and 1s OS creates strings of binary values that represent folders (directories) and files that "live" within those containing structures Files and Directories are, at a logical level, trees; physically, they re stored as clusters of adjacent bytes pointing to other clusters, forming chains of clusters we call files see here What would happen if there was some low-level corruption on a hard disk, and some 0s and 1s were flipped? What if damage is where... a pointer to another cluster is? elsewhere?

Other Topics (in the reading) Shells (GUI vs traditional) Console apps (e.g.: programs that run at the "command prompt") Algorithm (covered in class later)

Act II Software Development

Early Computers (1940s - 1960s) Physically large size of entire rooms Size largely due to lack of transistors vacuum tubes used instead; very HOT and couldn t be miniaturized lack of microfabrication techniques (parts hand-built!) software didn t exist as we know it; a function was hard-coded (wired)

Moving Past Hard-Wired Programs John Von Neumann (ca. 1946) conceived of programs stored in memory with machine-specific codes Programmers used punch cards that were fed to card readers Punch cards held software, just as a hard drive holds your source code files Software development on cards must have been incredibly slow... (Mr. Binkowski used these!)

Stages of Software Development Discussed in 2.1 of the Litvin text You are responsible for understanding the process at a high level for now You ll gain first-hand experience with these roles later during projects

History of Programming Languages Punch cards that specified numerical CPU instructions Assembly language replaced numerical instructions with statements likejmp (jump),call, &INC (increment); An assembler program converts assembly language to machine code that a CPU can run High-level programming languages like Java: No longer would you have to manipulate data at a very low level (this byte goes here, this byte goes there... ) you could write high-level procedures a and use library functions b that language designers make available to you a Or methods in Java b E.g.,System.out.println() has been provided for you to print lines on the screen.

Enter the High-Level Languages See http://www.levenez.com/lang/ for a great family tree of programming languages. BTW, is JavaScript derived from Java? Notable languages FORTRAN (1954) COBOL (1959) BASIC (1964) PASCAL (1970) C (1970s) C++ (early 1980s) Java (1995) our focus C#, Ruby, PHP, PERL

Edit-Compile-(Link)-Run Cycle First step in writing software: Create source code in a text editor Run source code through a compiler Use a linker to connect compiled source with system libraries (static vs dynamic binaries) a Compiled/linked product can be run on the host machine s CPU This process is slightly different across different languages! a We ll rarely refer to this step in our work with Java.

Interpreted vs. Compiled S/W C write source code and compile/link into executable file that runs on specific system PERL and JavaScript write source and run with interpreter anywhere (since code isn t compiled behorehand, it doesn t have the same performace as compiled code) Java a hybrid approach whereby compiled bytecode can be run by a JVM (Java Virtual Machine) on different kinds of systems;java.exe is the JVM for PCs

Important Textbook Reading Make sure that you pay special attention to the following as you read the textbook while completing PS #1: 2.2: Read the short blurb about syntax and logic errors 2.3: What is reusable code?

HW Get started on PS #1: 1-2 are due by next class. (That s 1 & 2, inclusive!) Note: For the required reading, you ll need to find the Chapter 1 PDF file using the link in the problem set.