The file serves as the introductory lecture for a foundational computing course, aimed at providing students with a comprehensive overview of key concepts in the field. It covers the definition and significance of computing, a brief history of technological advancements, and basic concepts including...
The file serves as the introductory lecture for a foundational computing course, aimed at providing students with a comprehensive overview of key concepts in the field. It covers the definition and significance of computing, a brief history of technological advancements, and basic concepts including hardware, software, data representation, algorithms, and programming languages. Additionally, the presentation explores various applications of computing across different industries and outlines the course objectives, fostering engagement through interactive activities designed to reinforce learning. This lecture is tailored for beginners, laying the groundwork for more advanced topics in subsequent sessions.
Size: 1.7 MB
Language: en
Added: Oct 07, 2024
Slides: 19 pages
Slide Content
Introduction To Computing CCS1101 Lecture 1 Introduction
Objectives Learn about computer systems Discuss the layers of a computing system List Computer Science fields Present the course outline and assessment methodology
Computing Systems A computing system is a dynamic entity, used to solve problems and interact with its environment. A computing system is composed of hardware, software, and the data that they manage. Computer hardware is the collection of physical elements that make up the machine and its related pieces: boxes, circuit boards, chips, wires, disk drives, keyboards, monitors, printers, and so on. Computer software is the collection of programs that provide the instructions that a computer carries out. At the very heart of a computer system is the information that it manages. Without data, the hardware and software are essentially useless. Note the difference between a computer and a computing system
Layers of a computing system “The Big Picture” Layers of a computing system
Layers of a computing system A computing system is like an onion, made up of many layers. Each layer plays a specific role in the overall design of the system. The innermost layer, information, reflects the way we represent information on a computer. Information on a computer is managed using binary digits, 1 and 0. Types of information are: numbers, text, images, audio, and video represented in a binary format.
The next layer, hardware, consists of the physical hardware of a computer system. Computer hardware includes devices such as gates and circuits, which control the flow of electricity in fundamental ways. Core electronic circuitry gives rise to specialized hardware components such as the computer’s Central Processing Unit (CPU) and memory Layers of a computing system
The programming layer deals with software, the instructions used to accomplish computations and manage data. Programs can take many forms, be performed at many levels, and be implemented in many languages. In computing, a device driver (commonly referred to as a driver ) is a computer program that operates or controls a particular type of device that is attached to a computer. A driver provides a software interface to hardware devices, enabling operating systems and other computer programs to access hardware functions without needing to know precise details of the hardware being used. Drivers may interface with printers, network cards, image scanners, computer storage devices Layers of a computing system
These previous (inner) layers focus on making a computer system work. The application layer, on the other hand, focuses on using the computer to solve specific real-world problems. We run application programs to make use of the computer’s abilities in other domains, such as helping us design a building or play a game . Every computer has an Operating System (OS) to help manage the computer’s resources. Operating systems, such as Windows, Linux, or the Mac OS, help us interact with the computer system and manage the way hardware devices, programs, and data interact. Layers of a computing system
Computers no longer exist in isolation on someone’s desktop. We use computer technology to communicate, and that communication is a fundamental layer at which computing systems operate. Computers are connected into networks to share information and resources. The Internet evolved into a global network so that there is almost no place on Earth that you cannot communicate with via computing technology. The World Wide Web makes that communication relatively easy. It has revolutionized computer use and made it accessible to the general public. Layers of a computing system
Computers have inherent limitations on their ability to represent information, and they are only as good as their programming makes them. Furthermore, it turns out that some problems cannot be solved at all Problem 1 : Choose a college or university to attend Would you trust a computer to solve this problem for you? several factors are involved, many of them hard to quantify. you don’t expect another person to solve this problem for you, either. the issue here is not the computer, it’s the nature of the problem. in order to “compute” the best choice you would need to be given a precise weight to each factor. What Computers Can’t Do
Problem 2 : Invite friends over to watch a DVD It would be nice if our cell phones were more like personal assistants pick up the phone, say “invite Erica and Katie over to watch a DVD” your phone would negotiate with their phones to pick a time that works this is the sort of thing humans can do (“have your people call my people...”) Unlike the previous problem, this is an example of something humans can do that machines (so far) cannot will a future computer be able to solve this problem? What Computers Can’t Do
Problem 3 : The perfect game of chess You might think it would be easy for a computer to win a game of chess The rules of the game are simple, and it’s straightforward to write a program that would have a computer examine all possible moves The problem: there are too many moves to consider there are an estimated 10 43 possible games a supercomputer checking 10 12 boards/sec would need 10 21 years to look at them all So here we have a new type of limitation: a practical limit people are no better than machines at performing this task grand masters do not consider all possible moves What Computers Can’t Do
Problem 4 : Non-computable functions A famous problem in computer science is known as “the halting problem”. The goal: write a program that determines if another program is stuck suppose you’re writing a paper and the pointer changes to the “busy” icon it is impossible to write a “halt checker” to see if the word processor has crashed a new type of limitation: a mathematical barrier another example where people are no better than machines at solving the problem What Computers Can’t Do
Based on the previous slide it can be concluded that some tasks that computers cannot perform are also impossible for humans. The difficulty is in the nature of the problem , not the person or thing trying to solve it A problem might not be solvable by humans or computers because some attributes are not quantifiable (quality of life at a university) it is impractical (chess) it is impossible (halt checker) Problems that humans can solve but computers can’t are often described in terms of “intelligence” natural language processing, planning, design, ... an active area of CS research: artificial intelligence (AI) Recap: Computational Limits
Computer Science Fields
Provisional Course Outline Week # Lecture Outline Section Outline 1 Introduction and Course Overview Introduction and Course Overview 2 New Trends in Computer Science Numbering Systems 3 New Trends in Computer Science cont. Numbering Systems 4 Hardware and Computer Organization Algorithms and Flowcharts Quiz 1 5 Computer Software Putting it all together Algorithms and Flowcharts 6 Algorithm Design and Problem Solving Algorithms and Flowcharts 7 Flowcharts and Algorithms Part 1 Algorithms and Flowcharts Quiz 2 8 Flowcharts and Algorithms Part 2 Programming Languages Programming in C (Data types – variables , constants) 9 Programming in C (Data types – variables , constants) Programming in C (Arithmetic Expressions and Decisions) 10 Programming in C (Arithmetic Expressions and Decisions) Programming in C (Loops Part 1) 11 Programming in C (Loops Part 1) Programming in C (Loops Part 2) 12 Programming in C (Loops Part 2) Programming in C (Arrays) Quiz 3 13 Programming in C (Arrays) Programming in C (Functions) 14 Programming in C (Functions Part 1) Programming in C (Writing mini project-like programs such as searching and sorting) 15 Programming in C (Functions Part 2) Programming in C Submission of a mini C project 16 Final Exam
Assessment and Textbooks Assessment Text Book Behrouz, A. Forouzan and De Anza College, “ Foundations of Computer Science”, 4 th Edition, Cengage Learning. References Dale, Nell and John Lewis, “ Computer Science Illuminated”, 7 th edition, Jones & Bartlett Learning. Kernighan, B.W. and Ritchie, D.M. “The C Programming Language”, 2 nd Edition Prentice-Hall, Hoboken. 7 th Week Exam Exam (20%) Section Quiz 1 (5%) + Section Quiz 2 (5%) 12 th Week Exam Exam (15%) Section Quiz 3 (5%) Year Work Year Work (10%) Final Exam Exam (40%)