140 likes | 148 Views
This lecture introduces the fundamentals of computer programming, covering the layers of computer systems, the von Neumann model, CPU chips and their main parts, memory (ROM and RAM), operating systems, bootstrapping, client-server computing, and today's challenges in application development.
E N D
Programming FundamentalsAnne Marchant, Ph.D.Instructor, CS DepartmentGeorge Mason Universityamarchan@gmu.edu
Lecture 1 The Launch into Cyberspace Pre-Flight Briefing
The computer is like an onionNot because it makes youcry:-), but because it is in layers Applications Operating System Hardware
The “von Neumann” Model: Memory RAM|ROM INPUT OUTPUT CPU CU|ALU
Chips: • CPU- central processing unit, the brain of the computer • Pentium • Athlon • Celeron • Power PC
Chips: silicon technology • The CPU is divided into two main parts: • CU- control unit • ALU - arithmetic logic unit
ROM • Read onlymemory • Non-volatile memory Contains the BIOS:Basic Input/Output System
RAM • Random access memory • Volatile memory • Fast memory used to run applications and the operating system • Measured in MB (128-256 MB)
Operating System • Manages Memory • Manages Tasks • Manages I/O (Input/Output) • Manages Disks and Files • Manages Security
Some Operating Systems • Linux • Unix • Windows • MacOs
Bootstrapping on/off switch ROM system disk RAM Operating System is Loaded • CMOS is accessed for system • configuration and hardware • diagnostics are performed
Client-Server Computing • In today’s networked environments, computing is often split between the local user’s PC (client) and a network server. • Example: using a web browser (client) to access www.gmu.edu (server)
Today’s Challenges • To create secure applications that are “platform independent”. • To create applications that can meet increasing demand and that can be upgraded and modified over time.
Summary • Be sure that you understand the relationship between computer hardware and software. • Be sure that you can define the terms: client-server computing, operating system, platform independent. • Familiarize yourself with basic Unix and HTML.