0% found this document useful (0 votes)
44 views61 pages

Cs101 Lec45

This lecture provides a high-level review and wrap-up of key concepts covered in the CS101 Introduction to Computing course over the past 44 lectures. Some of the topics discussed include programming methodology, testing and debugging, guidelines for writing readable and maintainable code, programming best practices, and an overview of course objectives. The lecture also briefly previews future trends in computing technology like on-demand computing power and artificial intelligent systems that mimic human thought.

Uploaded by

Fahad Nabeel
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPS, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
44 views61 pages

Cs101 Lec45

This lecture provides a high-level review and wrap-up of key concepts covered in the CS101 Introduction to Computing course over the past 44 lectures. Some of the topics discussed include programming methodology, testing and debugging, guidelines for writing readable and maintainable code, programming best practices, and an overview of course objectives. The lecture also briefly previews future trends in computing technology like on-demand computing power and artificial intelligent systems that mimic human thought.

Uploaded by

Fahad Nabeel
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPS, PDF, TXT or read online on Scribd
You are on page 1/ 61

CS101 Introduction to Computing

Lecture 45
Review & Wrap-Up
1

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
3

Readable programs are: - more readable - efficient enough


4

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


1. Read, understand the problem 2. Do you have all the required data? 5. Write the code on a piece of paper 6. Hand-check it 7. Type it in 8. Run & check it on test cases 9. Errors? fix & redo 9 10. Done!
7

No: Get it
Else assume it. State it explicitly 3. Do the design 4. 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 8

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 Let us now look at one of their classifications
9

Types of Errors
Syntax errors Semantic errors Run-time errors

10

Todays 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!

11

Course Objectives

1. 2. 3.

To build an appreciation for the fundamental concepts in computing To achieve a beginners proficiency in Web page development

To become familiar with popular PC productivity software


12

What value do

computers bring?

13

fast bored

storage

14

What type of problems are not suitable for computers

15

Progression of Computer Technology


1. Mechanical computing

2. Electro-mechanical
3. Vacuum tube 4. Transistor (the current state-of the-art) 5. Quantum computing
16

Quantum Computers
Quantum computers may one day be millions of times more efficient than the current state-ofthe-art computers

as their quantum mechanical nature will allow them to examine all possible answers to a question, simultaneously

17

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

18

The Semantic Web


Whereas, todays Webs content is designed for humans to read; the Semantic Webs content will be designed for computers to understand meaningfully

19

Internet: Network of Networks


A large number of networks, interconnected physically Capable of communicating and sharing data with each other

From the users point view, Internet a collection of interconnected networks looks like a single, unified network 20

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 21

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
22 Instant messaging (IM) solves these problems

Why use many not-sopowerful processors working in parallel

Why not just design a single, really powerful processor

23

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 24 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. ALUs, FPUs, Vector/SIMD units, etc.)

25

Hardware Operating System Device Driver

Language Scientific Business Productivity Entertainment Utility Translator Apps. Apps. Apps. Apps.

System software Application software

26

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

27

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

28

4th-generation languages
High-level languages Assembly languages Machine languages
29

Interpreters:
Immediate response, but execute code slowly

Compilers:
Compiling takes time, but super-fast execution

30

Can a single language have all the good bits of all other languages?
31

Concept & Feasibility


User Requirements Developer Specs Planning Design Implementation Integration Testing Acceptance Test Test

Software Lifecycle
Test
Test

Test
Test

Opr. & 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
33

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
34

Heuristic
Common sense lesson drawn from experience

35

Caution! Caution!
Heuristics dont always lead to the best results
At times they even lead to the wrong ones, but mostly to results that are good-enough
36

Dont just remove the defect; correct the process that caused it
37

is a heuristic, an algorithm?
38

When I look at a Web page it should be self-evident, obvious, self-explanatory I should be able to get it - what it is & how to use it - without expending any effort thinking about it
excerpt from Steve Krugs book Dont Make Me Think
39

Avoid using pictures that are strictly decorative


40

(Artificial) Intelligent Systems


SW programs or SW/HW systems designed to perform complex tasks employing strategies that mimic some aspect of human thought

41

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


42 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

43

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

44

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
45

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

46

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 47

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 selfhealing technologies Are we heading towards a future where the role of the masters and the slaves will be reversed?

48

Course Objectives

1. 2. 3.

To achieve a beginners proficiency in Web page development

49

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

50

Some of things that JavaScript cannot do!


The following file ops. on the client computer:
Read Rename Create -- Modify -- Delete

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 51 specified through an arbitrary URL

Advantages of Client-Side Scripting


Reduced server load as it does not have to send messages to the users browser about missing or incorrect data

Reduced network traffic as the forms data is sent only once instead of many tos and fros

52

Object: A named collection of properties


(data, state) & methods (instructions, behavior)
A collection of properties & methods All objects have the name property: it holds the name of the object (collection) name method 2

prop 1 prop 2

prop 3
prop 4

prop 5
method 3
53

method 1

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

54

Local and Global Variables


Local or Function-level Variable Effective only in the function in which they are declared Global Variables Visible everywhere on the Web page

55

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

56

Course Objectives

1. 2. 3.

To become familiar with popular PC productivity software


57

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 58

Course Objectives

1. 2. 3.

To build an appreciation for the fundamental concepts in computing To achieve a beginners proficiency in Web page development

To become familiar with popular PC productivity software


59

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

60

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
61

You might also like