Intro to Computer Science
CS1510
Syllabus?
The website?
The readings?
What is the minimum percentage that you need to earn in order to move on to the next class?
How many exams will you have this semester?
When are programming assignments typically due?
What is Computer Science?
Computer science is a discipline that involves the understanding and design of computers and computational processes.
A Well-Educated Computer Scientist
Should be Able to...
Apply the fundamental concepts and techniques of
computation,
algorithms, and
computer design
…to a specific problem
Our Goals
While a primary goal of this course is to learn to program (in Python), our goals include:
increase our problem solving skills
design good solutions to problems
test (somehow) how well they are indeed solutions to the problem
provide the solution as a readable document
I cannot precisely explain why it is hard, only that it is indeed hard.
Your textbook uses an interesting analogy
Let us say that you have signed up to study
French poetry in the original language.
You have two problems:
You don’t speak French
You don’t know much about poetry
You have two related problems:
the “syntax” of French is something you have to learn the “semantics” of poetry is something you have to learn
You have two problems you have to solve at the same time.
Programming, Syntax and Semantics
You have to learn the “syntax” of a particular programming language
many details about the language, how to debug and use it
You have to learn about “problem solving” and how to put it down on “computer.”
There probably is no better way. It’s hard!
We have been talking about programming quite a bit
What is programming?
The act of translating a sequence of general actions to a sequence of specific actions, in a specific language, and often for a specific computer.
BUT, before we can get too far with programming we have to talk briefly about the computer…
Kind of obvious, but a computer is something that does computation.
A device that performs (high-speed) mathematical and/or logical operations or that assembles, stores, correlates, or otherwise processes information.
What were the first computers?
The first computers were people who performed difficult calculations by hand , for things like ballistic tables.
Where was the first digital computer built?
The first modern digital computer was invented where?
Consist of two components:
Hardware: physical devices required to execute algorithms
Software:
The instructions that tells the computer what to do
Represented as programs in particular programming languages
Those parts of the system that you can hit with a hammer are called hardware; those program instructions that you can only curse at are called software.
- Anonymous
Most computers consist of:
central processing unit (CPU)
storage/memory
input/output (I/O) devices
Coordinates all computer operations
Control Unit
Reads instructions from memory and decodes and executes them using the ALU
Arithmetic/Logic Unit (ALU)
Does math and logic calculations on numbers in registers
345
263
Add register A to register B
608 Store the value in register C into memory location
320843202
“Comes with 3 GB of RAM”
4
3
6
5
999
998
…
7
2
1
0
X
75.62
…
STO 005
ADD 003
RTV 001
H
-26
0.005
354
-27.2
Memory is an ordered sequence of storage locations
(memory cells)
Each memory cell has a unique address
Millions of these cells
Every memory cell has some contents although the contents may not be meaningful.
The smallest unit of memory is a bit ( B inary dig IT )
A bit can be off (no voltage) or on (has voltage) which we interpret to be 0 or 1
Memory is organized into 8 bit contiguous groups called bytes. A megabyte is 1 million bytes. A gigabyte is 1 billion bytes.
The basic component of most digital circuitry is nothing more complicated than a simple switch.
A switch’s function is pretty obvious, said in a number of different ways
On or Off
True or False
1 or 0
Early computers used vacuum tubes as switches
Later, transistors were used as substitutes
4
3
6
5
999
998
…
7
2
1
0
X
75.62
…
STO 005
ADD 003
RTV 001
H
-26
0.005
354
-27.2
Thus, while we might visualize the computer with all sorts of data in the memory slots…
… It really consists of an arrangement of 1s and 0s
Why are there so many types of memory?
The faster memory is the more it costs
So we reduce the cost by using small amounts of expensive memory (registers, cache, and RAM) and large amounts of cheaper memory (disks)
Why do we need cache?
Processors are very fast and need quick access to lots of data
Cache provides quick access to data from RAM
Registers
Very high speed temporary storage areas for use in the CPU
Used for calculations and comparisons
Cache
High speed temporary storage for use with the CPU
Main Memory – Random-access Memory (RAM)
High speed temporary storage
Contains programs and data currently being used
Often described in low numbers of Gigabytes (GB)
Secondary Memory - Disks
Contains programs and data not currently being used
Often described in Gigabytes (GB) or even Terabytes (TB)
Allow for human/computer interaction
Input devices include keyboard and mouse
Output devices include monitor and printer
For Tomorrow
Meets in Wright 112 (know your section and time!)
Make sure you know your CatID credentials
If you think you have used them but can’t remember them, get them reset downstairs in room 36 (you will need a photo ID)
Have a way to save your files
Google, Dropbox, USB drive, others?
Get the book!