Upload
walid-saba
View
188
Download
0
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
Foundations of Computer Science and Software Engineering
module 1/30
WALID S. SABA
Foundations of Computer Science and Software Engineering
ALBERT EINSTIEN
TO THE TEACHER
Foundations of Computer Science and Software Engineering
TO THE STUDENT
SOCRATES
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
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
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
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?
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?
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?
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),
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
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
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
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...
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
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”?
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?
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:
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!
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”?
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?
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.
Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge
Let’s summarize what we have so far
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
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
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...
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
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?
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 ...
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!
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?
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!
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
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.
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:
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
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
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
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:
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:
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:
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:
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
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
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
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
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
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
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
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), … }
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:
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,
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,
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,
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
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
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
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
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.
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.
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.
Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge
IN SUMMARY …
Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge
IN SUMMARY …
Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge
IN SUMMARY …
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
COMPUTER SCIENCE AS A DESCIPLINE
Introduction to Computer Science
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
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
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
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
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
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
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
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
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
COMPUTER SCIENCEAdvanced computer algorithms are also behind the systems that
Introduction to Computer Science
COMPUTER SCIENCEAdvanced computer algorithms are also behind the systems that
Introduction to Computer Science
control space shuttles
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
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
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’.
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
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!
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
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
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
Introduction to Computer Science
END OF MODULE 1
MATHEMATICAL PRILIMENARIES – LOGIC Next module