Vous êtes sur la page 1sur 19

10/25/2014 Computer Programming 1

Introduction to algorithms and programming


What is an algorithm?
What is programming?
Programming philosophy
How to think of a programming problem
How to plan the solution to the problem
Problem decomposition
Top-down refinement
10/25/2014 Computer Programming 2
Using an interactive development
environment (IDE)
Types of programming errors
Syntactic
Semantic
structured programming language
What is a programming language?
What is a structured programming language?
10/25/2014 Computer Programming 3
Main language concepts covered:
Simple data types
Numbers (integer, real)
Boolean
Characters
Strings
Input / output statements
Basic statements (assignment, conditionals,
iteration/looping)
10/25/2014 Computer Programming 4
Understand basic components in a computer
architecture
Appreciate the role of programming
languages
Design a top-down solution for solving
problems
Be familiar with an IDE
Edit, compile, debug and run short programs

10/25/2014 Computer Programming 5
Exams (50%)
midterm (7
th
week) 20%
final (end of course) 30%
Quizzes (30%)
measure progress
every 2 weeks
Homework (10%) will say more
Participation (10%)
attendance
will I remember who you are?
10/25/2014 Computer Programming 6
Initially not programming, but thinking about
programs
Small programs, 1 or more, depending on the
complexity
Frequently assigned (each week)
Like a language, you need frequent practice
Do not wait until the last moment to work on
your program
10/25/2014 Computer Programming 7
10/25/2014 Computer Programming 8
Computer
one that computes (Websters dictionary)
In other languages:
French: ordinateur (from order)
Italian: cervello elettronico (electronic brain)
Other?
Computer: a programmable device that can
store, retrieve and process data.
10/25/2014 Computer Programming 9
Hardware:
The actual physical machine
Consists of several hardware devices
Software:
The programs that tell the machine what to do,
i.e. give instructions to the machine
Different types of programs written in different
languages

10/25/2014 Computer Programming 10
The relationship between
Hardware and Software
Hardware and
software have a
symbiotic
relationship, this
means that without
software hardware is
very limited; and
without hardware,
software wouldnt be
able to run at all.
They need each
other to fulfill their
potential.
10/25/2014 Computer Programming 11
Input:
Keyboard
Mouse, Touchpad, Joystick
Pen & tablet, Perforated cards
Output:
Printer
Screen (monitor)
Teletype
Input & Output:
Auxiliary Devices:
disks (hard disk, floppies, DVDs/CDs, USB keys, Flash
memories)
tape drives
Touch screen
Network cards (intranet, internet)
10/25/2014 Computer Programming 12
Memory
Permanent: Disks & other I/O devices
Volatile: Main memory, Graphic memories
Virtual
Main memory is like a very large set of
mailboxes, each with its own address.
It stores data encoded as binary numbers.
10/25/2014 Computer Programming 13
Central Processing Unit(s)
One or more
A CPU contains
Arithmetic Logic Unit (ALU)
A Control Unit: controls the actions of other components
The CPU controls just about everything else by executing
instructions
stores data in memory
retrieves data from memory
performs computations
sends and gets data from other devices
Not all computational systems rely on a central processing
unit. An array processor or vector processor has multiple
parallel computing elements, with no one unit considered the
"center". In the distributed computing model, problems are
solved by a distributed interconnected set of processors.
10/25/2014 Computer Programming 14
Bus
In computer architecture, a bus is a
communication system that transfers data
between components inside a computer, or
between computers.
covers all related hardware components (wire,
optical fiber, etc.) and software, including
communication protocols.

10/25/2014 Computer Programming 15
Vacuum tubes
Mainframe computers (IBM)
Mini computers (DEC)
Micro computers (IBM, NEC, MacIntosh)
Desktops
Laptops
Blackberry
Supercomputers
Tablets and smartphones
10/25/2014 Computer Programming 16
Every year or two computer power
approximately doubles
Memory size (RAM)
Memory used to execute programs
Secondary storage (permanent storage)
E.g. disk storage, used to to hold programs and data
over time
Processor speeds
Speed at which computers execute their programs
10/25/2014 Computer Programming 18
Applications:
Rapidly increasing hardware power allows
applications to get bigger and more complex
Costs
Hardware costs dropping
Software development costs rising
Software development complexity
Programmer salaries
Cost of slipping schedules
Unanticipated interactions in complex systems
Unpredictability of software development times
10/25/2014 Computer Programming 19
http://www.webopedia.com/
http://en.wikibooks.org/wiki/A-
level_Computing/AQA/Computer_Component
s,_The_Stored_Program_Concept_and_the_Int
ernet/Fundamentals_of_Computer_Systems/H
ardware_and_software


10/25/2014 Computer Programming 20

Vous aimerez peut-être aussi