Originally algorithms were designed to process a single item at a time in sequential order. However, modern computer hardware is able to process multiple pieces of data at the same time in parallel. This leads to Parallel and Distributed Computing algorithms for solving more complex problems efficiently. I came across an interesting webpage which gives an Introduction to Parallel & Distributed Algorithms.
Online games can create a ton of complex data. But it can be a gold mine for design ideas, at least according to the article over at newscientist.com. In this article they talk about data mining online gaming data, with hopes of reaping the rewards of new ideas based on user behavior. The researchers are even using computer controlled bots that learn from the data mined from human behavior in game replays. This can make for much smarter artificial intelligence. In order to conduct their research they are using machine learning algorithms to uncover complex patterns. Check out the article for the full story.
First, we should start off by explaining what a Turing Machine is. A Turing Machine is a theoretical machine that manipulates symbols on a tape. This machine is simple but easily adaptable. It is able to simulate the logic of any algorithm and is especially useful at explaining how a CPU functions. The machine is named after Alan Turing, who was one of the most significant computer scientists and mathematicians of the early to mid 1900’s. He developed this device as a thought experiment with the purpose of representing a computing machine. It wasn’t meant to be an actual, practical computing device.
As a relative newcomer to a Computer Science M.Sc. program I have trying to do a lot of reading and understanding outside of the assigned coursework and information from the university. It seems to be difficult at times to understand and digest some of the information out there. Much of it is really complex and I have found that I need to build a better foundational understanding in certain areas of Computer Science before reading some of the more prominent research papers (and other information).
GNU Grep has been around for decades. This is a common *nix tool for searching named input files for lines containing a match to a given pattern. The original author, Mike Haertel, has a post on the FreeBSD mailing list describing why its so far compared to the BSD implementation of Grep. There are a couple of tricks that GNU Grep performs, namely the use of the well known Boyer-Moore algorithm. This algorithm looks for the last letter of a target string and then uses a lookup table to see how far ahead it can skip in the input when it finds a non-matching character. In addition, GNU Grep avoids breaking the input into lines, which would slow grep down because it has to look for every byte. There are more details on why GNU Grep is so fast; check out the links and other resources below.
Welcome to the new Shwuzzle.com! The primary focus for Shwuzzle will be to discuss, share, research, and learn more about topics of and relating to Computer Science. I will be continually in the process of updating the website with interesting information and content that I find from external resources and from content that I produce in my free time and academia. For more information on what Shwuzzle is all about, check out the about page. Feel free to share any interesting ideas, content, projects, resources, etc. via firstname.lastname@example.org!
“Lyric Semiconductor has unveiled a new type of chip that uses probability inputs and outputs instead of the conventional 1’s and 0’s used in logic chips today. Crunching probabilities is much more applicable to many computing task performed today rather than binary logic…”
“Computer science (CS) spans the range from theory through programming to cutting-edge development of computing solutions. Computer science offers a foundation that permits graduates to adapt to new technologies and new ideas. The work of computer scientists falls into three categories: a) designing and building software; b) developing effective ways to solve computing problems, such as storing information in databases, sending data over networks or providing new approaches to security problems; and c) devising new and better ways of using computers and addressing particular challenges in areas such as robotics, computer vision, or digital forensics (although these specializations are not available in all computer science programs). Most computer science programs require some mathematical background…”