You are on page 1of 9

Virtual University Introduction to Computing

Lecture 45
Review & Wrap-Up
During the last lecture we discussed Programming Methodology
•We looked at a few effective programming practices that result in the development of
correct programs with minimum effort
•We also became familiar with testing & debugging
readable
program?

A program that is easy to read &


understand, and therefore, easy to
maintain & enhance
Design Guidelines
•Break your code down into short and simple functions (e.g. take the 3 swap statements
out from the last example and put them into a function of their own)
•Do not use global variables
Coding Guidelines
•Indent blocks of code (2 to 5 spaces)
•Always use semicolons to end statements
•Identifiers:
–Use the camelBack scheme
–Make them descriptive but concise
–Variables: nouns
–Functions: verbs
•Comment liberally
Guidelines for Developing Short Programs
• Write the code on a piece of
paper
• Read, understand the
problem • Hand-check it
• Do you have all the • Type it in
required data? • Run & check it on test cases
No: Get it • Errors? fix & redo 9
Else assume it. State it • Done!
explicitly
• Do the design
• Write test cases

Design & Code Reviews


•Probably the most efficient way of improving the a program
•Being humans, at time we see what is supposed to be there instead of what is actually
there
•Another pair of eyeballs may not have the same problem, especially if they are were not
involved in building the design or code
Testing & Debugging
•Testing: The tasks performed to determine the existence of defects
•Debugging: The tasks performed to detect the exact location of defects
•Defects are also called bugs or errors
Page 1 of 9
© Copyright Virtual University of Pakistan
Virtual University Introduction to Computing

•Let us now look at one of their classifications

Types of Errors
•Syntax errors
•Semantic errors
•Run-time errors
Today’s Goal:
(Review & Wrap-Up)
•To review some of the interesting ideas that we discussed over the last 44 lectures
•Please note that this lectures is not a comprehensive review, just a sampler!
Course Objectives

1. To build an appreciation for the fundamental concepts in


computing

To achieve a beginners proficiency in Web page development


2.

3. To become familiar with popular PC productivity software

Progression of Computer Technology


1.Mechanical computing
2.Electro-mechanical
3.Vacuum tube
4.Transistor
(the current state-of the-art)
1.Quantum computing
Quantum Computers
•Quantum computers may one day be millions of times more efficient than the current
state-of-the-art computers …
•as their quantum mechanical nature will allow them to examine all possible answers to
a question, simultaneously
The World Wide Web
•A huge resource of info
•Logically unified, but physically distributed
•It is unlike any previous human invention:
–It is a world-wide resource, important to all and shared by all of the people in the world
The Semantic Web
Whereas, today’s Web’s content is designed for humans to read; the Semantic Web’s
content will be designed for computers to understand meaningfully
Internet: Network of Networks
•A large number of networks, interconnected physically
•Capable of communicating and sharing data with each other
•From the user’s point view, Internet – a collection of interconnected networks – looks
like a single, unified network

Page 2 of 9
© Copyright Virtual University of Pakistan
Virtual University Introduction to Computing

Language of the Internet: TCP/IP


Transmission Control Protocol/Internet Protocol
•TCP breaks down the message to be sent over the Internet into packets
•IP routes these packets through the Internet to get them to their destination
•When the packets reach the destination computer, TCP
reassembles them into the original message
Instant Messaging
•eMail: Slow response times
•eMail: No way of knowing if the person we are sending eMail to is there to read it
•eMail: The process of having a conversation through eMail by exchanging several short
messages is too cumbersome
•Instant messaging (IM) solves these problems
On-Chip Cache Memory
•That small amount of memory located on the same chip as the uP
•The uP stores a copy of frequently used data and instructions in its cache memory
•When the uP desires to look at a piece of data, it checks in the cache first. If it is not
there, only then the uP gets it from the main memory
•Its proximity to the uP makes access times short
Ways of Enhancing A uP
•Increase the clock frequency
•Increase the word-width
•Improve the effectiveness of the caching algorithm
•Add more functional units (e.g. ALU’s, FPU’s, Vector/SIMD units, etc.)

Hardware

Operating System Device Driver

Utilit Language Scientific Business Productivit Entertainment


y Translator Apps. Apps. y Apps.
Apps.

System software

Application software
Page 3 of 9
© Copyright Virtual University of Pakistan
Virtual University Introduction to Computing

The Role of An OS
•Manages the HW and SW resources of the computer system, often invisibly. These
include the processor, memory, disk drives, etc.
•Provides a simple, consistent way for applications to interact with the HW without
having to know all the details of the HW
Who Owns Software?
•Generally, although a piece of SW that is being used by millions, it is not owned by any
of them!
•When we buy a SW package, we do not really buy it – we just buy a license that allows
us to use it, the ownership stays with the maker

4th-generation languages

High-level languages

Assembly languages

Machine languages
Interpreters:
Immediate response,
but
execute code slowly

Page 4 of 9
© Copyright Virtual University of Pakistan
Virtual University Introduction to Computing

Compilers:
Compiling takes time,
but
super-fast execution

Page 5 of 9
© Copyright Virtual University of Pakistan
Virtual University Introduction to Computing

Concept &
Feasibility Test
User Requirements

Developer Specs Test

Planning
Test

Design Test

Test
Implementatio
n

Integration
Testing

Acceptance
Opr. &
Test
Maintenance

Retirement

Algorithm
1st Definition:
Sequence of steps that is taken to solve a problem
Better Definition:
A precise sequence of a limited number of unambiguous, executable
steps that terminates in the form of a solution
Pseudo Code
•Quite suitable for SW development as it is closer in form to real code
•One can write the pseudo code, then use it as a starting point or outline for writing real
code
•Many developers write the pseudo code first and then incrementally convert each line
into real code
Heuristic
Page 6 of 9
© Copyright Virtual University of Pakistan
Virtual University Introduction to Computing

Common sense lesson drawn from experience


(Artificial) Intelligent Systems
SW programs or SW/HW systems designed to perform complex tasks employing
strategies that mimic some aspect of human thought
Not a Suitable Hammer for All Nails!
if the nature of computations required in a task is not well understood
or there are too many exceptions to the rules
or known algorithms are too complex or inefficient
then artificial intelligent systems have the potential of offering an acceptable solution
Database
•A collection of data organized in such a fashion that the computer can quickly search for
a desired data item
•All data items in it are generally related to each other and share a single domain
Relational Databases
•Databases consisting of two or more related tables are called relational databases
•A relational database stores all its data inside tables, and nowhere else
•All operations on data are done on those tables or those that are generated by table
operations
Future Trends:
On-Demand Computing Power
•Almost infinite “computing power” supply
•Reliable, maintenance-free, just like the electricity, telephone, or water-supply service
•No capital expenditure; you pay for only what you use!
•Same will be true for storage
Future Trends: Immortal Minds
•Some day it will be possible to load all the lectures, papers, books and SW produced by
an expert into an intelligent system
•After that system processes, indexes and restructures the info in those artifacts, it will
be possible to have a conversation in plain English (or some other language) with that
system
Distances Are Contracting!
Distances Are Increasing!
•Because of the ever-decreasing costs of verbal, text, video communications, it is
becoming easier to stay in touch of anyone, regardless of their physical location
•Solitude is the order of the day as many children & adults spend their free time surfing,
chatting, playing computer games, instead of spending it on interacting with friends or
family
Computers may Become too Powerful!
•Computers keep on becoming more and more powerful, gaining more and more
autonomy
•They are being equipped with fail-safe and self-healing technologies
•Are we heading towards a future where the role of the masters and the slaves will be
reversed?
Why JavaScript?
•HTML is great for static Web pages; however, supports only rudimentary interactivity
through forms and hyperlinks
•JavaScript can be used (along with HTML) to develop interactive content for the Web
Some of things that JavaScript cannot do!
•The following file ops. on the client computer:

Page 7 of 9
© Copyright Virtual University of Pakistan
Virtual University Introduction to Computing

–Read -- Modify
–Rename -- Delete
–Create
•Create graphics (although, it does have the ability to format pages through HTML -
including the placement of graphics)
•Any network programming bar one function: the ability to download a file to the browser
specified through an arbitrary URL

Advantages of Client-Side Scripting


•Reduced server load as it does not have to send messages to the user’s browser about
missing or incorrect data
•Reduced network traffic as the form’s data is sent only once instead of many to’s and
fro’s

All objects have the


A collection of
“name” property: it holds
properties &
the name of the object
methods
(collection)

prop 1
method 2

prop 2
prop
prop 5
method 3
1
method
prop 4 3

Object: A named collection of properties (data, state) & methods (instructions, behavior)
Functions
•A named group of statements that is put together once and then used (by reference)
repeatedly on a Web page
•Code becomes easier to read, understand and maintain
Local and Global Variables
Local or Function-level Variable
Page 8 of 9
© Copyright Virtual University of Pakistan
Virtual University Introduction to Computing

Effective only in the function in which they are declared


Global Variables
Visible everywhere on the Web page
Image Preloading
•The Image object can be used to download an image into the cache before it is actually
needed for display
•This technique can be used to create smooth animations or to display one of several
images based on the requirement
Productivity SW
•The lectures and assignments were designed to give a brief introduction, and no more
•All we desired was for you to become able to open the package and perform some
trivial tasks
•With time, you will find more and more use for these packages, and gradually develop
an expertise that later will become very useful in your career
Course Objectives

1.To build an appreciation for the fundamental concepts in computing


2.To achieve a beginners proficiency in Web page development
3.To become familiar with popular PC productivity software
•How successful were we in helping you achieve those objectives?
•Please do let us know so that we can modify the future offerings of this course
accordingly. I will be most grateful
•I have enjoyed doing this course with you very much
•Hope it was enjoyable & useful for you as well
•I thank you for your attention and especially for your eMail & discussion board
messages
•A good number of those messages were quite informative and I thank you for sharing
that info with me
•Until the next time when we meet …

Page 9 of 9
© Copyright Virtual University of Pakistan

You might also like