Science and Engineering: Innovation, Research, Education and Economics


Curious Cat Science and Egineering blog full tag cloud


January 4, 2009

Rumors of Software Engineering’s Death are Greatly Exaggerated

Rumors of Software Engineering’s Death are Greatly Exaggerated by Steve McConnell

Indeed, one of the hallmarks of engineering as opposed to science is that engineers will work with materials whose properties are not entirely understood, and they’ll factor in safety margins until the science comes along later and allows more precision in the engineer’s use of those materials.

Software engineering already has been defined as engineering, we have an international reference standard for that definition, the field’s two largest professional bodies have jointly adopted a professional code of conduct for software engineers, we have accreditation standards for university programs in software engineering, we have university numerous programs that have already been accredited, and several countries are licensing professional engineers in software.

Related: Who Killed the Software Engineer? - Is Computer Science a Science? - What Ails India’s Software Engineers? - Federal Circuit Decides Software No Longer Patentable - A Career in Computer Programming

December 11, 2008

How We Found the Missing Memristor

How We Found the Missing Memristor By R. Stanley Williams

For nearly 150 years, the known fundamental passive circuit elements were limited to the capacitor (discovered in 1745), the resistor (1827), and the inductor (1831). Then, in a brilliant but underappreciated 1971 paper, Leon Chua, a professor of electrical engineering at the University of California, Berkeley, predicted the existence of a fourth fundamental device, which he called a memristor. He proved that memristor behavior could not be duplicated by any circuit built using only the other three elements, which is why the memristor is truly fundamental.

the memristor’s potential goes far beyond instant-on computers to embrace one of the grandest technology challenges: mimicking the functions of a brain. Within a decade, memristors could let us emulate, instead of merely simulate, networks of neurons and synapses. Many research groups have been working toward a brain in silico: IBM’s Blue Brain project, Howard Hughes Medical Institute’s Janelia Farm, and Harvard’s Center for Brain Science are just three. However, even a mouse brain simulation in real time involves solving an astronomical number of coupled partial differential equations. A digital computer capable of coping with this staggering workload would need to be the size of a small city, and powering it would require several dedicated nuclear power plants.

Related: Demystifying the Memristor - Understanding Computers and the Internet - 10 Science Facts You Should Know

December 8, 2008

The Chip That Designs Itself

The chip that designs itself by Clive Davidson , 1998

Adrian Thompson, who works at the university’s Centre for Computational Neuroscience and Robotics, came up with the idea of self-designing circuits while thinking about building neural network chips. A graduate in microelectronics, he joined the centre four years ago to pursue a PhD in neural networks and robotics.

To get the experiment started, he created an initial population of 50 random circuit designs coded as binary strings. The genetic algorithm, running on a standard PC, downloaded each design to the Field Programmable Gate Arrays (FPGA) and tested it with the two tones generated by the PC’s sound card. At first there was almost no evidence of any ability to discriminate between the two tones, so the genetic algorithm simply selected circuits which did not appear to behave entirely randomly. The fittest circuit in the first generation was one that output a steady five-volt signal no matter which tone it heard.

By generation 220 there was some sign of improvement. The fittest circuit could produce an output that mimicked the input - wave forms that corresponded to the 1KHz or 10KHz tones - but not a steady zero or five-volt output.

By generation 650, some evolved circuits gave a steady output to one tone but not the other. It took almost another 1,000 generations to find circuits that could give approximately the right output and another 1,000 to get accurate results. However, there were still some glitches in the results and it took until generation 4,100 for these to disappear. The genetic algorithm was allowed to run for a further 1,000 generations but there were no further changes.

See Adrian Thompson’s home page (Department of Informatics, University of Sussex) for more on evolutionary electronics. Such as Scrubbing away transients and Jiggling around the permanent: Long survival of FPGA systems through evolutionary self-repair:

Mission operation is never interrupted. The repair circuitry is sufficiently small that a pair could mutually repair each other. A minimal evolutionary algorithm is used during permanent fault self-repair. Reliability analysis of the studied case shows the system has a 0.99 probability of surviving 17 times the mean time to local permanent fault arrival. Such a system would be 0.99 probable to survive 100 years with one fault every 6 years.

Very cool.

Related: Evolutionary Design - Invention Machine - Evo-Devo

December 2, 2008

How Large Quantities of Information Change Everything

Scale: How Large Quantities of Information Change Everything

There’s another important downside to scale. When we look at large quantities of information, what we’re really doing is searching for patterns. And being the kind of creatures that we are, and given the nature of the laws of probability, we are going to find patterns. Distinguishing between a real legitimate pattern, and something random that just happens to look like a pattern can be somewhere between difficult and impossible. Using things like Bayesian methods to screen out the false positives can help, but scale means that scientists need to learn new methods - both the new ways of doing things that they couldn’t do before, and the new ways of recognizing when they’ve screwed up.

There’s the nature of scale. Tasks that were once simple have become hard or even impossible, because they can’t be done at scale. Tasks that were once impossible have become easy because scale makes them possible. Scale changes everything.

I discussed related ideas on my Curious Cat Management Improvement blog recently: Does the Data Deluge Make the Scientific Method Obsolete?

Related: Seeing Patterns Where None Exists - Mistakes in Experimental Design and Interpretation - Optical Illusions and Other Tricks on the Brain - Data Based Decision Making at Google

December 1, 2008

von Neumann Architecture and Bottleneck

We each use computers a great deal (like to write this blog and read this blog) but often have little understanding of how a computer actually works. This post gives some details on the inner workings of your computer.
What Your Computer Does While You Wait

People refer to the bottleneck between CPU and memory as the von Neumann bottleneck. Now, the front side bus bandwidth, ~10GB/s, actually looks decent. At that rate, you could read all of 8GB of system memory in less than one second or read 100 bytes in 10ns. Sadly this throughput is a theoretical maximum (unlike most others in the diagram) and cannot be achieved due to delays in the main RAM circuitry.

Sadly the southbridge hosts some truly sluggish performers, for even main memory is blazing fast compared to hard drives. Keeping with the office analogy, waiting for a hard drive seek is like leaving the building to roam the earth for one year and three months. This is why so many workloads are dominated by disk I/O and why database performance can drive off a cliff once the in-memory buffers are exhausted. It is also why plentiful RAM (for buffering) and fast hard drives are so important for overall system performance.

Related: Free Harvard Online Course (MP3s) Understanding Computers and the Internet - How Computers Boot Up - The von Neumann Architecture of Computer Systems - Five Scientists Who Made the Modern World (including John von Neumann)

November 23, 2008

Demystifying the Memristor

Demystifying the memristor

The memristor — short for memory resistor - could make it possible to develop far more energy-efficient computing systems with memories that retain information even after the power is off, so there’s no wait for the system to boot up after turning the computer on. It may even be possible to create systems with some of the pattern-matching abilities of the human brain.

By providing a mathematical model for the physics of a memristor, the team makes possible for engineers to develop integrated circuit designs that take advantage of its ability to retain information.

“This opens up a whole new door in thinking about how chips could be designed and operated,” Williams says.

Engineers could, for example, develop a new kind of computer memory that would supplement and eventually replace today’s commonly used dynamic random access memory (D-RAM). Computers using conventional D-RAM lack the ability to retain information once they are turned off. When power is restored to a D-RAM-based computer, a slow, energy-consuming “boot-up” process is necessary to retrieve data stored on a magnetic disk required to run the system.

Related: How Computers Boot Up - Nanotechnology Breakthroughs for Computer Chips - Delaying the Flow of Light on a Silicon Chip - Self-assembling Nanotechnology in Chip Manufacturing

November 17, 2008

New Supercomputer for Science Research

photo of Jaguar Supercomputer

“Jaguar is one of science’s newest and most formidable tools for advancement in science and engineering,” said Dr. Raymond L. Orbach, DOE.s Under Secretary for Science. The new capability will be added to resources available to science and engineering researchers in the USA.

80 percent of the Leadership Computing Facility resources are allocated through the United States Department of Energy’s Innovative and Novel Computational Impact on Theory and Experiment (INCITE) program, a competitively selected, peer reviewed process open to researchers from universities, industry, government and non-profit organizations. Scientists and engineers at DOE’s Oak Ridge National Laboratory are finding an increasing variety of uses for the Cray XT system. A recent report identified 10 breakthroughs in U.S. computational science during the past year. Six of the breakthroughs involved research conducted with the Jaguar supercomputer, including a first-of-its-kind simulation of combustion processes that will be used to design more efficient automobile engines. Read the computational science report. Read full press release.

ORNL’s Jaguar fastest computer for science research

Jaguar will be used for studies of global climate change, as well as development of alternative energy sources and other types of scientific problem-solving that previously could not be attempted.

Zacharia said ORNL’s Jaguar was upgraded by adding 200 Cray XT5 cabinets - loaded with AMD quadcore processors and Cray SeaStar interconnects - to the computer’s existing 84 Cray XT4 cabinets. The combined machine resulted in the new standard for computational science.

The peak operating speed is apparently just below that of Los Alamos National Laboratory’s IBM Roadrunner system, which is designed for 1.7 petaflops. But the Jaguar reportedly has triple the memory of Roadrunner and much broader research potential.

Because the Jaguar has come online sooner than expected, Zacharia said an alert was sent to top U.S. scientists inviting them to apply for early access to the Oak Ridge computer. Their scientific proposals will be reviewed on an accelerated timetable, he said.

The peak capability of 1.64 petaflops is attributed to 1.384 petaflops from the new Cray XT5, combined with 0.266 petaflops from the existing Cray XT4 system, Zacharia said.

How fast is a quadrillion calculations per second? “One way to understand the speed is by analogy,” Zacharia said recently. “It would take the entire population of the Earth (more than 6 billion people), each of us working a handheld calculator at the rate of one second per calculation, more than 460 years to do what Jaguar at a quadrillion can do in one day.”

Related: National Center for Computational Sciences at ORNL site on Jaguar (photo from here) - Open Science Computer Grid - Donald Knuth, Computer Scientist - Saving Fermilab - New Approach Builds Better Proteins Inside a Computer - Does the Data Deluge Make the Scientific Method Obsolete?

November 11, 2008

Federal Circuit Decides Software No Longer Patentable

The Bilski Decision Is In: Buh-Bye [Most] Business Methods Patents

This was an appeal against a rejection of a business methods patent, and the appeals court has now agreed with the rejection. At issue was whether an abstract idea could be eligible for patent protection. The court says no.

Buh-bye business methods patents!

Court Reverses Position on Biz Methods Patents

The ruling in the case, called In re Bilski, largely disavowed the controversial State Street Bank case of 1998. There, the Federal Circuit opened the door to business method patents, which had until then been excluded from patent protection, by granting protection to a system for managing mutual fund accounts. The decision, according to its detractors — which included several members of the Supreme Court — had led to the issuance of weak patents and exposed financial services companies to high-dollar litigation over business method patents.

Related: Ex Parte Bilski: On the Briefs - Patent Policy Harming USA, and the world - Are Software Patents Evil? - Patent Gridlock is Blocking Developing Lifesaving Drugs - The Pending Problem With Patents - More Evidence of the Bad Patent System

October 17, 2008

Problems Programming Math

Arithmetic Is Hard - To Get Right by Mark Sofroniou

I’ve been working on arithmetic in Mathematica for more than 12 years. You might think that’s silly; after all, how hard can arithmetic be?

The standard “schoolbook” algorithms are pretty easy. But they’re inefficient and often unnecessarily inaccurate. So people like me have done a huge amount of work to find algorithms that are more efficient and accurate. And the problem is that these algorithms are inevitably more complicated, and one has to be very careful to avoid insidious bugs.

Take multiplying integers, for example. The standard “schoolbook” long-multiplication algorithm uses n^2 multiplications to multiply two n-digit numbers. But many of these multiplications are actually redundant, and we now know clever algorithms that take n^1.58, n log n, or even fewer multiplications for large n. So this means that if one wants to do a million-digit multiplication, Mathematica can do it in a fraction of a second using these algorithms–while it would take at least a few minutes using standard long multiplication.

It’s not easy to get reliable numerical computation, and it’s not something one can “bolt on” after the fact. It’s something one has to build in from the beginning, as we’ve done in Mathematica for nearly 20 years.

Related: Who Killed the Software Engineer? - Sexy Math - Freeware Math Programs - 1=2: A Proof - Things You Need to be a Computer Game Programmer

September 2, 2008

Algorithmic Self-Assembly

Paul Rothemund, scientist at Cal Tech, provides a interesting look at DNA folding and DNA based algorithmic self-assembly. In the talk he shows the promise ahead for using biological building blocks using DNA origami — to create tiny machines that assemble themselves from a set of instructions.

Algorithmic Self-Assembly of DNA Sierpinski Triangles, PLoS paper.

I posted a few months ago about how you can participate in the protein folding, with the Protein Folding Game.

Related: Viruses and What is Life - DNA Seen Through the Eyes of a Coder - Synthesizing a Genome from Scratch - Evidence of Short DNA Segment Self Assembly - Scientists discover new class of RNA

August 31, 2008

Autonomous Helicopters Teach Themselves to Fly

photo of Stanford Autonomous Learning Helicopters

Stanford’s “autonomous” helicopters teach themselves to fly

Stanford computer scientists have developed an artificial intelligence system that enables robotic helicopters to teach themselves to fly difficult stunts by watching other helicopters perform the same maneuvers.

The dazzling airshow is an important demonstration of “apprenticeship learning,” in which robots learn by observing an expert, rather than by having software engineers peck away at their keyboards in an attempt to write instructions from scratch.

It might seem that an autonomous helicopter could fly stunts by simply replaying the exact finger movements of an expert pilot using the joy sticks on the helicopter’s remote controller. That approach, however, is doomed to failure because of uncontrollable variables such as gusting winds.

Very cool. Related: MIT’s Autonomous Cooperating Flying Vehicles - The sub-$1,000 UAV Project - 6 Inch Bat Plane - Kayak Robots

June 24, 2008

The Technology Job Market is Strong

Technology: It’s Where the Jobs Are by Arik Hesseldahl, Business Week:

Here’s a hint for high school graduates or college students still majoring in indecision: Put down that guitar or book of poetry and pick up a laptop. Study computer science or engineering

Seattle added a net 7,800 jobs [in 2006], followed by the New York and Washington (D.C.) metro areas, which added more than 6,000 jobs apiece. The fastest-growing area on a percentage basis was the combined metro area of Riverside-San Bernardino, Calif., which saw its tech-employment figures grow by 12%.

The highest concentration of technology workers - 286 for every 1,000 workers - was in, no surprise, Silicon Valley. Boulder, Colo., came in second, with 230, and Huntsville, Ala.; Durham, N.C.; and Washington rounded out the top five in density.

Now for the answer to the question on everyone’s mind: Where are the highest salaries? That would be Silicon Valley, where the average tech worker is paid $144,000 a year. That’s nearly double the $80,000 national average for tech jobs.

More than 850,000 IT jobs will be added during the 10-year period ending in 2016, which would be a rise of 24%. Add all the jobs that will replace retiring workers, and the total increase could be a tidy 1.6 million. That means one job in every 19 created over the course of the next decade will be in technology.

And while demand for tech-savvy employees is certainly multiplying, another survey, this one from the Computing Research Assn. and released in March, found a 20% drop in the number of students completing degrees in computer-related fields, and the number of students enrolling in these programs is the lowest it’s been in 10 years, as far back as the data go.

Related: Engineering Graduates Again in Great Shape - What Graduates Should Know About an IT Career - IT Employment Hits New High Again - The IT Job Market - posts on technology, science and engineering careers

June 11, 2008

How Computers Boot Up

How Computers Boot Up

Things start rolling when you press the power button on the computer (no! do tell!). Once the motherboard is powered up it initializes its own firmware - the chipset and other tidbits - and tries to get the CPU running. If things fail at this point (e.g., the CPU is busted or missing) then you will likely have a system that looks completely dead except for rotating fans. A few motherboards manage to emit beeps for an absent or faulty CPU, but the zombie-with-fans state is the most common scenario based on my experience. Sometimes USB or other devices can cause this to happen: unplugging all non-essential devices is a possible cure for a system that was working and suddenly appears dead like this. You can then single out the culprit device by elimination.

If all is well the CPU starts running. In a multi-processor or multi-core system one CPU is dynamically chosen to be the bootstrap processor (BSP) that runs all of the BIOS and kernel initialization code. The remaining processors, called application processors (AP) at this point, remain halted until later on when they are explicitly activated by the kernel. Intel CPUs have been evolving over the years but they’re fully backwards compatible, so modern CPUs can behave like the original 1978 Intel 8086, which is exactly what they do after power up. In this primitive power up state the processor is in real mode with memory paging disabled. This is like ancient MS-DOS where only 1 MB of memory can be addressed and any code can write to any place in memory - there’s no notion of protection or privilege.

Related: Harvard Course on Understanding Computers and the Internet - Programming Ruby - Babbage Difference Engine In Lego

May 9, 2008

Engineering Graduates Again in Great Shape

Once again engineering and computer science graduates are receiving the highest starting salaries. Previous posts: Lucrative college degrees (2006) - starting salaries for engineers (2005) - High Pay for Engineering Graduates 2007.

According to a survey, these are the top-paying majors for 2007-08 bachelor degree graduates:
$63,616 — Chemical engineering (up 6.5%)
$59,962 — Computer engineering
$59,873 — Computer science (up 14.7%)
$58,252 — Industrial/manufacturing engineering
$57,821 — Mechanical engineering (up 5.7%)
$57,999 — Aerospace/aeronautical/astronautical engineering

Source: Spring Survey, National Association of Colleges and Employers

Engineering Jobs Top U.S. Skills Shortage List

Engineering positions are the most difficult jobs to fill for U.S. employers, according to Manpower Inc.’s 2008 Talent Shortage Survey released April 24. Of 2,000 U.S. firms responding, 22% said they had difficulty filling positions, ranking engineers, machinists/machine operators and skilled manual trades as the top three toughest positions to fill, respectively

Grads’ job prospects weakening by degrees

In one year, the former hydraulic repairman will have a bachelor’s degree in mechanical engineering from Purdue University Calumet. And, as far as he can tell, he can write his own ticket.

“I’m finding jobs pulling at me left and right,” he said last week at a manufacturing industry job fair at the college. “The professors told us there’s such a demand, if you go to a job fair, you can walk out with a job.”

Vela, 35, happens to be in a field where demand remains strong, despite the uneven economy. Overall starting wages for mechanical engineering grads will be up 3.4 percent this year, with an average salary offer of $56,429, according to the National Association of Colleges and Employers. For many other college grads looking for a job at this time of year, the prospects are not as sweet.

Related: Career Center report high increase in demand for computer science graduates - IT Employment Hits New High Again - S&P 500 CEOs - Again Engineering Graduates Lead

Starting salaries: What the future holds (UK)
(more…)

April 26, 2008

Interview with Donald Knuth

Interview with Donald Knuth by Andrew Binstock, April 2008:

I currently use Ubuntu Linux, on a standalone laptop—it has no Internet connection. I occasionally carry flash memory drives between this machine and the Macs that I use for network surfing and graphics; but I trust my family jewels only to Linux. Incidentally, with Linux I much prefer the keyboard focus that I can get with classic FVWM to the GNOME and KDE environments that other people seem to like better. To each his own.

I’m basically advising young people to listen to themselves rather than to others, and I’m one of the others. Almost every biography of every person whom you would like to emulate will say that he or she did many things against the “conventional wisdom” of the day.

Still, I hate to duck your questions even though I also hate to offend other people’s sensibilities - given that software methodology has always been akin to religion. With the caveat that there’s no reason anybody should care about the opinions of a computer scientist/mathematician like me regarding software development, let me just say that almost everything I’ve ever heard associated with the term “extreme programming” sounds like exactly the wrong way to go…with one exception. The exception is the idea of working in teams and reading each other’s code. That idea is crucial, and it might even mask out all the terrible aspects of extreme programming that alarm me.

I also must confess to a strong bias against the fashion for reusable code. To me, “re-editable code” is much, much better than an untouchable black box or toolkit. I could go on and on about this. If you’re totally convinced that reusable code is wonderful, I probably won’t be able to sway you anyway, but you’ll never convince me that reusable code isn’t mostly a menace.

Related: Donald Knuth - Computer Scientist - Programmers at Work - Preparing Computer Science Students for Jobs - Teach Yourself Programming in Ten Years - Curious Cat Ubuntu posts

April 16, 2008

Is Computer Science a Science?

Is computer science a science?

Most people seem to apply a certain litmus test of sorts to determine if something is a science. Something is a science if

(1) it uses the scientific method (i.e., empirical research and observation)
(2) it involves studying “fundamental principles” of the natural or physical world

(1) is, I think, a bit easier to address. I use the scientific method all the time in my work: I form hypotheses about how a particular system or algorithm should behave, develop experiments to test the hypothesis, gather data, analyze, etc. Several commenters to the first post in the series discuss the same thing. Joe, for instance, says this about his work: “One of the things I’ve noticed as a developer/engineer for the last 20 years is that I use the techniques of science all the time, only I’m not studying “nature” (be it the physics world, chemicals, biology, or people). I’m applying the disciplines and the scientific process to stuff that other people have done.” (I’ll get back to this point in a minute.)

Related: Computer Science as Science - Computer Science PhD Overview - Who Killed the Software Engineer? - Electrical Engineering vs. Computer Science :-)

Curious Cat Science and Engineering Blog © curiouscat.com 2005-2008 powered by WordPress
USA High School Alumni

Internal Links

Categories

Author

 

John Hunter

Other

Search Blog

Web Search

Science and Engineering web search

Recent Comments

  • Rich Hoeg: I couldn’t agree more with this post … please support education throughout the world...
  • aroel: cool man! eventhough it can be used in wifi area
  • Anonymous: Computer definitely helps a lot and about rural or remote areas, i say that it should be there...
  • GeoGeorge: How can you prove that? I have always visulized the core chuning like two hot balls. I have no...
  • Anonymous: Thanks to the poor US policies influenced by rich lobbyists of the oil giants, America is way...
  • martin: agree with you ted, these days even even UML and designer call enginer . for example CSS author is...
  • Anonymous: Although on a more selfish note it did increase the price of the land in Northern Suffolk...
  • Melbel: Yeah, with some blogs, especially one of mine, it’s handy for viewers to have something like...

Archives

January 2009
M T W T F S S
« Dec    
 1234
567891011
12131415161718
19202122232425
262728293031  

Translate to

Translate to German Translate to Japanese Translate to Chinese Translate to South Korean Translate to Spanish Translate to French

Post Spotlight