Intro to Programs and C

Download Report

Transcript Intro to Programs and C

Tarik Booker
CS 290
California State University, Los Angeles

Introduction to Programming

Performing Well in Computer Science


The Integrated Development Environment
(IDE)
Intro to C

Welcome to Programming!!!
◦ Programming – the act of writing instructions in a
way that a computer can understand
◦ Why?
 Computer can process information very quickly
 Very helpful for engineering processes
 Can make games

Both hardware and software
◦ Hardware
 Actual physical device
 Electronics
◦ Software
 Invisible Instructions
 “Electricity”

Hardware – Major components:
◦
◦
◦
◦
◦
◦

Central Processing Unit (CPU)
Memory (Main Memory)
Storage Devices
Input devices
Output devices
Communication Devices
All connected with a bus – connection
between all components
◦ Think of a highway

Central Processing Unit
◦ “Brain” of the Computer
◦ Two different internal components
 Control Unit
 Arithmetic Logic Unit (ALU)
◦ Based on semiconductor chips
 All have tiny switches (transistors)
◦ Contains a clock
 Keeps synchronization (and control)
 MHz, GHz
◦ Cores
(Hz = 1/s)
 Part that reads instructions
 Multi-core

Bit – result of one switch
◦ Switch off – 0 (zero/ low)
◦ Switch on – 1 (one / high)

How many switches do you know of?
◦ (L)
◦ What else?

Computer – many (millions/billions of) switches
◦ Digital / Analog
◦ Analog (natural) info is converted to switches (digital)

Byte – 8 bits ( 8 switches)
◦ Bit – binary digit
◦ Byte is minimum storage unit in a computer
◦ Can store a number (ex: 3) in a byte
 How?

Many things can be encoded into bytes (digitally
encoded)
◦
◦
◦
◦
◦
Numbers
Text
Audio
Video
Data (biometrical, biological)

DNA Computing
◦ Use DNA to execute
◦ instructions

Encoding Scheme
◦ Set of rules that govern how a computer translates info
into data
 Standardized
◦ Music
 MP3
 Wav
◦ Text
 ASCII
 UNICODE
◦ Im
 Jpg
 GIF
ages
◦ Many, many, many more

Memory Storage Capacity
◦ In bytes:




1
1
1
1
Kilobyte (KB) = 1,000 bytes
Megabyte (MB) = 1,000,000 bytes (million)
Gigabyte (GB) = 1,000,000,000 bytes (billion)
Terabyte (TB) = 1,000,000,000,000 bytes (trillion)
◦ Typically:
 Word doc: 20KB
 1MB = ~50p of documents
 2 Hour High-Def Movie = 8GB
 20 Movies: 160GB
◦ What are (look up)?
 1 Petabyte?
 1 Exabyte?

An ordered sequence of bytes for storing
programs and data
◦ Work area for CPU
◦ Program and data must be moved here before execution
(running the instructions)

Every byte has a (unique) address
◦ Locate the byte for storage and retrieval
◦ Can be accessed in any order




Called Random Access Memory (RAM)
Most PC’s have ~4gigabytes of RAM
Typically, the more RAM, the faster the computer
Note, memory can contain garbage
 Deletion doesn’t remove the info
 Removes address

Internal memory (RAM) is volatile!
◦ When power is removed, saved information is lost
◦ Programs should be permanently stored on the
computer
 How? (Secondary) Storage devices
 When power is removed, information stays
 Called persistent
◦ Note: Storage devices are notably slower than
(internal) memory
 Three main types
 Magnetic disk drives
 Optical Disk Drives (CD, DVD)
 USB Flash Drives

Disks
◦ Computer typically contains a hard disk drive
◦ Hard disk permanently stores programs (and data)
◦ Typically encased within computer

CD
◦ Compact Disc
◦ Two different types
 CD-R (Read only)
 CR-RW (Read-Write)
 Can be used like a
hard disk
◦ CD can hold up to
700MB
 (Second movement of
Beethoven’s Ninth
Symphony)

DVD
◦ Holds much more info
◦ 4.7 GB
◦ DVD-R, DVD-RW

USB Flash Drives
◦ Universal Serial Bus (USB)
 Allows you to “hot swap” different devices to the
computer
◦ Flash Drive
 Flash Memory
 Currently up to 256 GB

Interesting
example:
http://www.extr
emetech.com/e
xtreme/134672
-harvardcracks-dnastorage-crams700-terabytesof-data-into-asingle-gram

Lets the user communicate with the computer
◦ Most common
 Keyboard
 Mouse
 Monitor
◦ Other




Trackball
Joystick
Eye Scanner
What else?

Devices that allow computers to communicate
with other computers (or devices)
◦
◦
◦
◦
◦
Dial up modem
Digital Subscriber Line (DSL)
Cable Modem
Network Interface Card (NIC)
Wireless networking
 Bluetooth

Biometric Devices
◦ Scan information

What else can you think of?

The computer is a machine, and therefore must
communicate in a way that is preferrable to the
machine
◦ Machine Language




The computer’s “native” language
Directly in binary code (1’s and 0’s)
Typically the instruction, then the operands
Ex:
1101101010011010
◦ Assembly (Language)
 The previous alternative to machine code (language)
 Used a word (mnemonic) to describe each machine instruction
 Computer can’t execute, so must be converted to machine
language
 Uses an “assembler”
 Ex:
add 2, 3, result

High Level Language
◦ Platform independent
 Can run on different CPUs
◦ Easier to use
 Like English – easier to learn
 Instructions in this language are called statements
 Ex:
area = 5 * 5 * 3.14159;
◦ Many different types of High level Languages
 Ada, BASIC, C, C++, C#, Ruby, Pascal, Python, etc.
 C

Main program that runs on a computer
◦ Manages and controls a computer’s activities
◦ Every computer you use has an operating system
◦ Controls:
 Controlling and monitoring system activities
 Allocating and assigning system resources
 Scheduling operations
◦ Different types of Operating Systems
 Windows
 Jaguar (Mac)
 Linux

Controlling and Monitoring System Activities
◦ Performing basic tasks




Recognizing input (keyboard, mouse, etc.)
Sending output (monitor, printer, etc.)
Keeping track of files and folders on storage devices
Controlling “peripheral” devices
 Disk drives
 Printers
 Making sure programs (and users) do not interfere
with each other
 Security

Allocating and Assigning System Resources
◦ Responsible for system resources




CPU time
Memory Space
Disk allocation
I/O device allocation

Scheduling
◦ Multiprogramming
◦ Multithreading
◦ Multiprocessing
 Parallel Processing
 Oscar.calstatela.edu

Operating System (OS) does much much more!

Created by Dennis M. Richie
◦ Bell Labs
◦ 1972
◦ Started with the “B” language

IDE – Integrated Development (Desktop)
Environment
◦ All in one way to write, compile, and run programs
◦ Different IDEs for different languages
 Some work for multiple languages
 (Preferred languages)
◦ Windows
 Code::Blocks
 Good for C and C++
 Will use C in class

Download Code::Blocks
◦ Already installed on Lab Computers
 If no computer use lab

Install
◦ Comes with compiler
◦ Installs everything

Run


Once Code::Blocks is running, you should
see:
Select New -> Project


Select Console Application
Click GO

Complete the Wizard
◦ Select C
(Do NOT Select C++)


Add a title
Keep the GNU GCC Compiler
◦ Works for both C and C++

Finish

Select Sources
◦ Double Click main.c
 (My project name here, was demo)

Hit F9 to Compile and Run

Congratulations!!!!!!!
Your environment is now set up!!!!

Macintosh

◦ Use Xcode

(p14 in book)
Linux
◦ Use g++ (p27)
◦ Command line interface

See me after class for help with Mac/Linux
◦ Not guaranteed!!!

Lets look at that main.c program.