18 February 2020 Cs4051 Fundamentals of Computing 1: Sandeep Gurung Sandeep - Gurung@icp - Edu.np

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 32

Lecture 1:

Introduction

Sandeep Gurung
Sandeep.gurung@icp.edu.np

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 1


Agenda
• Learning and teaching strategies
• Assignment details and other administrative stuffs
• Introduction to Computing

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 2


Teaching Strategy
• Lecture
▪ Cover theoretical aspects and key topics identified in the syllabus
• Tutorial
▪ Discuss topics introduced in the lecture via discussions, informal
presentations and tests
• Lab
▪ Practice hands-on experience on appropriate software in the lab

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 3


Administrative
• Please be on time for your classes, lateness will not be
entertained !!
• Attendance will be taken on a daily basis
• Class assignments must be submitted on time
• Mobile phones should be kept on silent and order should
be maintained during class hours
• Note that your attendance and class performance will
affect your final grade

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 4


Assessments
• This module is assessed by coursework and examination.
Assessments
• Python– Individual coursework
weighing 60% due on week 12
• Examination – MCQ weighing 40% on
week 14

• VIVA session will be held after each submission where class


performance will also be taken into account
• LondonMet has collaboration policies, so plagiarism cases will be dealt
very seriously
18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 5
Introduction to
Computing

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 6


What is Computing?
• A computer is an electronic programmable machine
• A computer is very good at executing a preordered set of
instructions with high speed and precision
• Computing is the process of utilizing computer technology to solve
problems and complete tasks

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 7


Terms and Terminology
Business Computing Level
• Problem: Situation which prevents achieving our goals
• Solution: New situation which satisfies our goals
• Model: Informal (NL), graphic (UML) or formal (math) description
of the transformation of a problem into a solution

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 8


Terms and Terminology
Information Technology Level
• Data: Information used by a model in machine format
• Algorithm: A set of steps defining how to find the solution
• Program: A representation of an algorithm in machine form

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 9


Terms and Terminology
Information System Level
• Hardware: Equipment + Connectivity
• Software: Tools + Applications
• System: Infrastructure + People

An information system is a group of components that interact to


produce information.

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 10


The history of computing
• Early data storage
• Early computing devices
• Early programming languages

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 11


Early data storage
• Mechanical (gears, positions)
• Punched cards (rows and lines)
▪ First used in Jacquard Loom (1801) to store patterns for weaving cloth
▪ Storage of programs in Babbage’s Analytical Engine
▪ Popular through the 1970’s
• Perforated disks and tapes
• Magnetic disks and tapes

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 12


Early data storage

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 13


Early computing devices
Basic Mechanical • based on mechanical movement
• based on Gear-based machines: positions of gears
Mechanical
represent numbers
Electro
• Constructed from switches and relays
mechanical
• 1st generation computers Based on vacuum tubes
• 2nd generation – Based on transistors, operated on high
level programming languages 1956-1963.
Electronic • 3rd generation – Based on integrated circuits
that allowed to place miniaturized transistors on silicon
chips 1964
• 4th generation Based on microprocessors, 1971

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 14


Computing devices through the years

In electronics, Moore's Law predicted that the number of transistors on an integrated


circuit doubles every 2 years. This enables processors to be built in smaller sizes.
18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 15
History of programming languages
Two important
Early Programming New Programming
contemporary
Languages Paradigms
languages
• Fortran (IBM, John • Simula-67 • Java (Sun
Backus, 1957) (Norwegian Microsystems,
• Lisp (MIT, John Computing Centre, James Gosling,
McCarthy, 1958) Dahl & Nygaard, 1991)
• Algol (ETH Zurich, 1967) • Python (CWI
Peter Naur, 1960) • Prolog (Marseilles, Amsterdam, Guido
Colmerauer, 1972) van Rossum, 1989)

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 16


Computer Science is not the study of computers!
• “Computers are to computer science what telescopes are to astronomy.”
– E. Dijkstra
• So what is Computer Science then?

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 17


The recurrent themes in computer science
• Computing technology effects:
▪ Governments, economics, scientific research, role of data,
communication, …
• Seven “Big Ideas” that unite the study of computing into a
scientific discipline:
▪ Algorithms,
▪ Data,
▪ Abstraction,
▪ Programming,
▪ Networking,
▪ Creativity and Impact

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 18


Algorithms
• A set of steps defining how to find the solution to a problem
• A set of steps defining how to complete a particular task
• An algorithm is basically a plan to write a program
• eg: an algorithm to add 2 numbers
• Algorithms are written in steps, and can be further described using
flowcharts and pseudocode

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 19


Data
• Raw facts or figures that exist in a variety of forms, e.g. numbers or
text on a piece of paper or bits and bytes stored in computer (0s
and 1s)
• Computers can represent and store any information in digital
format
• Algorithms are used to process and transform data
• They utilize massive storage capacities and processing power of
computers

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 20


Data & Information
• Useful information is generated
from data after processing it
• There are massive amounts of
data being generated everyday
• That data needs to be processed
in order to extract useful
information

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 21


Abstraction
• Abstraction: The distinction between the external appearance of an
entity and the details of the entity’s internal composition.
• Interface: A tool that allows the entity to be used without concern for
its internal properties.
• For example, you want to send an email to your friend that lives
abroad. How do you do it?
• You open your email account and then type your email. Your friend also
needs to open his email account and then read it.
• But do you know the processes involved? No. Because both you and
your friend only see the outer interface. This is called abstraction.

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 22


Programming
• Programming is broadly referred to as:
▪ Translating human intentions into executable algorithms
▪ Abstractions in a programming language allows humans to reason
and encode solutions to complex problems without knowing the
details of the actual solution

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 23


Networking
• Profound impact in the way information is:
▪ Stored
▪ Retrieved
▪ Shared
▪ Used

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 24


Creativity
• Computer science is inherently creative
▪ Discovering and applying algorithms to solve problems is an essential human
activity
▪ Basically making computers do our work to make our lives easier,
eg: self-driving cars
▪ Extends the forms of expression in many ways – i.e., digital art/media,
collaborative working through online platforms, etc

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 25


Impact
• Business and Technology
• Social, ethical, legal impacts including:
▪ Security concerns and cybercrime
▪ Issues of software ownership and liabilities
▪ Social impact of database technology
▪ Consequences of robotics, Artificial Intelligence (AI) in general
• Health impact:
▪ Addiction, Neurosis and Emotional life
▪ Sighting and Hearing

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 26


Role of Algorithms
• The study of algorithms was originally a subject in mathematics (numerical
calculations, geometric drawings, alphabetical sorting, coding, encryption,
etc.)
Examples of early algorithms used in mathematics
▪ Euclidean Algorithm
• The algorithms became the basis for problem solving in business (modeling)
and technology (computer programming)
• Gödel's Incompleteness Theorem: Some problems cannot be solved by
algorithms (they need an intuition, guess, chance…)

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 27


Gödel's Incompleteness Theorem
• Using algorithms, we can prove
things like 2+2=4 and 2+2≠5.
But can an algorithm also prove
things like 2+2=5?
• There are other examples as
well. Like earthquakes. We
cannot predict if we will have an
earthquake tomorrow can we?

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 28


The Euclidean algorithm
• An algorithm to find the
greatest common divisor
of two numbers

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 29


The Euclidean algorithm
Lets take two numbers: 12 and 9.
12 = 1,2,3,4,6,12
9 = 1,3,9
M = 12 and N = 9 then R = 3
Again,
M = 9 and N = 3 then R = 0.
Thus, Greatest Common
Divisor is 3.

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 30


End of Lecture 1

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 31


Thank you !
Any questions ?

18 February 2020 CS4051 FUNDAMENTALS OF COMPUTING 32

You might also like