June
21

Get info

Update: Welcome Stumblers & Reddit readers! Henk adds a great comment at the bottom and continues the discussion to a thoughtful post calledUniversity versus self-taughtover at his own site. Is he right? I have had great luck in that 2 of my 20 hires in the last 4 years were self-taught developers, nothing more than High School as a formal education. Their experience and ability to contribute to the project counts for more than where the education came from in my opinion.

I was looking up a computer science term on Wikipedia the other week and as is wont to happen, one thing led to another and I was about 5 or 6 articles deep on a trail of discovery and research to build up my knowledge.

As I realized I was randomizing myself and getting way off the original track, I decided to start assembling the links in one location for my own reference if not some other geek without the funds for their own degree.

Yes, there’s much more that I don’t have below, I wound up throttling back quite a bit after a while to leave it as is…for now.

History:

Extra Credit:

Languages:

Computer Science Fields:

General CS articles:

Mathematical foundations

Mathematical logic
Boolean logic and other ways of modeling logical queries; the uses and limitations of formal proof methods.
Number theory
Theory of proofs and heuristics for finding proofs in the simple domain of integers. Used in cryptography as well as a test domain in artificial intelligence.
Graph theory
Foundations for data structures and searching algorithms.
Type theory
Formal analysis of the types of data, and the use of these types to understand properties of programs, especially program safety.
Category theory
Category theory provides a means of capturing all of math and computation in a single synthesis.
Computational geometry
The study of algorithms to solve problems stated in terms of geometry.
Numerical analysis
Foundations for algorithms in discrete mathematics, as well as the study of the limitations of floating point computation, including round-off errors.

Theory of Computation:

Theory of computation

Automata theory
Different logical structures for solving problems.
Computability theory
What is calculable with the current models of computers. Proofs developed by Alan Turing and others provide insight into the possibilities of what can be computed and what cannot.
Computational complexity theory
Fundamental bounds (especially time and storage space) on classes of computations.
Quantum computing theory
Representation and manipulation of data using the quantum properties of particles and quantum mechanism.

Algorithms and data structures

Analysis of algorithms
Time and space complexity of algorithms.
Algorithms
Formal logical processes used for computation, and the efficiency of these processes.
Data structures
The organization of and rules for the manipulation of data.

Programming languages and compilers

Compilers
Ways of translating computer programs, usually from higher level languages to lower level ones.
Interpreters
A program that takes in as input a computer program and executes it.
Programming languages
Formal language paradigms for expressing algorithms, and the properties of these languages (e.g., what problems they are suited to solve).

Concurrent, parallel, and distributed systems:

Concurrency
The theory and practice of simultaneous computation; data safety in any multitasking or multithreaded environment.
Distributed computing
Computing using multiple computing devices over a network to accomplish a common objective or task and thereby reducing the latency involved in single processor contributions for any task.
Parallel computing
Computing using multiple concurrent threads of execution.

Software engineering:

Algorithm design
Using ideas from algorithm theory to creatively design solutions to real tasks
Computer programming
The practice of using a programming language to implement algorithms
Formal methods
Mathematical approaches for describing and reasoning about software designs.
Reverse engineering
The application of the scientific method to the understanding of arbitrary existing software
Software development
The principles and practice of designing, developing, and testing programs, as well as proper engineering practices.

System architecture:

Computer architecture
The design, organization, optimization and verification of a computer system, mostly about CPUs and memory subsystems (and the bus connecting them).
Computer organization
The implementation of computer architectures, in terms of descriptions of their specific electrical circuitry
Operating systems
Systems for managing computer programs and providing the basis of a useable system.

Communications:

Computer audio
Algorithms and data structures for the creation, manipulation, storage, and transmission of digital audio recordings. Also important in voice recognition applications.
Networking
Algorithms and protocols for communicating data across different shared or dedicated media, often including error correction.
Cryptography
Applies results from complexity, probability and number theory to invent and break codes.

Databases:

Data mining
Data mining is the extraction of relevant data from all sources of data.
Relational databases
Study of algorithms for searching and processing information in documents and databases; closely related to information retrieval.
OLAP
Online Analytical Processing, or OLAP, is an approach to quickly provide answers to analytical queries that are multi-dimensional in nature. OLAP is part of the broader category business intelligence, which also encompasses relational reporting and data mining.

Artificial intelligence:

Artificial intelligence
The implementation and study of systems that exhibit an autonomous intelligence or behaviour of their own.
Artificial life
The study of digital organisms to learn about biological systems and evolution.
Automated reasoning
Solving engines, such as used in Prolog, which produce steps to a result given a query on a fact and rule database.
Computer vision
Algorithms for identifying three dimensional objects from one or more two dimensional pictures.
Machine learning
Automated creation of a set of rules and axioms based on input.
Natural language processing/Computational linguistics
Automated understanding and generation of human language
Robotics
Algorithms for controlling the behavior of robots.

Visual rendering (or Computer graphics):

Computer graphics
Algorithms both for generating visual images synthetically, and for integrating or altering visual and spatial information sampled from the real world.
Image processing
Determining information from an image through computation.

Human-Computer Interaction:

Human computer interaction
The study of making computers and computations useful, usable and universally accessible to people, including the study and design of computer interfaces through which people use computers.

Scientific computing:

Bioinformatics
The use of computer science to maintain, analyse, and store biological data, and to assist in solving biological problems such as protein folding, function prediction and phylogeny.
Cognitive Science
Computational modelling of real minds
Computational chemistry
Computational modelling of theoretical chemistry in order to determine chemical structures and properties
Computational neuroscience
Computational modelling of real brains
Computational physics
Numerical simulations of large non-analytic systems
Numerical algorithms
Algorithms for the numerical solution of mathematical problems such as root-finding, integration, the solution of ordinary differential equations and the approximation/evaluation of special functions.
Symbolic mathematics
Manipulation and solution of expressions in symbolic form, also known as Computer algebra.

109
June
17

Microsoft cool

Is this the counter-attack to the Mac vs. PC adverts, to make Microsoft cool again? (”PC is #2!”), I love it.

0
June
13

The Humans Behind the Google Money Machine

Posted In: Software by Andy at 12:28 am

Money

NY Times has an interesting peek at the people behind the scenes of the data flow that shows the near live results of the ad placements and hence the money flow.

MOUNTAIN VIEW, Calif. — If Google were the United States government, the data that streams onto Nicholas Fox’s laptop every day would be classified as top secret.

Mr. Fox is among a small group of Google employees who keep a watchful eye on the vital signs of one of the most successful and profitable businesses on the Internet. The number of searches and clicks, the rate at which users click on ads, the revenue this generates — everything is tracked hour by hour, compared with the data from a week earlier and charted.

Link to NY Times

0
June
10

Hotdog Stand

From Coding Horror:

The truly funny thing about this color scheme is that all the other Windows 3.1 color schemes are surprisingly rational, totally reasonable color schemes. And then you get to “Hot Dog Stand”. Which is utterly insane.

0
June
6

As an alternative to AJAX, Microsoft is pushing a different scenario, known as Asynchronous Ruby and XML, or ARAX. Confused yet?

1