An Introduction to Computing

Introduces the basics of the functional and imperative models of computation, recursive and iterative processes, and the basics of programming using higher-order functions. Uses Standard ML and Java as the programming languages.

**Tag(s):**
Theory of Computation

**Publication date**: 02 Aug 2003

**ISBN-10**:
n/a

**ISBN-13**:
n/a

**Paperback**:
n/a

**Views**: 31,048

**Type**: N/A

**Publisher**:
n/a

**License**:
n/a

**Post time**: 26 Feb 2007 05:34:47

An Introduction to Computing

Introduces the basics of the functional and imperative models of computation, recursive and iterative processes, and the basics of programming using higher-order functions. Uses Standard ML and Java as the programming languages.

Terms and Conditions:

Notes Summary:

This course is about computing. The notion of computing is much more fundamental than the notion of a computer, because computing can be done even without one. In fact, we have been computing ever since we entered primary school, mainly using pencil and paper. Since then, we have been adding, subtracting, multiplying, dividing, computing lengths, areas, volumes and many many other things. In all these computations we follow some definite, unambiguous set of rules. This course is about studying these rules for a variety of problems and writing them down explicitly.

When we explicitly write down the rules (or instructions) for solving a given computing problem, we call it an algorithm. Thus algorithms are primarily vehicles for communication; for specifying solutions to computational problems, unambiguously, so that others (or even computers) can understand the solutions. When an algorithm is written according to a particular syntax of a language which can be interpreted by a digital computer, we call it a program. This last step is necessary when we wish to carry out our computations using a computer.

While writing down algorithms, it is important to choose an underlying model of computation, i.e., to choose appropriate primitives to describe an algorithm. This choice determines the kind of computations that can be carried out in the model.

With each of these models of computing, the rules for specifying a solution (algorithms) are different, and the precision of the solution also differs. Thus, in our study of algorithms and programs, it becomes important to first choose a reasonable model of computation. In these notes we will describe our choice of computational models which are widely used in modern computing using digital computers.

Once a computational model in available, and we can specify an algorithm (or a program) to solve a given problem, we have to ensure that the algorithm is correct. We would also wish that our algorithms are efficient. Correctness and efficiency of algorithm design are central issues in this course. In these notes, we will endeavour to develop methodologies for the design of correct algorithms.

Subhashis Banerjee wrote:Copyright (C) 1997-2003, Subhashis Banerjee and S. Arun-Kumar. All Rights Reserved. These notes may be used in an academic course with the prior consent of the authors.

Notes Summary:

This course is about computing. The notion of computing is much more fundamental than the notion of a computer, because computing can be done even without one. In fact, we have been computing ever since we entered primary school, mainly using pencil and paper. Since then, we have been adding, subtracting, multiplying, dividing, computing lengths, areas, volumes and many many other things. In all these computations we follow some definite, unambiguous set of rules. This course is about studying these rules for a variety of problems and writing them down explicitly.

When we explicitly write down the rules (or instructions) for solving a given computing problem, we call it an algorithm. Thus algorithms are primarily vehicles for communication; for specifying solutions to computational problems, unambiguously, so that others (or even computers) can understand the solutions. When an algorithm is written according to a particular syntax of a language which can be interpreted by a digital computer, we call it a program. This last step is necessary when we wish to carry out our computations using a computer.

While writing down algorithms, it is important to choose an underlying model of computation, i.e., to choose appropriate primitives to describe an algorithm. This choice determines the kind of computations that can be carried out in the model.

With each of these models of computing, the rules for specifying a solution (algorithms) are different, and the precision of the solution also differs. Thus, in our study of algorithms and programs, it becomes important to first choose a reasonable model of computation. In these notes we will describe our choice of computational models which are widely used in modern computing using digital computers.

Once a computational model in available, and we can specify an algorithm (or a program) to solve a given problem, we have to ensure that the algorithm is correct. We would also wish that our algorithms are efficient. Correctness and efficiency of algorithm design are central issues in this course. In these notes, we will endeavour to develop methodologies for the design of correct algorithms.

Tweet

About The Author(s)

No information is available for this author.

No information is available for this author.

Book Categories

Computer Science
Introduction to Computer Science
Introduction to Computer Programming
Algorithms and Data Structures
Artificial Intelligence
Computer Vision
Machine Learning
Neural Networks
Game Development and Multimedia
Data Communication and Networks
Coding Theory
Computer Security
Information Security
Cryptography
Information Theory
Computer Organization and Architecture
Operating Systems
Image Processing
Parallel Computing
Concurrent Programming
Relational Database
Document-oriented Database
Data Mining
Big Data
Data Science
Digital Libraries
Compiler Design and Construction
Functional Programming
Logic Programming
Object Oriented Programming
Formal Methods
Software Engineering
Agile Software Development
Information Systems
Geographic Information System (GIS)

Mathematics
Mathematics
Algebra
Abstract Algebra
Linear Algebra
Number Theory
Numerical Methods
Precalculus
Calculus
Differential Equations
Category Theory
Proofs
Discrete Mathematics
Theory of Computation
Graph Theory
Real Analysis
Complex Analysis
Probability
Statistics
Game Theory
Queueing Theory
Operations Research
Computer Aided Mathematics

Supporting Fields
Web Design and Development
Mobile App Design and Development
System Administration
Cloud Computing
Electric Circuits
Embedded System
Signal Processing
Integration and Automation
Network Science
Project Management

Operating System
Programming/Scripting
Ada
Assembly
C / C++
Common Lisp
Forth
Java
JavaScript
Lua
Rexx
Microsoft .NET
Perl
PHP
R
Python
Rebol
Ruby
Scheme
Tcl/Tk

Miscellaneous
Sponsors