﻿ Introduction to Computers

# Introduction to Computers

During the course, first we consider the digital computer as a black box, and then we will gradually go into detail about its internal workings. Finally, we shall see the computer as a white box, getting a clear picture of the fundamental aspects of how the computer works.

In order to achieve our goals, we shall discuss, among others, the following topics:

1. Introduction to computers. The computer as an information processing machine (black box model, data vs. information etc.). Basic IT concepts.
• digital computers
• computer systems; computer achitecture
• computer hardware
• early computers; electronic computers
• computer software
• computer applications
2. Number systems, conversion rules and algorithms (through examples and computer programs). The concept and basic characteristics of algorithms, and ways of how we can express them.
• number or numeral systems; positional notation
• decimal, binary and hexadecimal notation
• conversion algorithms
3. Using programs to describe algorithms. Elements of a high level programming language. Description of the presented algorithms using short programs.
• variables, data types, operators, assignment statements; complex data types (e.g. strings, arrays etc.)
• basic program structures (sequences, selections, iterations or loops) and their corresponding flowcharts
4. Data representation, formats, operations and related algorithms (numerical, character, logical or Boolean types, etc.).
• binary representation of unsigned integers
• two's complement representation of integers
• floating-point notation of real numbers
1. Boolean or logic functions and operations. Boolean algebra. Truth tables. Examples of how to express and simplify various logical functions
2. Logic gates and circuits.
3. Basic principles of the von Neumann machine.

You can use an online JavaScript interpreter to try the JS example programs presented in the material:

Online JavaScript Interpreter by Peter Jipsen, Chapman University (January 2013).
http://math.chapman.edu/~jipsen/js/ (2020-11-19)

The flowchart of JavaScript programs can be displayed using the following web application:

Live code editor. Created by Bogdan Lyashenko.
https://bogdan-lyashenko.github.io/js-code-to-svg-flowchart/docs/live-editor/index.html (2022-10-02)

Important note: the flowchart does not represent the 'for' loop correctly, so it is worth rewriting 'for' loops into 'while' loops before displaying the flowchart of the program.

Logic circuits representing various logical functions can be easily designed using the following web applications:

Logic Gate Simulator | Academo.org – Free, interactive, education.
simulator.io - Build and simulate logic circuits.
https://simulator.io/ (2022-11-19)

Exercises

• implementing conversion and data representation algorithms
• creating truth tables manually and with simple JavaScript programs
• proving logical laws or tautologies (e.g. distributivity, absorption, de Morgan laws etc.) by creating truth tables
• using logical laws or tautologies for transforming given logical expressions into equivalent ones
• proving logical identities (that is, the equivalence of logical expressions) by truth tables and derivation
• proving logical laws or rules (e.g. rules of inference etc.) by truth tables and derivation
• creating the disjunctive formal form (DNF) of logical functions given by truth tables
• simplifying logical expressions given in disjunctive formal form by using Karnaugh tables
• using interactive Karnaugh tables simplifying logical expressions of three variables
• creating and testing logic circuits from logic gates in order to implement a given logical expression