Introduction to Computer Science
About the subject
E-mail: ahaveriku@umt.edu.al
Attendance 10%
Laboratory 10%
Course Project 10%
Mode of Evaluation
Midterm Exams 10%
Final Exam 60%
Literature
Computer Science, An Overview; J. Glenn Brookshear (13 th Edition)
Basic Concepts
Numerical systems, converting between different numerical basis;
Numerical codes, Binary, Gray, BCD;
Boolean Algebra, logical gates, logical expressions, minterms, maxterms;
Algorithms, Block-Diagrams, solving different problems;
Hardware, computer architecture, main components in a computer system;
Machine instructions, machine language, assembly language;
Software, Operating system and applications.
Course Content
1. Introduction
The Role of Algorithms;
The history of Computing;
The science of Algorithms.
2. Data Storage
Bits and their storage;
Main memory;
Converting from binary to decimal (vice-versa);
Logical Operators.
3. Numerical and nonnumerical representation
The numerical codes and their usage
Binary codes, BCD, Gray
4. Digital Circuits
Boolean Algebra and logical gates (AND, OR, NAND, NOR, XOR, XNOR);
Building functions using logical gates.
5. Algorithms
The concept of an algorithm;
Algorithm Representation;
Iterative Structures;
Recursive Structures;
Efficiency and Correctness;
6. Programming Languages
Historical Perspective;
Traditional Programming Concepts;
Language Implementation;
Object Oriented Programming.
7. C language
The IDE
Building basic applications
The lifecycle of a program
8. Control structures and cycles
Simple and complex instructions
Control structures (if, else if, switch, break, continue)
Cycles: while, for, do while
9. Final project
Preparing a simple program in C
Computer science (CS)
Overview of ◦ What is a computer system?
Discussion
◦ What can computers do?
◦ How do computers solve problems?
◦ What is computer science?
Which one is a computer system?
Rock
Calculator
Modern Airplane Workstation
Is it a Computer?
Imagine a black box
How can you determine if the system you are
analysing is a computer?
What questions should we take into consideration?
What experiments should we run?
Is a rock a computer?
- Takes no input and produces no output
- Does not act or process anything
Computers must be able to handle input
and produce an output.
Is a modern airplane a computer?
Input: Information from radio waves
Output: manipulations to the airplane
Can only handle specific information necessary
for flight control.
Computers are general purpose because they
can perform many different tasks
Is a calculator a computer
Input: numbers and mathematical
operations
Output: answer
Handles any numeric task;
Cannot remember which buttons are
pressed.
Computers are programmable so they can
remember sequences of operations.
Definition of a computer
A general purpose;
Programmable;
Information processor;
With an input and output.
Embedded computers and robots
Machines with fully incorporated computers inside
◦ Washing machines, airplanes, ATMs etc.
Such machines require highly reliable, predictable computer
programs;
All physical mechanisms controlled by computers are
robotic devices
◦ Robotic arm etc.
What can computers do – today?
Personal Information
Business productivity
Database Software
Simulate the physical world
Produce a music video etc.
What might
computers do –
tomorrow?
Diagnose diseases;
Control robots that walk,
talk and learn;
Compose music, create art.
How do computers solve problems?
Humans deconstruct problems into small operations that a computer
can carry out
Writing an algorithm
Solving a problem by the use of a computer requires:
State the problem clearly in a problem statement;
Solve the problem with an algorithm that gives clear instructions;
Use a computing agent to carry out instructions.
Algorithm usage
Algorithm – a clear sequence of instructions for performing
a task:
◦ a well ordered sequence,
◦ of well-defined operations,
◦ that takes finite time to carry out.
What is computer science?
The study of computers
The study of algorithmic processes including their:
Formal and mathematical properties;
Hardware realizations;
Linguistic realizations;
Applications.
Who invented computers?
Computer science has roots in two fields:
Mathematics
◦ Alan Turing and the Turing machine (1930);
◦ Developed theories with paper and pencil about how to perform
calculations.
Engineering
◦ John von Neumann and the Von Neuman machine (1940);
◦ Showed how to build physical computers out of electronic circuits.
A computer system
A computer system is composed of hardware and software components;
Each component is part of a layer, where services from a layer are build based on lower layers.
Layer Jobs
Application Programs Application programmers Software
System Utility Programs System programmers
Operating Systems
I/O System
Computer System Computer Engineers Hardware
CPU Computer Architects
Memory, Logical Gates, Flip-flop Logic Designers
Transistors, Diode, Power Supply etc. Material Scientist
System Software Vs App Software
Application Software Systems Software
Written for the users. Written for the well functioning of the computer.
Solution to real life problems in different Controls and manages the computer systems.
sectors such as healthcare, finance etc.
A high level of abstraction. Linked to data transfer, writing and reading the
files, compilation and execution of the programs.
Independent from the device or platform, Linked with drivers and operating systems.
general algorithm usage.
Build in programming languages such as Build in assembly language, C, C++.
Javascript, Perl, Python, Ruby, Java, C# etc.
Programming languages
Programming languages are divided into
High level languages, use abstract concepts, near the natural language;
Assembly language, composed of instructions which are directly linked to machine
instructions;
Machine language, defines the code executed in the processor, everything is in binary
language;
Translator
Important Ideas
Moore’s Law
Named after the cofounder of
Intel, Gordon E. Moore;
The number of transistors in a
microchip will double each two
years;
The computer’s cost will be
diminish in half;
The performance of computers
is increased, while prices are
decreasing.
Abstraction
Computer Architects and
programmers use abstraction to
present different levels which
compose a system.
Parallelism
The execution of instructions
in parallel;
An example of parallelism is
pipelining.
Memory
hierarchy
Programmers want a fast,
efficient and low cost memory;
The memory hierarchy creates
the illusion that the main
memory is fast and with a high
volume in disposal.
To Read
Chapter 0 Introduction
0.1 The Role of Algorithms
0.2 The History of Computing
0.3 An Outline of Our Study
0.4 The Overarching Themes of Computer Science
Turing machine
https://youtu.be/3wLqsRLvV-c
Ada Lovelace,
the first programmer
Thank you!