GET214 Lesson0 - Introduction to Computing
GET214 Lesson0 - Introduction to Computing
Reference Textbook:
Introduction to Python Programming by UDAYAN DAS et al
COURSE OUTLINE
1. Introduction to Python: Syntax, input, output, variables, operators, errors and
comments
2. Python expressions: Type conversions, common built-in functions, math
module, formatted outputs
3. Decisions: Boolean values and variables, Boolean operators, conditional
statements
4. Loops: The range() function, for loop, while loop, break, pass and continue
statements
5. Python Data Structures: Strings, Lists, tuples and Dictionaries
6. User Defined Functions: Simple and recursive functions
7. Object Oriented Programming (OOP): Classes, objects, constructors and
destructors, inheritance, abstraction, encapsulation and polymorphism
8. Files: reading from files, writing to files, working with csv files.
9. Introduction to Data Science: Numpy, Pandas, explorative data analysis
LESSON 0: INTRODUCTION TO COMPUTING
Learning Outcomes:
1. Define computing
2. Describe how machine language and assembly language work
3. State the problems associated with machine language and assembly language
programming
4. Explain the difference compilers and interpreters as language translators
5. Describe the software development life cycle (SDLC)
6. State the various classification of computer software
Computer are designed to take instructions in binary form (0s and 1s). These binary
codes form what is called machine language. Machine language consist of sequence
of binary digits (bits) representing instructions, data and operations in a computer.
Machine language is called a low level language, since they are directly understood
by the machine. An example of a machine language instruction is a simple addition
operation: 01100110 00001010. This binary sequence represents an instruction that
tells the computer to add two numbers together. Two problems were faced by the
machine language. Firstly, it was difficult to memorize the sequence of bits
representing each instruction. Secondly, it was machine dependent. This means that
the instructions set learned for one processor cannot be applied in another processor.
The assembly language could however not be understood by the machine directly.
A translator was developed to translate the mnemonics to machine language, which
the computer understands. The language translator was called assembler.
Assembly language still shared one of the challenges of the machine language –
machine dependence. Having overcome the first challenge of machine language to
an extent, the assembly language is classified as middle-level language.
High level languages (HLL) are a complete deviation from the low level and middle
level languages. Firstly, they are similar to human languages and thus, easier to learn
and memorize. Secondly, they are not machine dependent. They can target multiple
platforms and processors without modifications. Examples of High Level Languages
are Java, Python, C, C++, FORTRAN, etc. High level languages require language
translators to convert the human-like source code to machine code, which the
computer understands. These translators can either be a compiler or an interpreter.
Figure 1: Classification of Programming Languages
Compilers check the entire code to ensure it is error free before converting
everything to machine language. Interpreters however does its translation one line at
a time. Because of the approach to the translation, the interpreter is usually faster
than the compiler.
The development of an efficient software takes several steps and processes and since
software undergoes continuous improvements, the cycle of steps and processes
continues. The SDLC comprises of the following steps.
Classification of Software
Software
Programming software are written to aid in the development of other software. These
are made up of language translators like compilers, interpreters and assemblers
which are sometimes packaged as Integrated Development Environments (IDE).
IDEs contain a text editors for typing source code, language translator, debuggers
and libraries of functions.
Application software are developed to solve every day human problems. They are
classified as generic, professional or bespoke software. Generic software are
designed to solve general problems and serve a wide variety of users. Example is the
Microsoft office suit and some general graphics applications. Some software are
developed to meet the need of a particular profession. Such software are called
professional software. An example is accounting software or inventory application.
Bespoke software are specially designed for a specific problem. Such software may
not be used for another user without significant modifications since it was tailor-
made for a particular user in a particular scenario.