0
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 Course
This is an introductory course that will introd...
Foundations of Computer Science
and Software Engineering
Other Courses by the Author
o Logic, Semantics and Natural Langua...
Foundations of Computer Science
and Software Engineering
Legends
This icon is used to display some additional information
...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
MODULE 1 (2...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
A LITTLE ST...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
A LITTLE ST...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
One can arg...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
One can arg...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
One can arg...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
One can arg...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
One can arg...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
But you hav...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
We mean the...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
We mean the...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
In the end,...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
But, in the...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
But, in the...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
But, in the...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
But, in the...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
Let’s summa...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
Let’s summa...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
Let’s summa...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
Let’s summa...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
Let’s summa...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
NOW LET’S R...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
NOW LET’S R...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
Here’s the ...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
DATA, INFOR...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
DATA, INFOR...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
DATA, INFOR...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
DATA, INFOR...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
DATA
A datu...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
DATA
A datu...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
DATA
A datu...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
DATA
A datu...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
DATA
A sequ...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
Name of a
S...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
God, or “th...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
God, or “th...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
Put simply,...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
Too much da...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
What to do?...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
Higher a da...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
Put simply,...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
Put simply,...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
Put simply,...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
Some exampl...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
As another ...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
As another ...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
As another ...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
As another ...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
As another ...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
As another ...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
We can orga...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
The questio...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
The questio...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
The questio...
Computer Science is ultimately the science of
representing and reasoning with data,
information, and knowledge
The questio...
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...
COMPUTER SCIENCE AS A DESCIPLINE
Introduction to Computer Science
COMPUTER SCIENCE
As a formal subject of study, Computer Science started in 1950’s, but the roots of Computer
Science can p...
COMPUTER SCIENCE
Although it is one of the newest and fastest developing areas of human knowledge,
Computer Science deals ...
COMPUTER SCIENCE
Although it is one of the newest and fastest developing areas of human knowledge,
Computer Science deals ...
COMPUTER SCIENCE
Although it is one of the newest and fastest developing areas of human knowledge,
Computer Science deals ...
COMPUTER SCIENCE
Although it is one of the newest and fastest developing areas of human knowledge,
Computer Science deals ...
COMPUTER SCIENCE
In dealing with such issues that have occupied the minds of the most brilliant philosophers and
scientist...
COMPUTER SCIENCE
In dealing with such issues that have occupied the minds of the most brilliant philosophers and
scientist...
COMPUTER SCIENCE
In dealing with such issues that have occupied the minds of the most brilliant philosophers and
scientist...
COMPUTER SCIENCE
In dealing with such issues that have occupied the minds of the most brilliant philosophers and
scientist...
COMPUTER SCIENCE
Advanced computer algorithms are also behind the systems that
Introduction to Computer Science
COMPUTER SCIENCE
Advanced computer algorithms are also behind the systems that
Introduction to Computer Science
control sp...
COMPUTER SCIENCE
Advanced computer algorithms are also behind the systems that
Introduction to Computer Science
control sp...
COMPUTER SCIENCE
Advanced computer algorithms are also behind the systems that
Introduction to Computer Science
control sp...
COMPUTER SCIENCE vs. COMPUTER PROGRAMMING
Computer programming is thus one of the things computer scientists do – it is on...
Introduction to Computer Science
SPECIALTIES IN COMPUTER SCIENCE
Computer science is a rich discipline of study and there ...
Introduction to Computer Science
SPECIALTIES IN COMPUTER SCIENCE
Computer science is a rich discipline of study and there ...
Introduction to Computer Science
COMPUTER SCIENCE
Before becoming a specialist in any subfield of computer science, let us...
Introduction to Computer Science
o Basic Introduction to Logic
o Sets, Relations and Functions
o Inductive (Recursive) Dat...
Introduction to Computer Science
o Basic Data Structures (lists, trees, stacks, queues, graphs)
o Basic Algorithms (search...
Introduction to Computer Science
END OF MODULE 1
MATHEMATICAL PRILIMENARIES – LOGIC
Next module
Upcoming SlideShare
Loading in...5
×

Intro to computer science module 1

254

Published on

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.)

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
254
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
11
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Intro to computer science module 1"

  1. 1. Foundations of Computer Science and Software Engineering module 1/30 WALID S. SABA
  2. 2. Foundations of Computer Science and Software Engineering ALBERT EINSTIEN TO THE TEACHER
  3. 3. Foundations of Computer Science and Software Engineering TO THE STUDENT SOCRATES
  4. 4. Foundations of Computer Science and Software Engineering About this Course This 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 Author Walid 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
  5. 5. Foundations of Computer Science and Software Engineering Other Courses by the Author o Logic, Semantics and Natural Language Processing o Ontology, Data Modeling and Knowledge Representation o Object-Oriented Software Engineering o Advanced Data Structures and Algorithm Design
  6. 6. 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
  7. 7. 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?
  8. 8. 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?
  9. 9. 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?
  10. 10. 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),
  11. 11. 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
  12. 12. 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
  13. 13. 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
  14. 14. 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...
  15. 15. 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
  16. 16. 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”?
  17. 17. 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?
  18. 18. 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:
  19. 19. 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!
  20. 20. 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”?
  21. 21. 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?
  22. 22. 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.
  23. 23. Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge Let’s summarize what we have so far
  24. 24. 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
  25. 25. 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
  26. 26. 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...
  27. 27. 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
  28. 28. 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?
  29. 29. 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 ...
  30. 30. 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!
  31. 31. 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?
  32. 32. 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!
  33. 33. 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
  34. 34. 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.
  35. 35. Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge DATA A datum such as ‘45’ can represent the value of many variables:
  36. 36. Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge DATA A datum such as ‘45’ can represent the value of many variables: Age
  37. 37. Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge DATA A datum such as ‘45’ can represent the value of many variables: Age Number of branches in California
  38. 38. Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge DATA A 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
  39. 39. Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge DATA A sequence of characters (also called a string) such as “ABBA” can stands for:
  40. 40. Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge Name of a Swedish pop rock band DATA A sequence of characters (also called a string) such as “ABBA” can stands for:
  41. 41. 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 A sequence of characters (also called a string) such as “ABBA” can stands for:
  42. 42. 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:
  43. 43. 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
  44. 44. 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
  45. 45. 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
  46. 46. 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
  47. 47. 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
  48. 48. 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
  49. 49. 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
  50. 50. 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), … }
  51. 51. 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:
  52. 52. 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,
  53. 53. 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,
  54. 54. 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,
  55. 55. 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
  56. 56. 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
  57. 57. 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
  58. 58. 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
  59. 59. 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.
  60. 60. 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.
  61. 61. 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.
  62. 62. Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge IN SUMMARY …
  63. 63. Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge IN SUMMARY …
  64. 64. Computer Science is ultimately the science of representing and reasoning with data, information, and knowledge IN SUMMARY …
  65. 65. 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
  66. 66. COMPUTER SCIENCE AS A DESCIPLINE Introduction to Computer Science
  67. 67. COMPUTER SCIENCE As 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
  68. 68. COMPUTER SCIENCE Although 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
  69. 69. COMPUTER SCIENCE Although 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
  70. 70. COMPUTER SCIENCE Although 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
  71. 71. COMPUTER SCIENCE Although 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
  72. 72. COMPUTER SCIENCE In 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
  73. 73. COMPUTER SCIENCE In 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
  74. 74. COMPUTER SCIENCE In 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
  75. 75. COMPUTER SCIENCE In 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
  76. 76. COMPUTER SCIENCE Advanced computer algorithms are also behind the systems that Introduction to Computer Science
  77. 77. COMPUTER SCIENCE Advanced computer algorithms are also behind the systems that Introduction to Computer Science control space shuttles
  78. 78. COMPUTER SCIENCE Advanced 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
  79. 79. COMPUTER SCIENCE Advanced 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
  80. 80. 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’.
  81. 81. Introduction to Computer Science SPECIALTIES 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 ENGINEERING o ARTIFICIAL INTELLIGENCE o DATA MINING AND MACHINE LEARNING o COMPUTER GRAPHICS AND VISUALIZATION o VIRTUAL REALITY o TELECOM AND COMPUTER NETWORKS o COMPUTER VISION o COMPUTER SECURITY AND CYRPTOGRAPHY o DATA COMPRESSION o PARALLEL AND DISTRIBUTED SYSTEMS o COMPUTER ARCHITECTURE AND ENGINEERING o IMAGE PROCESSING AND PATTERN RECOGNITION
  82. 82. Introduction to Computer Science SPECIALTIES 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 ENGINEERING o ARTIFICIAL INTELLIGENCE o DATA MINING AND MACHINE LEARNING o COMPUTER GRAPHICS AND VISUALIZATION o VIRTUAL REALITY o TELECOM AND COMPUTER NETWORKS o COMPUTER VISION o COMPUTER SECURITY AND CYRPTOGRAPHY o DATA COMPRESSION o PARALLEL AND DISTRIBUTED SYSTEMS o COMPUTER ARCHITECTURE AND ENGINEERING o 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!
  83. 83. 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
  84. 84. Introduction to Computer Science o Basic Introduction to Logic o Sets, Relations and Functions o Inductive (Recursive) Data Structures o Recursion, Induction, and Recursive Programs o Relations, Functions and Relational Algebra o Complexity Analysis o Data Types, Types of Programs and Type Inferences o Higher-Order (Generic) Programming and Programming Patterns o Languages, Grammars and Semantic Analysis o Introduction to Automata: Machines and Computation CONTENT OF THIS COURSE PART 1 – FOUNDATIONS
  85. 85. Introduction to Computer Science o Basic Data Structures (lists, trees, stacks, queues, graphs) o Basic Algorithms (searching and sorting algorithms) o Hashing techniques o 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 Polymorphism o Object Modeling: Inheritance, Containment and Delegation o Object-Oriented Analysis and Design o Design Heuristics and Design Patterns PART 3 – OBJECT-ORIENTED SOFTWARE ENGINEERING
  86. 86. Introduction to Computer Science END OF MODULE 1 MATHEMATICAL PRILIMENARIES – LOGIC Next module
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×