I’m kind of quiet this week, but here is a cartoon or two:
Building a six plus node analog computer cluster. An analog computer is a device that measures some value.
Good old fashioned office.
4.Central Processing Unit (CPU)
5.Arithmetic and Logic Unit (ALU)
6.Control UnitThe internal architectural design of computers differs from one system model to another. However, the basic organization remains the same for all computer systems. The following five units (also called “The functional units”) correspond to the five basic operations performed by all computer systems.1. Input UnitData and instructions must enter the computer system before any computation can be performed on the supplied data. The input unit that links the external environment with the computer system performs this task. Data and instructions enter input units in forms that depend upon the particular device used. For example, data is entered from a keyboard in a manner similar to typing, and this differs from the way in which data is entered through a mouse, which is another type of input device. However, regardless of the form in which they receive their inputs, all input devices must provide a computer with data that are transformed into the binary codes that the primary memory of the computer is designed to accept. This transformation is accomplished by units that called input interfaces. Input interfaces are designed to match the unique physical or electrical characteristics of input devices to the requirements of the computer system.In short, an input unit performs the following functions.
It accepts (or reads) the list of instructions and data from the outside world.
It converts these instructions and data in computer acceptable format.
It supplies the converted instructions and data to the computer system for further processing.2. Output UnitThe job of an output unit is just the reverse of that of an input unit. It supplied information and results of computation to the outside world. Thus it links the computer with the external environment. As computers work with binary code, the results produced are also in the binary form. Hence, before supplying the results to the outside world, it must be converted to human acceptable (readable) form. This task is accomplished by units called output interfaces.In short, the following functions are performed by an output unit.
It accepts the results produced by the computer which are in coded form and hence cannot be easily understood by us.
It converts these coded results to human acceptable (readable) form.
It supplied the converted results to the outside world.3. Storage Unit (Memory and off-line storage memory).The data and instructions that are entered into the computer system through input units have to be stored inside the computer before the actual processing starts. Similarly, the results produced by the computer after processing must also be kept somewhere inside the computer system before being passed on to the output units. Moreover, the intermediate results produced by the computer must also be preserved for ongoing processing. The Storage Unit or the primary main storage of a computer system is designed to do all these things. It provides space for storing data and instructions, space for intermediate results and also space for the final results.In short, the specific functions of the storage unit are to store:
All the data to be processed and the instruction required for processing (received from input devices).
Intermediate results of processing.
Final results of processing before these results are released to an output device.4. Central Processing Unit (CPU)
The main unit inside the computer is the CPU. This unit is responsible for all events inside the computer. It controls all internal and external devices, performs “Arithmetic and Logical operations”. The operations a Microprocessor performs are called “instruction set” of this processor. The instruction set is “hard wired” in the CPU and determines the machine language for the CPU. The more complicated the instruction set is, the slower the CPU works. Processors differed from one another by the instruction set. If the same program can run on two different computer brands they are said to be compatible. Programs written for IBM compatible computers will not run on Apple computers because these two architectures are not compatible.The control Unit and the Arithmetic and Logic unit of a computer system are jointly known as the Central Processing Unit (CPU). The CPU is the brain of any computer system. In a human body, all major decisions are taken by the brain and the other parts of the body function as directed by the brain. Similarly, in a computer system, all major calculations and comparisons are made inside the CPU and the CPU is also responsible for activating and controlling the operations of other units of a computer system.4. Arithmetic and Logic Unit (ALU)
The arithmetic and logic unit (ALU) of a computer system is the place where the actual execution of the instructions take place during the processing operations. All calculations are performed and all comparisons (decisions) are made in the ALU. The data and instructions, stored in the primary storage prior to processing are transferred as and when needed to the ALU where processing takes place. No processing is done in the primary storage unit. Intermediate results generated in the ALU are temporarily transferred back to the primary storage until needed at a later time. Data may thus move from primary storage to ALU and back again as storage many times before the processing is over. After the completion of processing, the final results which are stored in the storage unit are released to an output device.
The arithmetic and logic unit (ALU) is the part where actual computations take place. It consists of circuits that perform arithmetic operations (e.g. addition, subtraction, multiplication, division over data received from memory and capable to compare numbers (less than, equal to, or greater than).
While performing these operations the ALU takes data from the temporary storage are inside the CPU named registers. Registers are a group of cells used for memory addressing, data manipulation and processing. Some of the registers are general purpose and some are reserved for certain functions. It is a high-speed memory which holds only data from immediate processing and results of this processing. If these results are not needed for the next instruction, they are sent back to the main memory and registers are occupied by the new data used in the next instruction.
All activities in the computer system are composed of thousands of individual steps. These steps should follow in some order in fixed intervals of time. These intervals are generated by the Clock Unit. Every operation within the CPU takes place at the clock pulse. No operation, regardless of how simple, can be performed in less time than transpires between ticks of this clock. But some operations required more than one clock pulse. The faster the clock runs, the faster the computer performs. The clock rate is measured in megahertz (Mhz) or Gigahertz (Ghz). Larger systems are even faster. In older systems the clock unit is external to the microprocessor and resides on a separate chip. In most modern microprocessors the clock is usually incorporated within the CPU.
6. Control Unit
How the input device knows that it is time for it to feed data into the storage unit? How does the ALU know what should be done with the data once it is received? And how is it that only the final results are sent to the output devices and not the intermediate results? All this is possible because of the control unit of the computer system. By selecting, interpreting, and seeing to the execution of the program instructions, the control unit is able to maintain order and directs the operation of the entire system. Although, it does not perform any actual processing on the data, the control unit acts as a central nervous system for the other components of the computer. It manages and coordinates the entire computer system. It obtains instructions from the program stored in main memory, interprets the instructions, and issues signals that cause other units of the system to execute them.
The control unit directs and controls the activities of the internal and external devices. It interprets the instructions fetched into the computer, determines what data, if any, are needed, where it is stored, where to store the results of the operation, and sends the control signals to the devices involved in the execution of the instructions.
In an earlier article we briefly discussed the start, stop, and flow symbols. Now let us add one more symbol. Now let’s add the rectangle to represent process or arithmetic calculation. Computers have memory. We can represent a piece of memory with a symbol known as a variable. Variables can change value at any time we want them to. Usually when we change a variable, we assign a new value to it or we just want to define a part of memory to a particular variable.
In this case, we want define part of memory to be known as “A” and then assign the value of zero to it. We could also say that “A” was assigned a starting value of zero sort of like algebra you may have learned in school. So the program above starts, then assigns the value of zero to “A”, and then just stops So far that does not seem very practical, but it is still a program.
So now so far, we have four tools to work with. Let’s review. Every program must have a starting and an ending point or termination. We need to have flowlines to describe how the program gets from the beginning to the end. Now we have a way to define a process or something to do in the program we have just created. This program might be represented in code as (rem stands for remarks or programmer notes that will not be executed by the computer):
‘rem assign values
let A = 0
or you could go a bit further for documentation purposes:
‘ Program start
‘Variable assigment (aka starting values)
Let A = 0
‘ Program stop (this is the end of the program)
One of the most often asked questions I hear is “What language should I learn.?”. Can not really tell you the answer to that. Then I ask, what are going to do with your programming skills? The answer is many times they do not know. They just want to be a programmer. Many times they see the big dollar signs, but programming is not really where their heart is sometimes.
Usually for future programmers I recommend having two disciplines. For instance, how can you do an accounting program if you have no idea how debits and credits at the minimum even work. You need to know about what you want to program for. In most cases, people in a particular industry feel they do not have the software that meets their needs. They go on a quest to develop such software.
Now let us go one step further. You need to know more than a language. You need to understand logic modules, just like there are different rooms in a house. All houses have the basic rooms, but they are all not attached in the same way. So is it true of software. You will need to learn the basic constructs to apply them in programming. Some say musicians can make good programmers, because they are used to putting parts of songs together. You will also need to be a good problem solver to be a programmer. No piece of software works the first time.
If you have ever done a “todo” list, you have written a program aka a piece of software for humans. Unless you are an independent programmer, you will not be developing the code from scratch, You will have guidelines that will usually come from a systems analyst or the like. Those guidelines may come in either the form of a flowchart (sort of an architect’s blueprint) or it may come in some form of “todo” list such as pseudocode. It will be your job to translate those instructions in to a computer language program.
What makes up a program? Lots of instructions. Just like you speak English or even another language, you know you have to say things in a certain way so that you will be understood by the instructions you want to convey. You need to know the syntax or the constructs (there is that word again) of the programming language you are using to write your program. That leads people to want to use the language both spoken and as a program that you feel comfortable with. Only you can decide what that is for you. What languages are there?
As for languages, some of them were developed to accomplish certain tasks easier. In the early days, Many people in the sciences learned Fortran (formula translation) because it was good for doing heavy computation. then again people use Cobol (common business oriented language) because it was good for business, self documenting and was very much like using English. Now there are a zillion languages for a variety of purposes or just what someone liked at the time. There are also languages that were meant for teaching about computing such as Pascal, Basic, Python, and C (and it’s variants).
In some cases, especially working for an employer, more than likely you will not get to choose the programming language will program with. Be flexible. Just like now it is good to know more than one oral language even if you do not speak it fluently. Knowing even a little bit, makes it easier to communicate with others. makes it easier to translate computer code from one language to another. The Basic language is now sort of frowned upon. It is a shame. I like to use old books with Basic computer programs and translate them to what I can use. For example, mathematics is not my strong point. I found an old program that created what is known as a sine wave. I translated that into what I could use. So it is best to be multilingual both in programming and in oral conversations.
Now that we have gone through all of that, what is next? Of course, you want to write a program. You have either read a book, magazine article, took a class, or even looked at some old programs, that you would like to try! You will need a program that will translate what you create into what the computer can understand or a sort of a translator. All computer language translators do not come with all machines. You can go online to places like compileonline.com to start entering programs to see the results. Computeronline.com has a wealth of programming languages to choose from. There you can experiment in coding and learning a language.
For a survey of a few languages see: http://computoman.blogspot.com/2014/09/freedom-of-assembly.html In my case, I wanted to learn a bit of Java. so I went to the java option and entered some code to see what would happen.
So now you have a sandbox to try several languages to see what you personally may like,
Whether you prefer a graphical user interface such as:
Where all you have to do is just double click a picture is so sexy and seems very easy. Let’s consider and alternative where all you have to do is just press a single key to start the program you want:
But then you could actually sort of do the same thing with an interface like this:
Oh but it is not as sexy some might say. It does exactly the same thing, but without using so many system resources. Not only that but you could get even more choices without having to redo the desktop. So if you pressed 1, you would get:
Or if you pressed 2 than you would get:
All this was done without any swiping! Of course that does not prevent you from using your favorite program such as a spreadsheet or whatever:
But then you could do sort of the same thing with a text based alternative like homecalc or sc:
With all the embedded devices such as the Raspberry Pi and the like, you will want to be as resource conscious as you can. Or to put it in another way, with all the impending issues in the world, what if computers, hand held devices and the like were stopped from being made? You still have to compute. What would you use? Those old systems in the closet do not look so bad now!?! Do not worry, computers will not be stop being made.
A bit of code:
echo “* Music programs *”
echo “*  Autoharp *”
echo “*  Radio *”
echo “* *”
echo “*  Exit/Stop *”
echo “Enter your menu choice [1-2, or 0]: ”
read -n 1 yourch
case $yourch in
1) autoharp.sh ;;
2) radio.sh ;;
0) exit 0 ;;
*) echo “Oopps!!! Please select choice 1,2 or 0”
echo “Press Enter to continue. . .” ; read ;;
Decided to take my score scraping script and apply it to other media. Per se maybe we just want the headlines of CNN.com. Used essentially the same set of instructions on a local news site with results. You will want to use the same rough logic or pseudocode:
Dump web page as ascii (text) to disk file.
Read disk file one line at a time in, but ignore all lines till you get what is needed.
Now continue reading one line at a time, but ignore certain lines
With the line you read in, output what is needed while editing out unwanted characters.
Stop output when you get to a point nothing else is needed.
Finnish reading file one line at a time.
You might get results like this ignoring equals signs.
* Freak accident kills hero bus
* IOS 8 is live: How to get it
* Five iOS 8 features you’ll love
* NEW Billionaire tells big named computer company: Innovate
* Obama stands firm: No ground troops
* Kerry heckled during testimony
* NEW Stocks hit record; thank Yellen
* NEW Panthers star takes leave
* Vikings: Peterson must stay away
* NEW Virus coming to a state near you
* Dowd inspires edible-pot campaign
* Wrongly convicted man gets a statue
* China blacks out CNN’s report
* He mistakenly calls 911, then …
* Surprise! Mendes, Gosling have babyOPINION
Then we can we can add it to our report.sh homemade newspaper. For details see:
echo “<h3>CNN Headines</h3>” >> report.html
echo “<pre>” >> report.html
# creates cnn.txt
./cnn.sh > cnn.txt
echo “<pre>” >> report.html
cat cnn.txt >> report.html
echo “</pre>” >> report.html
#################################### # Cnn Headline Grabber # #=============================== # Assignments # -------------------------------- datafile="rawcnn.txt" let "flag = 0" # end assignments #================================= # # Get data file #--------------------------------- elinks -dump "www.cnn.com" > $datafile #================================= # # Extract and display data #--------------------------------- while read line do fdata[$a]=$line echo $line | grep -q "THE LATEST" if [ $? -eq 0 ]; then # header clear let "flag = 1" fi if [ $flag -eq 1 ]; then echo $line | grep -q "Weather" if [ $? -eq 0 ]; then let "flag = 0" else echo $line | grep -q "IMG" if [ $? -eq 0 ]; then let "response = donothing" else echo $line | sed 's/\[.*\]//' fi fi fi let "a += 1" done < $datafile # footer echo --------------------------------------------- echo #=================================== # End. ####################################
Schools spend a a lot of money on computer education management systems such as the following: (values are subject to change at any time.)
Blackboard has dominated the market including try to allegedly sue out of business their competitors. If your a small school with less than a hundred students, a thousand dollars a per student seems a bit extreme to me unless you can afford it. The login in can tell you a lot about an institution. Lee college gives you the chance to look at potential courses.
Yet, when I see a credit card pictured and focused on, I wonder if the they are only looking for your money. Could be a turnoff for a potential student.
Now let’s look at an open source alternative. No money mentioned and you can again grab information without even signing up.
The cost of the Moodle software alone is $0 per student, allowing institutions to be more competitive. It is at least something to look at if you are an education administrator. Used Moodle a long time. Just did a fresh server install for testing. There are already many pre-setup modules you can use such as: http://moodle.net/?downloadable=1&submitbutton=Search+for+courses
Plus there are dozens of other sources with just a web search. i.e. http://moodleshare.org/
Check out http://moodle.synergy-learning.com/.
Penne pasta and red sauce.