Welcome to my home page

An Orkut community for learning Computer Science
Computer Science Learning Resources
(Local Access) CS E-books archive
contact info: arvind_devaraj AT yahoo DOT com

I am working in compilers under Prof.Priti Shankar. My project is on Slicing Java program using Soot , which is a decompiler for Java. Demo Example content image

The courses I have taken
Compiler Design
Computer Architecture
Embedded Systems
Discrete Structures


Miracle - A mini Relational Database Management System

Design of Flash File System on Motorola Power PC

Design of compiler backend - producing x86 code from  intermediate C code

Java Bytecode Slicer demo &  report

Introduction to Signal Processing - A tutorial introduction 

Info on Higher Educaction 
posters illustrating concepts in computer science 

Learning Computer Science

These are the books I have in my collection( most of them as e-books ). Most of them are available online. If you cannot find them , mail me. These are lesser known materials. For standard references see online courses below. Those tagged with 'notes'/'online' can be found on the web ( details would be posted here )

Recommended books to start with


Data structures and Algorithms - Aho, Hopcroft, Ullman
The Design and Analysis of Computer Algorithms -  Aho, Hopcroft, Ullman
Algorithms - A creative approach - Udi Manber
Algorithms + Data Structures = Programs - Wirth
Programming Pearls - Bentley
Programming Interviews Exposed

Discrete Math

Elements of discrete structures - C.L.Liu
Discrete Mathematics - Rosen
How to solve it - Polya

Theory of Computation

Computers and Intractability - Garey and Johnson
Theory of Computation - M.Sipser

Operating System - Gary Nutt
Database system implementation - Garcia Molina
File Structures - Michael J. Folk
Networking - Larie L Peterson , Bruce Davie


Online Course Material

Many universities have put their material online


These are some good videos available online covering basics of computer science. For those in IISc , some of them are internally hosted (mail me to get the links).The following courses at these universities are recommended to start with. For actual links see

MIT ( SICP , Algorithms, Systems, Linear Algebra )
Aduni ( Algorithms, Discrete Math, How Computers Work , Web )
Operating Systems videos from RPI
compiler videos from MIT
programming language videos by Dan Grossman
architecture videos by Susan Eggers

U.Berkley also has some videos, though it can be only streamed and not downloaded

Some math related videos.
Dijkstra - Mathematical Excitements
Dijkstra - Power of counting Arguments
Real Analysis by R.Vittal Rao  - Many of the videos are good.  (like Tarjan's talk on data-structures, Rugina's talk on alias analysis, Whaley's talk on Binary Decision Diagrams)




1) Foundations of Computer Science (CSC-221 material)
2) Efficient Algorithms and Intractable Problems ( CS170 ) Luca Trevisan
3) Design and Analysis of Computer Algorithms (CMSC 451 ) David M. Mount
4) Algorithms and complexity - Herbert Wilf
5) Algorithms - Robert Sedgewick
6) Algorithm Design Manual - Skiena
7) Algorithms and Data Structures (IARCS course material)  Venkatesh Raman,IMSc
8) Algorithms + DataStructures = Programs - Wirth (only oberon version available online)
9) Ian Parberry's "Lecture notes on Algorithm Analysis and Computational Complexity"
10) Problems on Algorithms - Ian Parberry
11) Jeff Erickson's courses at UIUC - [suggested by Sumant]
12) [suggested by Debmalya]
13) Data Structures and Algorithms - Y.Narahari


  Computer Architecture


Other than the well known Hennessy Patterson, Hayes,  Hamacher
book - William Stallings - computer Architecture
notes - Computer Architecture: summaries notes the web from []
notes - Modern Microprocessors A 90 Minute Guide! by Jason Patterson
notes - Pipelining Review by Mark Smotherman
book - Processor Architecture - Chapter4 of Randall E.Byrant's book
paper- PC Processor Microarchitecture - A Concise Review of the Techniques Used in Modern PC Processors - Keith Diefendorff
book - Art of Assembly Chapter 4 - Basic CPU Design []
paper- The Micro-architecture of Superscalar Processors - Sohi
notes - COMP-620 Class Notes on Computer Architecture D.Salomon
paper - Compilation Techniques for Exploiting Instruction Level Parallelism, a Survey - Laura Pozzi
paper - Limits of Instruction Level Parallelism - D.Wall
book - Advanced Computer Architecture - A design space Approach - by Sima , Fountain, Kacsuk


book-  Computer Systems - A programmers perspective Randal E. Bryant / David R. O’Hallaron
book-  Elements of File Structures - Shashi K. Gadia
book - A short introduction to operating Systems - Mark Burgess
notes - Operating Systems study questions (CS-354)
book-  Understanding the Network - A Practical Guide to Internetworking - Michael J. Martin
paper-  Butler Lampson, Hints for computer system design
book - Jon Bentley, Writing Efficient Programs
book - Advanced Linux Programming - Mark Mitchell, Jeffrey Oldham, and Alex Samuel
book - The C Odyssey Unix - The open boundless C - Meeta Gandhi
book - PC Assembly Language - Paul A. Carter
book - The Art of Assembly - online

   Theory of Computation

Some notes from web
1) Ars Digita University Lecture Notes - Shai Simonson
2) Theory of Computation (CSCI 3434) - Karl Winklmann, Carolyn J. C. Schauble
3) Models of Computation ( COS 126)
4) Lecture notes from University of kentucky

Some papers
1)  Incomputability - C.A.R.Hoare and D.C.S.Allison , Computing Surveys 1972




             Computer Science Classics

Vannevar Bush's As We May Think

Butler Lampson's Hints for Computer System Design

D.L. Parnas, On the Criteria To Be Used in Decomposing Systems into Modules

Turing's On Computable Numbers, With an Application to the Entscheidungsproblem



             Math is Fun


Introduction to Probability ( Charles M. Grinstead / Laurie Snell)
Induction and Analogy in mathematics - Polya
Notes on Combinatorics - Polya, Tarjan,Woods
Applied Combinatorics - Tucker
What is mathematical logic - Crossley

The Mathematical Century - Odifreddi
Basic Concepts of Mathematics (Zakon)
Martin Gardener - Flatterland
Euler the master of us all
A Mathematical Bridge
The story of 'i' - An imaginary tale
100 greatest problems of elementary mathematics - Their history and solution (Dorrie)

Elementary Calculus: An Approach Using Infinitesimals
Introduction to Information Theory

notes: some beautiful proofs regarding a) infinitude of prime numbers b) Derangements c) Generating functions d) Sums of series
which were derived by Euler are presented in  [Euler the master of us all]. Irrationality of e , Group theoretic theorems like orbit stabilizer theorem are presented in an interesting manner is presented in [A Mathematical Bridge]. Logic, Turing Machines, Halting Problem is presented in [Crossley]. The first chapter is a must reading before you attempt to learn Theory of Computation. Flatterland gives more insight into dimensionality (like what happens if our world is two dimensional or four dimensional)


             Links to other Compilations

Computer Science Bibliographies

Lectures, Surveys, papers

Classic Texts

Reading List

Stanford CS Library


Nice Articles You and Your Research by R.W.Hamming
Technology and Courage by Ivan Sutherland

contact info Arvind Devaraj , M.Sc Engg student, Department of CSA e-mail: arvind_devaraj AT yahoo DOT com.

For more career information
Technorati Profile