Foundations of Computer Science

Foundations of Computer Science

Introduces the principles of data structures and algorithms. Emphasises the algorithmic side of programming, focusing on problem-solving rather than on hardware-level bits and bytes.

Publication date: 31 Dec 2000

ISBN-10: n/a

ISBN-13: n/a

Paperback: 155 pages

Views: 28,985

Type: Lecture Notes

Publisher: n/a

License: n/a

Post time: 16 Oct 2006 12:49:57

Foundations of Computer Science

Foundations of Computer Science Introduces the principles of data structures and algorithms. Emphasises the algorithmic side of programming, focusing on problem-solving rather than on hardware-level bits and bytes.
Tag(s): Algorithms and Data Structures Functional Programming Introduction to Computer Programming
Publication date: 31 Dec 2000
ISBN-10: n/a
ISBN-13: n/a
Paperback: 155 pages
Views: 28,985
Document Type: Lecture Notes
Publisher: n/a
License: n/a
Post time: 16 Oct 2006 12:49:57
Document Excerpts:

These are the lecture notes for the Foundations of Computer Science course at the Computer Laboratory, University of Cambridge.

The principal aim of this course is to present the basic principles of programming. As the introductory course of the Computer Science, it caters to students from all backgrounds. To those who have had no programming experience, it will be comprehensible; to those experienced in languages such as C, it will attempt to correct any bad habits that they have learnt.

A further aim is to introduce the principles of data structures and algorithms. The course will emphasise the algorithmic side of programming, focusing on problem-solving rather than on hardware-level bits and bytes. Accordingly it will present basic algorithms for sorting, searching, etc., and discuss their efficiency using O-notation. Worked examples (such as polynomial arithmetic) will demonstrate how algorithmic ideas can be used to build efficient applications.

The course will use a functional language (ML). ML is particularly appropriate for inexperienced programmers, since a faulty program cannot crash. The course will present the elements of functional programming, such as curried and higher-order functions. But it will also discuss traditional (procedural) programming, such as assignments, arrays, pointers and mutable data structures.
 




About The Author(s)


Lawrence C. Paulson is Professor of Computational Logic in Computer Laboratory at the University of Cambridge. His research concerns automated theorem proving and its applications: development of Isabelle, with emphasis on automationMetiTarski, an automatic prover for the elementary functions; formalising mathematics, including Gödel's incompeteness theorems and constructible universe; and proving the correctness of security protocols;

Lawrence C Paulson

Lawrence C. Paulson is Professor of Computational Logic in Computer Laboratory at the University of Cambridge. His research concerns automated theorem proving and its applications: development of Isabelle, with emphasis on automationMetiTarski, an automatic prover for the elementary functions; formalising mathematics, including Gödel's incompeteness theorems and constructible universe; and proving the correctness of security protocols;


Book Categories
Sponsors
Icons8, a free icon pack