86
Foundations of Computer Science and Software Engineering module 1/30 WALID S. SABA

Intro to computer science module 1

Embed Size (px)

DESCRIPTION

This is module 1 of an introductory course that will introduce computer science and software engineering to the novice, and it is also a course that will teach even veteran computer scientists some new concepts, or explain concepts they thought they understood well. Concepts are introduced with hands on experience using object-oriented pseudo code (which can very easily be translated to C#, Java, C++, etc.) and functional programming pseudo code (which can easily be translated into F#, Erlang, Python, Haskell, etc.)

Citation preview

Page 1: Intro to computer science   module 1

Foundations of Computer Science and Software Engineering

module 1/30

WALID S. SABA

Page 2: Intro to computer science   module 1

Foundations of Computer Science and Software Engineering

ALBERT EINSTIEN

TO THE TEACHER

Page 3: Intro to computer science   module 1

Foundations of Computer Science and Software Engineering

TO THE STUDENT

SOCRATES

Page 4: Intro to computer science   module 1

Foundations of Computer Science and Software Engineering

About this CourseThis is an introductory course that will introduce computer science and software engineering to the novice, and it is also a course that will teach even veteran computer scientists some new concepts, or explain concepts they thought they understood well. Concepts are introduced with hands on experience using object-oriented pseudo code (which can very easily be translated to C#, Java, C++, etc.) and functional programming pseudo code (which can easily be translated into F#, Erlang, Python, Haskell, etc.)

About the AuthorWalid Saba has 20 years of experience in information technology, where he worked at such places as the American Institutes for Research, AT&T Bell Labs, Metlife, Nortel Networks, IBM and Cognos. He has also spent 7 years in academia where he has taught computer science at Carelton University, the New Jersey Institute of Technology, the University of Windsor, and the American University of Beirut. He has published over 30 technical articles, including an award wining paper that he recieved at KI-2008 in Germany. Walid holds a PhD in Computer Science which he obtained from Carleton University in1999

Page 5: Intro to computer science   module 1

Foundations of Computer Science and Software Engineering

Other Courses by the Authoro Logic, Semantics and Natural Language Processingo Ontology, Data Modeling and Knowledge Representationo Object-Oriented Software Engineeringo Advanced Data Structures and Algorithm Design

Page 6: Intro to computer science   module 1

Foundations of Computer Science and Software Engineering

Legends

This icon is used to display some additional information related to the content of a slide

Before you proceed, we recommend answering timely questions that are marked by this icon

This icon is used when links to additional relevant information on the internet are provided

Page 7: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

MODULE 1 (20 minutes)

WHAT IS THE SCIENCE OF COMPUTING CONCERNED WITH?

Page 8: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

A LITTLE STORY

An ancient tribe once sent a wise old man up the mountain to seek God’s wisdom. After some time the wise old man came back claiming that God had supplied him with all the knowledge in the world, which he carved on his cane as a strange symbol that looked like this:

Can this be true?

Can this strange symbol really represent all the knowledge in the world?

Page 9: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

A LITTLE STORY

An ancient tribe once sent a wise old man up the mountain to seek God’s wisdom. After some time the wise old man came back claiming that God had supplied him with all the knowledge in the world, which he carved on his cane as a strange symbol that looked like this:

Can this be true?

Can this strange symbol really represent all the knowledge in the world?

What do you think?

Can this strange symbol represent all the knowledge in the world (Yes, or No)? What is your reasoning in either case?

Page 10: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

One can argue that, yes, this can be true ...How?

Well, all of our knowledge (all of our mental creations),

Page 11: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

One can argue that, yes, this can be true ...How?

Well, all of our knowledge (all of our mental creations), are scripts, symbols, and text

Page 12: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

One can argue that, yes, this can be true ...How?

Well, all of our knowledge (all of our mental creations), are scripts, symbols, and text, paintings

Page 13: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

One can argue that, yes, this can be true ...How?

Well, all of our knowledge (all of our mental creations), are scripts, symbols, and text, paintings, sounds and melodies

Page 14: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

One can argue that, yes, this can be true ...How?

Well, all of our knowledge (all of our mental creations), are scripts, symbols, and text, paintings, sounds and melodies, movies and animations, etc...

Page 15: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

But you have all seen these objects on your digital devices (TVs, computers, phones, tablets, etc.)

The reason you are able to do so is that these objects can all be digitized

Page 16: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

We mean they can all be represented as a sequences of 1’s and 0’s

But what do we mean by “all of these objects can be digitized”?

Page 17: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

We mean they can all be represented as a sequences of 1’s and 0’s

But what do we mean by “all of these objects can be digitized”?

Two words in the heading of this slide make up a phrase that this slide is specifically talking about. What are they?

Can you guess how 1 and 0 are manifested inside a digital device?

Page 18: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

In the end, a binary sequence is nothing but a number.

The decimal value of any binary sequence such as is computed as follows:

Page 19: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

But, in the end, a binary sequence is nothing but a number.

The decimal value of any binary sequence such as is computed as follows:

Note that in the case of a binary sequence, the decimal value is obtained by computing some values and either adding them to the total (multiply them by 1), or ignoring them from the total (multiplying them by 0). In other words, either we are ignoring that position, or we are giving it some value!

Page 20: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

But, in the end, a binary sequence is nothing but a number.

The decimal value of any binary sequence such as is computed as follows:

According to the above definition, what is the decimal value of the binary sequence “101101”?

Page 21: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

But, in the end, a binary sequence is nothing but a number.

The decimal value of any binary sequence such as is computed as follows:

How would you modify the above definition to compute the decimal value of a sequence of octal digits (that is, a sequence of digits in base 8), where 0, 1, 2, 3, 4, 5, 6 and 7 are the only digits?

Page 22: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

But, in the end, a binary sequence is nothing but a number.

The decimal value of any binary sequence such as is computed as follows:

You will soon see learn how to write a very simple, though not too efficient function (or program) that implements the above definition, and later how to write the more efficient one.

Page 23: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

Let’s summarize what we have so far

Page 24: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

Let’s summarize what we have so far

All of our mental creations can be

Page 25: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

Let’s summarize what we have so far

1100010101001110001111100100000111010110101 ...

All of our mental creations can be

digitized into a binary sequence

of 1’s and 0’s

Page 26: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

Let’s summarize what we have so far

1100010101001110001111100100000111010110101 ...

All of our mental creations can be

digitized into a binary sequence

of 1’s and 0’s

A binary sequence, not matter how

large, is in the end some number

72619283749824723947...

Page 27: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

Let’s summarize what we have so far

72619283749824723947...

A binary sequence, not matter how

large, is in the end some number

This number is so large that we want

to represent it using this symbol

1100010101001110001111100100000111010110101 ...

All of our mental creations can be

digitized into a binary sequence

of 1’s and 0’s

Page 28: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

NOW LET’S REPEAT THE STORY AND ASK THE SAME QUESTION AGAIN

An ancient tribe once sent a wise old man up the mountain to seek God’s wisdom. After some time the wise old man came back claiming that God had supplied him with all the knowledge in the world, which he carved on his cane as a strange symbol that looked like this:

What is your answer now? Can this be true?

Can this strange symbol really represent all the knowledge in the world?

Page 29: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

NOW LET’S REPEAT THE STORY AND ASK THE SAME QUESTION AGAIN

An ancient tribe once sent a wise old man up the mountain to seek God’s wisdom. After some time the wise old man came back claiming that God had supplied him with all the knowledge in the world, which he carved on his cane as a strange symbol that looked like this:

What is your answer now? Can this be true?

Can this strange symbol really represent all the knowledge in the world?

Admittedly, the question is a bit tricky. Some of you might have answered yes, given that we showed that all mental creations can be digitized and stored as a binary sequence, which in the end a single value (or that symbol). Others might have said no, this cannot be done, but they do not have a formal proof.

Actually, the answer, which will be discussed next, is that at this point in the state-of-the-art, is partially YES and partially NO. Let’s see why ...

Page 30: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

Here’s the answer ...Yes, the symbol below can represent all the DATA in the world, and some INFORMATION, but not all the KNOWLEDGE in the world

o Yes, we can digitize, store (given enough memory), and manipulate all the DATA in the world

o With creative data modeling, we can represent and manipulate INFORMATION about this data

o But computers, at this point, do not KNOW what they know! So, what is stored is data and information, but not knowledge, and this is the quest of computing science!

Page 31: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

DATA, INFORMATION, and KNOWLEDGE

So what is the difference between DATA, INFORMATION, and KNOWLEDGE?

Page 32: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

DATA, INFORMATION, and KNOWLEDGE

So what is the difference between DATA, INFORMATION, and KNOWLEDGE?

Data is just a set of values (of some variables). That’s it!

Page 33: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

DATA, INFORMATION, and KNOWLEDGE

So what is the difference between DATA, INFORMATION, and KNOWLEDGE?

Data is just a set of values (of some variables). That’s it!

Some examples of data: raw figures, numbers, or symbols that represent the value of something

Page 34: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

DATA, INFORMATION, and KNOWLEDGE

So what is the difference between DATA, INFORMATION, and KNOWLEDGE?

Data is just a set of values (of some variables). That’s it!

Some examples of data: raw figures, numbers, or symbols that represent the value of something

In programming, as we will later see, these variables, that have some data objects as their values, also have types. For example, the type of a data value could be a number, a character, a string, a set, etc.

Page 35: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

DATAA datum such as ‘45’ can represent the value of many variables:

Page 36: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

DATAA datum such as ‘45’ can represent the value of many variables:

Age

Page 37: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

DATAA datum such as ‘45’ can represent the value of many variables:

Age Number of branches in California

Page 38: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

DATAA datum such as ‘45’ can represent the value of many variables:

Number of UN resolutions vetoed by the US between 1966 & 1985

Age Number of branches in California

Page 39: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

DATAA sequence of characters (also called a string) such as “ABBA” can stands for:

Page 40: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

Name of a Swedish pop rock band

DATAA sequence of characters (also called a string) such as “ABBA” can stands for:

Page 41: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

God, or “the Father” in Aramaic (Jesus called his Father Abba ...)

Name of a Swedish pop rock band

DATAA sequence of characters (also called a string) such as “ABBA” can stands for:

Page 42: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

God, or “the Father” in Aramaic (Jesus called his Father Abba ...)

Name of a Swedish pop rock band

DATA

One of the 4-letter palindromes that

can be made out of the letters ‘A’ and ‘B’

A sequence of characters (also called a string) such as “ABBA” can stands for:

Page 43: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

Put simply, INFORMATION is organized DATA. Modeling data in a certain structure that is meaningful to us makes information out of data.

INFORMATION

hmmm

Page 44: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

Too much data

Put simply, INFORMATION is organized DATA. Modeling data in a certain structure that is meaningful to us makes information out of data.

INFORMATION

Page 45: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

What to do?

Put simply, INFORMATION is organized DATA. Modeling data in a certain structure that is meaningful to us makes information out of data.

INFORMATION

Page 46: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

Higher a data

modeller!

Put simply, INFORMATION is organized DATA. Modeling data in a certain structure that is meaningful to us makes information out of data.

INFORMATION

Page 47: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

Put simply, INFORMATION is organized DATA. Modeling data in a certain structure that is meaningful to us makes information out of data.

INFORMATION

Page 48: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

Put simply, INFORMATION is organized DATA. Modeling data in a certain structure that is meaningful to us makes information out of data.

INFORMATION

Page 49: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

Put simply, INFORMATION is organized DATA. Modeling data in a certain structure that is meaningful to us makes information out of data.

INFORMATION

Page 50: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

Some examples of organizing data into information ...INFORMATION

The datum 2 and the datum 3 can be organized in a pair (2,3) to represent a point in a 2-dimensional space (2,3)

(5,1)

The datum 1 and the datum 5 can also be grouped in a pair to represent another point

The straight line connecting (5,1) and (2,3) can be represented by a list of points {(5,1), (2,3), … }

Page 51: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

As another example, consider the following structure (or record, as these structures are typically referred to)

INFORMATION

This structure, made-up of five data items, might represent a record of information for a certain person:

Page 52: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

As another example, consider the following structure (or record, as these structures are typically referred to)

INFORMATION

This structure, made-up of five data items, might represent a record of information for a certain person:

o who is 45 years old,

Page 53: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

As another example, consider the following structure (or record, as these structures are typically referred to)

INFORMATION

This structure, made-up of five data items, might represent a record of information for a certain person:

o who is 45 years old, o who is a female,

Page 54: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

As another example, consider the following structure (or record, as these structures are typically referred to)

INFORMATION

This structure, made-up of five data items, might represent a record of information for a certain person:

o who is 45 years old, o who is a female, o whose name is Mary,

Page 55: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

As another example, consider the following structure (or record, as these structures are typically referred to)

INFORMATION

This structure, made-up of five data items, might represent a record of information for a certain person:

o who is 45 years old, o who is a female, o whose name is Mary, o whose is an Engineer, and

Page 56: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

As another example, consider the following structure (or record, as these structures are typically referred to)

INFORMATION

This structure, made-up of five data items, might represent a record of information for a certain person:

o who is 45 years old, o who is a female, o whose name is Mary, o whose is an Engineer, and o who has a salary of 45,000

Page 57: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

We can organize such data further. For example, the following set of records might represent (part of the) information about employees in a certain company

INFORMATION

Page 58: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

The question now is this: if data is raw figures, numbers or symbols about some facts, and information is a meaningful organization of data, then what is knowledge?

DATA, INFORMATION and KNOWLEDGE

Page 59: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

The question now is this: if data is raw figures, numbers or symbols about some facts, and information is a meaningful organization of data, then what is knowledge?

DATA, INFORMATION and KNOWLEDGE

Information is data organized into facts.

Page 60: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

The question now is this: if data is raw figures, numbers or symbols about some facts, and information is a meaningful organization of data, then what is knowledge?

DATA, INFORMATION and KNOWLEDGE

Knowledge

Knowledge is information about information, or conditional facts

Information is data organized into facts.

Page 61: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

The question now is this: if data is raw figures, numbers or symbols about some facts, and information is a meaningful organization of data, then what is knowledge?

DATA, INFORMATION and KNOWLEDGE

Knowledge

Knowledge is information about information, or conditional facts

Information is data organized into facts.

Page 62: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

IN SUMMARY …

Page 63: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

IN SUMMARY …

Page 64: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

IN SUMMARY …

Page 65: Intro to computer science   module 1

Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge

It is a bit early to discuss the real difference between data, information and knowledge. After all, this course is an introduction to Computer Science and Software Engineering, not an advanced course in Artificial Intelligence.

DATA, INFORMATION and KNOWLEDGE

And, we did not even start the course yet!But now we know a little bit about data, information, and knowledge

Page 66: Intro to computer science   module 1

COMPUTER SCIENCE AS A DESCIPLINE

Introduction to Computer Science

Page 67: Intro to computer science   module 1

COMPUTER SCIENCEAs a formal subject of study, Computer Science started in 1950’s, but the roots of Computer Science can perhaps be traced back to years of work in philosophy, mathematical logic, linguistics, psychology, biology and physics

Pioneers that have defined the field were either mathematicians, such as Godel and Turing; physicists, such as Von Neumann; philosophers, such Gottlob Frege; logicians, such as David Boole; or Biologists, such as McCulloch and Pitts

Introduction to Computer Science

Page 68: Intro to computer science   module 1

COMPUTER SCIENCEAlthough it is one of the newest and fastest developing areas of human knowledge, Computer Science deals with many of the scientific issues that have occupied the most brilliant minds for thousands of years, such as

Introduction to Computer Science

Page 69: Intro to computer science   module 1

COMPUTER SCIENCEAlthough it is one of the newest and fastest developing areas of human knowledge, Computer Science deals with many of the scientific issues that have occupied the most brilliant minds for thousands of years, such as

- the relationship between data, information and knowledge,

Introduction to Computer Science

Page 70: Intro to computer science   module 1

COMPUTER SCIENCEAlthough it is one of the newest and fastest developing areas of human knowledge, Computer Science deals with many of the scientific issues that have occupied the most brilliant minds for thousands of years, such as

- the relationship between data, information and knowledge,- issues related to learning, memory, and cognition,

Introduction to Computer Science

Page 71: Intro to computer science   module 1

COMPUTER SCIENCEAlthough it is one of the newest and fastest developing areas of human knowledge, Computer Science deals with many of the scientific issues that have occupied the most brilliant minds for thousands of years, such as

- the relationship between data, information and knowledge,- issues related to learning, memory, and cognition,- issues of representation, language, meaning, complexity,

Introduction to Computer Science

Page 72: Intro to computer science   module 1

COMPUTER SCIENCEIn dealing with such issues that have occupied the minds of the most brilliant philosophers and scientists for thousands of years, computer scientists develop new technologies and applications that are immediately applicable to almost every aspect of our daily lives.

Introduction to Computer Science

Page 73: Intro to computer science   module 1

COMPUTER SCIENCEIn dealing with such issues that have occupied the minds of the most brilliant philosophers and scientists for thousands of years, computer scientists develop new technologies and applications that are immediately applicable to almost every aspect of our daily lives.

Introduction to Computer Science

allow us to perform remote and real-time banking

Computer scientists have analyzed, designed, and implemented systems that

Page 74: Intro to computer science   module 1

COMPUTER SCIENCEIn dealing with such issues that have occupied the minds of the most brilliant philosophers and scientists for thousands of years, computer scientists develop new technologies and applications that are immediately applicable to almost every aspect of our daily lives.

Introduction to Computer Science

allow us to perform remote and real-time banking

buy and sell products across the world while sitting home

Computer scientists have analyzed, designed, and implemented systems that

Page 75: Intro to computer science   module 1

COMPUTER SCIENCEIn dealing with such issues that have occupied the minds of the most brilliant philosophers and scientists for thousands of years, computer scientists develop new technologies and applications that are immediately applicable to almost every aspect of our daily lives.

Introduction to Computer Science

allow us to perform remote and real-time banking

buy and sell products across the world while sitting home

help doctors perform diagnosis as well as perform surgery

Computer scientists have analyzed, designed, and implemented systems that

Page 76: Intro to computer science   module 1

COMPUTER SCIENCEAdvanced computer algorithms are also behind the systems that

Introduction to Computer Science

Page 77: Intro to computer science   module 1

COMPUTER SCIENCEAdvanced computer algorithms are also behind the systems that

Introduction to Computer Science

control space shuttles

Page 78: Intro to computer science   module 1

COMPUTER SCIENCEAdvanced computer algorithms are also behind the systems that

Introduction to Computer Science

control space shuttles control and maneuver robotic devices roaming planets that are thousands of miles away

Page 79: Intro to computer science   module 1

COMPUTER SCIENCEAdvanced computer algorithms are also behind the systems that

Introduction to Computer Science

control space shuttles perform wireless communication

control and maneuver robotic devices roaming planets that are thousands of miles away

Page 80: Intro to computer science   module 1

COMPUTER SCIENCE vs. COMPUTER PROGRAMMING

Computer programming is thus one of the things computer scientists do – it is only the ‘tool’ by which computer scientists ‘implement’ their ideas, their models, and their designs

Introduction to Computer Science

Computer scientists make machines (computers) do things, and they only way these machines will do anything (since they do not yet understand everyday spoken languages) is by instructing them in formal languages they understand – these languages are called ‘programming languages’.

Page 81: Intro to computer science   module 1

Introduction to Computer ScienceSPECIALTIES IN COMPUTER SCIENCE

Computer science is a rich discipline of study and there are many subfields in computer science that one can spend a lifetime mastering. Some of the main areas of computer science are:

o SOFTWARE ENGINEERINGo ARTIFICIAL INTELLIGENCEo DATA MINING AND MACHINE LEARNINGo COMPUTER GRAPHICS AND VISUALIZATIONo VIRTUAL REALITYo TELECOM AND COMPUTER NETWORKSo COMPUTER VISIONo COMPUTER SECURITY AND CYRPTOGRAPHYo DATA COMPRESSIONo PARALLEL AND DISTRIBUTED SYSTEMSo COMPUTER ARCHITECTURE AND ENGINEERINGo IMAGE PROCESSING AND PATTERN RECOGNITION

Page 82: Intro to computer science   module 1

Introduction to Computer ScienceSPECIALTIES IN COMPUTER SCIENCE

Computer science is a rich discipline of study and there are many subfields in computer science that one can spend a lifetime mastering. Some of the main areas of computer science are:

o SOFTWARE ENGINEERINGo ARTIFICIAL INTELLIGENCEo DATA MINING AND MACHINE LEARNINGo COMPUTER GRAPHICS AND VISUALIZATIONo VIRTUAL REALITYo TELECOM AND COMPUTER NETWORKSo COMPUTER VISIONo COMPUTER SECURITY AND CYRPTOGRAPHYo DATA COMPRESSIONo PARALLEL AND DISTRIBUTED SYSTEMSo COMPUTER ARCHITECTURE AND ENGINEERINGo IMAGE PROCESSING AND PATTERN RECOGNITION

In what subfield of Computer Science would you like to become an expert?

You are right if you are thinking that it is a bit too early to decide!

Page 83: Intro to computer science   module 1

Introduction to Computer Science

COMPUTER SCIENCE

Before becoming a specialist in any subfield of computer science, let us start learning the basics

By the time you finish all the modules in this course you will be in a position to start learning any subfield of computer science in more details

Our main hope is that the key concepts that are covered this course, and which form the foundations of many advanced topics in computer science, are well understood. We further hope that the material presented in this course inspires you to truly become a computer scientist who might one day solve one or more open problems in this exciting field of study

Page 84: Intro to computer science   module 1

Introduction to Computer Science

o Basic Introduction to Logico Sets, Relations and Functionso Inductive (Recursive) Data Structureso Recursion, Induction, and Recursive Programso Relations, Functions and Relational Algebrao Complexity Analysiso Data Types, Types of Programs and Type Inferenceso Higher-Order (Generic) Programming and Programming Patternso Languages, Grammars and Semantic Analysiso Introduction to Automata: Machines and Computation

CONTENT OF THIS COURSE

PART 1 – FOUNDATIONS

Page 85: Intro to computer science   module 1

Introduction to Computer Science

o Basic Data Structures (lists, trees, stacks, queues, graphs)o Basic Algorithms (searching and sorting algorithms)o Hashing techniqueso Applications of algorithms and data structures

CONTENT OF THIS COURSE

PART 2 – BASIC ALGORITHMS AND DATA STURCTURES

o Abstract Data Types (ADTs)o From ADTs to Classes: The Notion and Use of Polymorphismo Object Modeling: Inheritance, Containment and Delegationo Object-Oriented Analysis and Designo Design Heuristics and Design Patterns

PART 3 – OBJECT-ORIENTED SOFTWARE ENGINEERING

Page 86: Intro to computer science   module 1

Introduction to Computer Science

END OF MODULE 1

MATHEMATICAL PRILIMENARIES – LOGIC Next module