Wednesday, March 23, 2022

Joy of Computing

 Hi,

I am very happy to inform you that one more book of mine “Joy Of Computing” is available at Amazon.


Indian Link: https://tinyurl.com/JoyOfComputingIN 

US Link: https://tinyurl.com/JoyOFComputingUS 

UK Link: https://tinyurl.com/JoyOfComputingUK 

Canadian Link: https://tinyurl.com/JoyOfComputingCA

Australian Link: https://tinyurl.com/JoyOfComputingAU 



Free open source resources developed for this book are given below. Also, preface and table of contents at the end.


All the resources are available on github also.

https://venkatritch.github.io/JoyOfComputing/ 


You may look at the youtube video that introduces the book at https://youtu.be/CkTjPjm-Uug 


List of apps used in this book. You are most welcome to use them and share them even though you haven’t yet ordered the book. Obviously, explanations of the themes will be in the book.


Chapter 1:

The following app can be used to test basic understanding of students on tens place, hundreds place, etc.

https://scratch.mit.edu/projects/631746477

This app takes a random seven digit number one at a time. In that number, a digit will be selected at random and pointed with an arrow marker then the student will be asked to enter the weight of that digit either in words  such as tens, hundreds, thousands, etc., or 1 or 10 or 100 or 1000, etc. Also, it randomly asks the value of the digit either  at 10s place or 1000s place, etc..  Also, it randomly asks the value of the digit either  at tens place or thousands place, etc. In total, ten seven digit random numbers are used to test and score value is displayed based on the responses of the user/student.

The following app can be used to represent the given decimal integer in the polynomial fashion.

https://scratch.mit.edu/projects/629846239

This app asks the reader/student to enter a five digit decimal number and expands the same in a polynomial fashion as mentioned above as Mathematical polynomial. We request readers/students to use paper and pen to calculate the value of expression shown by this app to improve their arithmetic skills. Of course, we love to supply the following for the perusal of those kids who did not yet come across with powers of a number in their academics. 


The following app shows how a decimal number can be represented in a binary system and also as a binary polynomial.

https://scratch.mit.edu/projects/629398236

The following app represents a randomly selected integer in binary number system. In the binary number system, base is 2 instead of 10 in the well known decimal system. Also, 0 and 1 are the digits to represent any number in this system instead of 0-9 in the case of the conventional decimal system. Of course, as usual we request readers/students to use paper and pen to calculate the value of expression shown by this app to improve their arithmetic skills. Here, 2^0=1, 2^1=2, 2^2=4, 2^3=8, 2^4=16, and vice versa. In the following figure, decimal number 10 is shown as 01010 and is expressed as 0*2^4+1*2^3+0*2^2+1*2^1+0*2^0=0+8+0+2+0=10. We request the readers/students to play with this app for some number of times and cross check the expression with hand so as to feel what the binary number system is.

The following app can be used to expand any given number as a polynomial in any given base 2-16. 

https://scratch.mit.edu/projects/629435418

For example, the following figure shows decimal number 87 in base 6. We can verify that 2*6^2+2*6^1+3*6^0=2*36+2*6+3*1=72+12+3=87.

In the following app, just click on the cards to select and deselect apples to your collection.


This is a demonstration app to explain what is the binary number equivalent of a decimal number. 


https://scratch.mit.edu/projects/602116849


This app is to test binary code to decimal number conversion of the students. 

https://scratch.mit.edu/projects/621571989 


The following app demonstrates the same by expanding a fractional number in a polynomial fashion. Readers are expected to repeat the same with their hand to feel the concept.

https://scratch.mit.edu/projects/631052124 


The following app takes a random real number and shows its binary code along with a sign.

https://scratch.mit.edu/projects/614650582


We welcome readers/students to play with the following interactive quiz to further their understanding about base and other concepts discussed above. If the base of a number system is more than 10 then the digits of it are taken as 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 and A, B, C, D etc. Also, for any decimal number, n, the least significant digit in base b is n modulus b. Similarly, for any decimal number, n, the  most significant digit in base b is given as the integer portion of n/F where F is a largest integer of the form bp, where p is an integer and F<=n. 

https://scratch.mit.edu/projects/632241243 


One more quiz to fine tune your understanding of the concepts related bases.

https://scratch.mit.edu/projects/633509786 


The following app takes a CAPITAL string (Name) from the user and displays how the same is stored in computer memory. For each character its ASCII code is displayed in consecutive bytes. If the given string contains any character other than CAPITAL characters, it prints 00000001.

https://scratch.mit.edu/projects/652345838


Chapter 2:

This app demonstrates how Random Access Memory(RAM) is organised and addresses of it’s bytes. We know that an n-bit RAM contains 2^n bytes or memory locations. This app animates such a RAM and how its memory is accessed one byte after another,

https://scratch.mit.edu/projects/656899539 


We welcome readers not to miss seeing the following Java Applet that demonstrates an attometer(10-18) to the milky way.


https://micro.magnet.fsu.edu/primer/java/scienceopticsu/powersof10/index.html


The following link contains an app that simulates this Evil King puzzle. I welcome readers to use this app.

https://scratch.mit.edu/projects/661835215


The following link contains a quiz around the Evil King puzzle. Please do  attempt the same.

https://scratch.mit.edu/projects/662084520 


The following link contains a craps game developed in SCRATCH language by my neighbour's kid. You are most welcome to play with it.

https://scratch.mit.edu/projects/453021205/


Also, to make the reader to appreciate the things we want to represent this in still some

physical means. Thanks to blogger https://azblogs4u.blogspot.com/2018/03/tenalirama-man-who-bring-kingdom-to-its.html 


Chapter 4

We welcome readers to visit the site https://logic.ly/demo/samples and play the D-Flip-Flop app.



Chapter 5

The following app can be used to expand any given number as a polynomial in any given base 2-16. 

https://scratch.mit.edu/projects/629435418

You are welcome to play with the following app also.

https://scratch.mit.edu/projects/636496329 


This app displays the binary code of a decimal integer and also it expands the same as a polynomial. It extracts digits from least significant digit to most significant digit.

https://scratch.mit.edu/projects/608969713



This app displays the Quaternary code of a decimal integer and also it expands the same as a polynomial.

https://scratch.mit.edu/projects/607287426


This app displays the Quaternary code of a decimal integer and also it expands the same as a polynomial. It extracts digits from least significant digit to most significant digit.

https://scratch.mit.edu/projects/608964709


This app displays the Octal code of a decimal integer and also it expands the same as a polynomial. 

https://scratch.mit.edu/projects/607322293


This app displays the Octal code of a decimal integer and also it expands the same as a polynomial. It extracts digits from least significant digit to most significant digit.

https://scratch.mit.edu/projects/608959369


This app displays the Hexadecimal code of a decimal integer and also it expands the same as a polynomial.

https://scratch.mit.edu/projects/608364974



This app animates how a binary number is converted to Quaternary code. It takes a random decimal integer and shows it binary code first. Then, it takes two bits at a time from the least significant bit of the binary code and its equivalent base-4 digit is displayed.

https://scratch.mit.edu/projects/610263577 


This app animates how a binary number is converted to octal code. It takes a random decimal integer and shows it binary code first. Then, it takes three bits at a time from the least significant bit of the binary code and its equivalent octal digit is displayed.

https://scratch.mit.edu/projects/610299696 


This app animates how a binary number is converted to  code. It takes a random decimal integer and shows it binary code first. Then, it takes four bits at a time from the least significant bit of the binary code and its equivalent hexadecimal  digit (0-9A-F) is displayed. 

https://scratch.mit.edu/projects/610302073


Chapter 6

We advise readers of the book to visit the following sites and play the app to feel more about the binary system.

http://mathszone.net/mw/bases/binary/index.html 

https://www.csfieldguide.org.nz/en/interactives/binary-cards/


The following app is to further improve your skill set on binary systems.

https://www.csfieldguide.org.nz/en/interactives/base-calculator/


The following is another app for learning binary systems.

https://scratch.mit.edu/projects/602116849 



This example shows a decimal number in binary fashion using human front and back standing poses. 

https://scratch.mit.edu/projects/628807603 


The following web site contains a marvelous testing utility to test your binary systems related knowledge.

https://studio.code.org/projects/applab/iukLbcDnzqgoxuu810unLw 


The following app shows all the possible finger notations and their values for the perusal of readers.


https://scratch.mit.edu/projects/627804915 


To test your knowledge on finger binary, you are welcome to use the following app.

https://scratch.mit.edu/projects/627920722 


The following video demonstrates how to count 1 to31 using fingers.

https://youtu.be/Bke95oWWZII 


The following app is used to check the binary skills of the reader while adding two finger configurations interactively.


https://scratch.mit.edu/projects/628312021



The following app is designed to test understanding of the student on the binary system. It poses ten binary numbers with front and back facing people and ask them whether it is the same as some number with a simple yes or no answer.

https://scratch.mit.edu/projects/629048885


This app tests the knowledge of students on signed binary numbers.

https://scratch.mit.edu/projects/621836816 


This app also shows how to represent a binary number for the sake of understanding kids.

https://scratch.mit.edu/projects/629076966 



Also, we request teachers to use the following that displays all the numbers from 1 to 31 using sitting dogs. 

https://scratch.mit.edu/projects/629116134


This app displays the binary code of a random number 1-31. 

https://scratch.mit.edu/projects/606219783


This app shows how a positive integer 1-31 is represented in a binary polynomial fashion.

https://scratch.mit.edu/projects/606827852 


This is a demonstration app to explain what is the binary number equivalent of a decimal number. 


https://scratch.mit.edu/projects/602116849


Also, we welcome teachers to see this video and try to replicate the same in the class.

https://youtu.be/rfQqh7iCcOU


Chapter 7

You may love to see its working in the youtube video https://www.youtube.com/watch?v=GcDshWmhF4A&t=92s 


https://3dprint.com/92406/3d-printed-binary-adding/ describes how to 3D print the marble machine.  https://www.thingiverse.com/thing:925312 contains more details for printing its parts.


https://www.sciencefriday.com/educational-resources/write-your-name-in-binary-code/


The following app takes a CAPITAL string (Name) from the user and displays how the same is stored in computer memory. For each character its ASCII code is displayed in consecutive bytes. If the given string contains any character other than CAPITAL characters, it prints 00000001.

https://scratch.mit.edu/projects/652345838



The following shows binary time.

https://binary.onlineclock.net/time/ 



Chapter 8

You are welcome to use the following app for experimenting with the above conversions.

https://www.calculator.net/hex-calculator.html


Also, the following link contains a nice conversion tool.

https://learn.sparkfun.com/tutorials/hexadecimal/all 


Also, the following link contains a nice conversion tool.

https://www.cut-the-knot.org/binary.shtml


Also, the following link contains a nice conversion tool.

https://www.mathwarehouse.com/solved-problems/conversions/convert-1110110110000-from-binary-to-octal


Also, play the following binary game to improve your confidence in 0s and 1s.

https://games.penjee.com/binary-bonanza/index.html


Also, another interesting game to test your speed in dealing with binary numbers.

https://learningcontent.cisco.com/games/binary/index.html


Another interesting game to improve skills in binary numbers.

https://games.penjee.com/binary-numbers-game/index.html


Also the following page is a little interesting.

https://blog.penjee.com/what-is-a-binary-number/



Also, the following link contains nice convertor to Hex, Octal, etc.

https://www.mathwarehouse.com/calculators/binary-hexadecimal-calculator.php 


The following site contains marvellous apps to do number conversions

http://www.cut-the-knot.org/blue/SysTable.shtml 


Chapter 9

The following app is used to test how students can recognize the digits of Mayan system.

https://scratch.mit.edu/projects/651186633 


The following app is used to test basic skills of students about digits in Mayan system. It displays all the possible digits of Mayan system and asks the reader to click on some specified digits.

https://scratch.mit.edu/projects/651290800


The following app is used to test basic skills of students about Mayan system. It shows a number in Mayan system and asks the reader to guess what it is.

https://scratch.mit.edu/projects/651221110


The following app is used to test basic skills of students about Mayan system. It shows two numbers in Mayan system and asks the reader to guess what  is their sum is.


https://scratch.mit.edu/projects/651277154 


Chapter 10


We welcome readers to experiment the following full adder circuit at https://logic.ly/demo/  and https://logic.ly/demo/samples 


This app takes two random decimal integers and shows their binary codes first. Then, it demonstrates how to add the bits from least significant bit and what is the carry value.

https://scratch.mit.edu/projects/613350058


Chapter 11

This gives a random binary bit sequence and asks the user whether it is same as some decimal integer.

https://scratch.mit.edu/projects/621611777 


This app is to test unsigned binary numbers to decimal number conversion skill of the students. 

https://scratch.mit.edu/projects/621571989 

This app is used to test signed integers knowledge of the students.

https://scratch.mit.edu/projects/621593145


The following app animates binary odometer.  We welcome readers to play with it.

https://scratch.mit.edu/projects/622331264


This app takes a random decimal integer and first calculates its binary code. In order to calculate its 2's complement, we first calculate 1's complement and add 1 for it. 

https://scratch.mit.edu/projects/612565613 


Chapter 13

This app takes a random decimal integer and shows its binary code. Then, it calculates parity bit using odd parity. That is, if the binary code contains an odd number of 1s then parity bit value is taken as 1; otherwise parity bit value is taken as 0.

https://scratch.mit.edu/projects/610880868


This app takes a random decimal integer and shows its binary code. Then, it calculates parity bit using odd parity. That is, if the binary code contains an even number of 1s then parity bit value is taken as 1; otherwise parity bit value is taken as 0.

https://scratch.mit.edu/projects/610900873 



We advise readers to visit http://candle.ctit.utwente.nl/wp5/tel-sys/exercises/datalinkp2p/hamming74demo.html and experiment with the available online Hamming code demo.


The following app selects a decimal integer and then calculates the parity bits as discussed above.

https://scratch.mit.edu/projects/610924743


https://products.aspose.app/barcode/generate/postnet 

https://barcode.tec-it.com/en 


https://electricalfundablog.com/barcode-number-system/


Chapter 14

The following app can be used to know ASCII symbols and respective binary codes.

https://www.csfieldguide.org.nz/en/interactives/unicode-binary/ 

At present we are using UNICODE to represent symbols of many languages around the world. Of course, ASCII is a subset of it. Using the following app we can see symbols associated with the given UNICODE values. You may try entering values from 3077 onwards to see Telugu alphabets.

https://www.csfieldguide.org.nz/en/interactives/unicode-chars/

Chapter 15

We welcome readers and teachers to play with some sound samples with various sampling rates and quantization levels to understand these concepts in live. We advise readers to visit the following site for many more examples on this theme.

https://makeabilitylab.github.io/physcomp/signals/QuantizationAndSampling/index.html 


In all the following sound clippings, the word “Hello” is uttered by a person with various quantization levels. We welcome viewers to feel what happens if the quantization levels become small. The following audio clipping is sampled at 44100KHz and at 16-bit quantization levels.

https://drive.google.com/file/d/1OyD7jVH0TfQu-Y5MgqlC_mL-0wTOlhyX/view?usp=sharing 

The following audio clipping is sampled at 44100KHz and at 8-bit quantization levels.

https://drive.google.com/file/d/1gLxmmx7Gf87DA5enb7HzPMKRXGtMxkgl/view?usp=sharing 


The following audio clipping is sampled at 44100KHz and at 6-bit quantization levels.

https://drive.google.com/file/d/1eVIOee3kvaNJ5LkKd-tdPT4rJppILRv5/view?usp=sharing 

The following audio clipping is sampled at 44100KHz and at 4-bit quantization levels.

https://drive.google.com/file/d/1msge5oaJJSPGP4n-zQAnOtS3FTjiZ1Z7/view?usp=sharing 

The following audio clipping is sampled at 44100KHz and at 3-bit quantization levels.

https://drive.google.com/file/d/1BKWC9BwT6UCctFtuamuhCw2ffIEJyaUb/view?usp=sharing 

The following audio clipping is sampled at 44100KHz and at 2-bit quantization levels.

https://drive.google.com/file/d/1NLal9oeRj-dzfUPC-4MV_1jlQAWd4Z82/view?usp=sharing 

Levitating huge objects

https://futurism.com/physicists-successfully-levitate-large-objects-with-sound-waves?fbclid=IwAR2eSJPI-_FZdnqTLgi1jLr20BH_8ttIeyrXvq77b7F3kW2SIBNIc8QK9S0 

The Music of Proteins Is Made Audible Through a Computer Program That Learns From Chopin

https://singularityhub.com/2021/10/03/the-music-of-proteins-is-made-audible-through-a-computer-program-that-learns-from-chopin/?fbclid=IwAR2M6Sy3BiRMq65IcYtiEEUkY_de-EPX5_CDRzk8tUomhY488Cv7EY8wfCg 

For example, music generated from the receptor protein that binds to the hormone and neurotransmitter oxytocin has some recurring motifs due to the repetition of certain small sequences of amino acids.

https://drive.google.com/file/d/1ISAHkY8gT1zmBxY9BW2DhFz-LUN_lk8k/view?usp=sharing

On the other hand, music generated from tumor antigen p53, a protein that prevents cancer formation, is highly chromatic, producing particularly fascinating phrases where the music sounds almost toccata-like, a style that often features fast and virtuoso technique.

https://drive.google.com/file/d/1f56akrby2oeZJprzM3WUHbloe-M6F_yL/view?usp=sharing 


The following link contains technical details of Levitation that was used in olden days by Buddist monks. 

http://www.thelivingmoon.com/44cosmic_wisdom/02files/Levitation03.html

Chapter 16


Sending kisses over Internet

https://www.theverge.com/circuitbreaker/2016/12/28/14105688/kissenger-message-kiss-app-device-abroad?fbclid=IwAR3eumic0knMc0zKJs5o1s44SFjuPOTfkdG0zCd74-i5mIVB5rahDApH-jw


Sending smell through Internet

https://www.nbcnews.com/mach/science/digital-smell-technology-could-let-us-transmit-odors-online-chats-ncna940121


The following website contains many handy tools for IPv4 and IPv6 address manipulation.

https://www.ipaddressguide.com/netmask


The following app takes a string from the user and converts the same into pig latin. That is, we append a character like 'k' in each character of the string and then print the same.

Example Input:Rama

Example Output: kRkakmka

https://scratch.mit.edu/projects/648088595 

The following app takes a string that is in pig latin from the user and converts the same into the original string. That is, we remove characters like 'k' before each character of the given string and then print the original string. 

Example Input: kRkakmka

Example Output:Rama

https://scratch.mit.edu/projects/648162603 


This app takes a CAPITAL string from the user and encrypts the given string by replacing each character of it with a character that is four units from it. That is, symbol A is replaced with symbol E, symbol P is replaced with symbol T, symbol V is replaced with Z, symbol Y is replaced with C, symbol Z is replaced with D and vice versa.

Example Input:RAMA

Example Output: VEQE

https://scratch.mit.edu/projects/652138128

This app takes a CAPITAL string from the user and decrypts the given string by replacing each character of it with a character that is four units before it. That is, symbol E is replaced with symbol A, symbol T is replaced with symbol P, symbol Z is replaced with V, symbol C is replaced with Y, symbol D is replaced with Z and vice versa.

Input string:VEQE

Output string:RAMA

https://scratch.mit.edu/projects/652170492 

This app takes a CAPITAL string from the user and encrypts the given string by replacing each character of it with a character that is n units from it. That is, if n value is 4 or 30 or 56 or 264 or -22 or -48 or -282 , symbol A is replaced with symbol E, symbol P is replaced with symbol T, symbol V is replaced with Z, symbol Y is replaced with C, symbol Z is replaced with D and vice versa.

Input string: RAMA

Input value of n:  4 or 30 or 56 or 264 or -22 or -48 or -282

Output string:VEQE

https://scratch.mit.edu/projects/652211991

This app takes a CAPITAL string from the user and decrypts the given string by replacing each character of it with a character that is n units before it. That is, for value of n,  4 or 30 or 56 or 264 or -22 or -48 or -282 symbol E is replaced with symbol A, symbol T is replaced with symbol P, symbol Z is replaced with V, symbol C is replaced with Y, symbol D is replaced with Z and vice versa.

Input string: VEQE

Input value of n:  4 or 30 or 56 or 264 or -22 or -48 or -282

Output string:RAMA


https://scratch.mit.edu/projects/652221285 



The above  Cipher wheel encryption is available at the following link for experimentation.

https://scratch.mit.edu/projects/653034058 

Decryption for the above Cipher wheel encryption is available at the following link for experimentation.

https://scratch.mit.edu/projects/653039480


Scientists Crack Largest Encryption Key After 35 Million Hrs Of Computing

https://fossbytes.com/scientists-crack-largest-encryption-key-35-million-hrs-computing/?fbclid=IwAR2gYrBnV45XHKKZ5yzUgkypRTb5pZ7InuRZTtnoWbtyFOkvfLP8ZAtIlaw

Wow. Now you can buy virtual plot in EARTH2 metaverse(https://earth2.io/)


Chapter 18

Teachers are advised to use the following app to demonstrate phase, their reflections etc on basic particles such as protons and electromagnetic waves.

https://www.st-andrews.ac.uk/physics/quvis/simulations_html5/sims/photons-particles-waves/photons-particles-waves.html 


The following link contains a simulation app that demonstrates what a spin is. We request readers to use this app before proceeding further.

https://www.st-andrews.ac.uk/physics/quvis/simulations_html5/sims/spin1/spin1.html 


We welcome readers to play with the following app to understand the states 0, 1 and mixed state 0 and 1.

https://www.st-andrews.ac.uk/physics/quvis/simulations_html5/sims/superposition/superposition-mixed-states.html 


The following links contain various apps that demonstrate the state of a qubit.

https://www.st-andrews.ac.uk/physics/quvis/simulations_html5/sims/Bloch-measurement/Bloch-measurement.html 

https://www.st-andrews.ac.uk/physics/quvis/simulations_html5/sims/blochsphere/blochsphere.html 

https://www.st-andrews.ac.uk/physics/quvis/simulations_html5/sims/SinglePhotonLab/SinglePhotonLab.html

https://www.st-andrews.ac.uk/physics/quvis/simulations_html5/sims/QuantumBombGame/Quantum_bomb.html

https://devblogs.microsoft.com/qsharp/visualizing-quantum-programs-using-the-qdk/


The following SCRATCH app also can be used to demonstrate the various states of a qubit. Play with various gates such as “A”, “X”, etc.

https://scratch.mit.edu/projects/420214047


We welcome readers to use this entanglement simulation app to visualize the concept entanglement discussed above.

https://www.st-andrews.ac.uk/physics/quvis/simulations_html5/sims/entanglement/entanglement.html 

 

The following virtual lab also has an extensive collection of examples to demonstrate the concepts to first level students.

https://lab.quantumflytrap.com/lab/quantum-teleportation?mode=laser 

 

The following SCRATCH seems to be apt in demonstrating the entanglement with 2-Qubit system.

https://scratch.mit.edu/projects/412175983 


Private keys for message transactions: messages can be accompanied by a cloud of uncertainty that encrypts their contents; only those who send and those who receive the message can decrypt the content.

The following animations will illustrate the use of quantum computers for cryptography.

https://www.st-andrews.ac.uk/physics/quvis/simulations_html5/sims/BB84_photons/BB84_photons.html

http://www.st-andrews.ac.uk/physics/quvis/simulations_html5/sims/cryptography-b92/B92_photons.html

http://www.st-andrews.ac.uk/physics/quvis/simulations_html5/sims/cryptography-bb84/Quantum_Cryptography.html

http://www.st-andrews.ac.uk/physics/quvis/simulations_html5/sims/cryptography/Quantum_Cryptography.html


List of Quantum Computer simulators

This list provides an overview of available QC simulators grouped by programming language

https://quantiki.org/wiki/list-qc-simulators 



Preface

Like many people, I did maintain a slam book during my under-graduation and had wishes from many of my friends. I love to bring the first page of the same book  which I always recollect being a teacher to deliver concepts in a big way(more clarified way) in my classes whatever small is that concept. 

During the 30-35 years of Computer Science teaching, I have observed thousands of students putting blank faces when any one tries to probe them at bit level. I know that the concept of bits & bytes is the basis for whole development related to Computer Science, IT and allied areas. Thus, I was aiming at expanding the simple “bits” concept in a big way so as to be appreciated by the students community and teaching fraternity. Certainly the above quotation of my friend is instrumental in thinking like this.


It is always good to deliver the first level courses as  appreciation courses or joyful courses. I mean, they have to develop interest in the course theme and build enthusiasm among the students. Thus, I have selected the title of the book as “Joy of Computing”. I am sure you will agree with me that the courses can be joyful by including animations, “to do” examples, and puzzles. Thus, this book is designed to have many animations, puzzles, ready to run programs, relating to historical developments, and interesting real life examples.  Also, questions asked in International Competitions such as Bebras, PISATEST, etc., are included to give a little more bliss to the book.


Another important objective of conceptualising this book is to create a pool of resources to be used by the teachers in their first classes while introducing computers to kids. 


First chapter introduces the concepts such as number system, polynomial expansion of a number and the radix of a number system, etc. All the chapters are augmented with many apps to experiment or practice the concepts including this chapter. In this chapter itself, the binary system is introduced. Second chapter is designed to relate bits and logarithms. This is another conceptual gap which I have observed in CSE/IT interns. What is an n-bit computer? Here, what n conveys in the programmer's point of view is covered. 


Also, when to use ‘B’ and when to use ‘b’ is explored in the third chapter. Also, this chapter clarifies whether K(kilo) stands for 1024 or 1000(103). This chapter also elucidates the  layman’s meaning of 1MB?

Fourth chapter explains what is the practical speed of a computer and how the same is represented in terms of MIPS(Million Instructions per Second), FLOPS(Floating Point Operations per Second). Fifth chapter number conversions from one base to another base.


Sixth chapter is an exclusive for binary number system. This chapter explains “Why binary numbers are used in present digital computers”. It also explains counting using fingers along with how real numbers can be represented in a binary system. Seventh chapter historical development of “Computing Machines” from Leibniz wheel.


Eighth chapter also deals with number conversions from one base to another base. Many conversion tools are designed for the perusal of students. Ninth chapter includes concise discussion on how number systems are developed historically. Tenth chapter explains operations of binary numbers such as addition, subtraction, multiplication, and division.


Eleventh chapter introduces sign-magnitude representation, 1’s complement representation, 2’s complement representation, BCD representation, exceptional situations such as overflow, underflow during the computations. Twelfth chapter explores IEEE 754 floating point representation and allied apps.


Chapter thirteen deals with error correction and detection codes in practical computer communications. ISBN number, Hamming code, 2 out 5 code, US POSTNET code, etc. are explained along with many puzzles related to these concepts. Chapter fourteen explains the need for standards (common agreement) in computer communication. Also, it explains about ASCII, UNICODE etc., standards along with many easy to use apps. Also, it introduces the endianness of a processor and its effect on practical computer communication.


Chapter fifteen makes a tour of the digital era. It introduces concepts such as analog systems, digital systems, sampling, quantization, Nyquist theorem, sensors,  etc. Chapter sixteen introduces the reader to the Internet, WWW, Metaverse. Also, this chapter is designed to have many encryption based simple puzzles, apps to make them appreciate the need for data security because of the public nature of the Internet.


Seventeenth chapter is an exclusive on qubits, aka quantum computing which is predicted to give many breakthroughs in computing research. This chapter is also made to have many apps to illustrate the concepts easily to the students. I have included many descriptive questions, objective questions to be used by the prosperous teachers. 





Table of Contents

Introduction 

Ha. Ha. This is a marvellous synonym to the computer!

Explore about Computing, the offspring of Counting

Mathematical meaning of fixed or integer numbers

Ok. Ok. What is the Mathematical meaning of a Fractional or real number?

Base (or radix) of a Number System 

Acceptable Digits in a Number System 

A Funny question raised by a 9 year old kid

A simple note on base 10 system

Puzzle: Echo and Response

I liked this video a lot. What about you?

Bits and Logarithms

Logarithms put numbers on a human-friendly scale

Logarithms in Science and engineering

Do you remember using the log scale in your drawings?

Measurement Scale: Google PageRank

Happiness Law and logarithms

Little briefing about practical logarithms and their applications

A Convenient Relationship between Base 2 and Base 10 Numbers

By the way what is meant by 1MB really?. How to convey the same to a lay man?.

How many pictures can I store on a CD or DVD?

A simple game

Craps game: another game

Wheat and chessboard problem

B or b?  Kilo means1024 or 1000?

When and where one uses Bytes and where one uses bits?

Connecting I/O to Processor and Memory

Netflix & YouTube Video Bandwidth requirements

What bandwidth is needed for my house camera surveillance system to remotely assist my old mom?

FLIP-FLOPS and FLOPS

What is a Flip-Flop?

What is the speed of a processor?

.

Number conversions

Converting from Base 10 to Other Bases

Another method for converting numbers from base 10 to other bases

Binary System

Another way of Converting from Decimal to Binary

Puzzle: An evil king and his wine bottles

Finger Binary

Why is the Binary System used in Computers?

Puzzle: Flags

Puzzle: Binary Gate

Puzzle: Happy binary cake

Puzzle: Sixteen Diodes

Puzzle: Gamma Code

Puzzle: Binary counter

Puzzle: Binary Card Game

Worksheet for teachers

Binary Numbers in Lights

Puzzle: Counterfeit Coin detection

Glimpses of binary computing machines

Example: If you want to add 13 to 44, perform the following steps:

Using the Machine to Subtract

Simple Rules For Number  Conversions

Binary → Denary

Quaternary → Denary

Octal → Denary

Hexadecimal → Denary

Binary → Quaternary

Binary → Octal

Binary → Hexadecimal

Quaternary → Binary ,  Octal → Binary ,  Hexadecimal →Binary

Quaternary → Hexadecimal

Hexadecimal→ Quaternary

Octal ↔Hexadecimal, Octal ↔ Quaternary

Binary → Denary

Popular Number Systems:Inspirers of the current day computers

Ternary system

Finger Ternary

Oh, my God! Systems with a negative base? Negabinary

Senary System

Duodecimal System Dozenal System

Vigesimal

Hexavigesimal

Sexadecimal

Binary Arithmetic

Representation of integers in Practical Computers

Unsigned Numbers

The Concept of complement

Diminished Radix Complement : 

Radix Complement 

Representation of Signed Integer in 1's Complement Form

A simple odometer analogy to elucidate overflow 

Representation of Signed Integer in 2's Complement Form

Some points to remember about overflow/underflow

Other codes used in representing numbers

IEEE 754: Practical Representation of Real Numbers in the present Computers                            

Fixed-point representation 

Floating-point representation 

IEEE 754 standard floating point format: 

Error Detection and Correction codes

2 out of 5 code

Bi-quinary

Puzzle: BSBN

Puzzle: Observing Beavers

Puzzle: KIX Code

Puzzle: Let us encode numbers

Puzzle: Lights

Puzzle: Code

Puzzle: Card Code

ASCII to UNICODE Standards

Puzzle: Bowling

Big endian, Little Endian, Middle Endian machines

The Digital Era aka era of bits and bytes

What is digital?.  What is Analog?. 

Digital systems

Sampling and Quantization

Analog to Digital Converter (ADC) and Digital to Analog Converter (DAC)

Number of bits per sample

How much memory is required to record 1 second of music?

Properties of digital sound

A Note on Digital Representations

Glimpses of daily life sensors which is secret of SMARTNESS

An Ultrasonic Sensor

Application of Ultrasonic Sensor

Touch Screens

Flying bits: Internet, WWW, and Metaverse

What is the Internet?

IP Addresses

How To Test Internet Connectivity?

Knowing Our Machines IP Address and Domain Name

Is the Internet secure? Is our data secure over the Internet?

Puzzle: John's Secret Message

Puzzle: Cipher Wheel

Puzzle: ABug

Puzzle: Secret message

Puzzle: Encrypted eMail

Puzzle: International  Bebra Contest, Pakistan, 2015

Puzzle:    Beaver's code

Puzzle: Crypto-Beaver

Puzzle: Secret number reminder

Puzzle: Send a secret

Puzzle: Secret Typewriter

Puzzle: Intrusion!

Puzzle:    Breaking the cipher

Puzzle: Robber language

Puzzle: B-Enigma

Puzzle: Decryption Decryption Map

Puzzle: Grid alphabet

Puzzle: Displacement cipher

Puzzle: 2 simple Ciphers

Meta Verse

Let us take a snap of Qubit

Bits vs Qubits

Spin

POLARIZATION QUBIT

PATH QUBIT

TIME QUBIT

Superconducting qubit

How does a quantum computer work?

What makes QC interesting?

Speed like you’ve never imagined achieving with classical computer

Everywhere at once

Some example uses of QC

A little about Mathematical representations

List of Quantum Computer simulators

Review Questions

Objective Questions

Some useful online resources






Acknowledgements


I thank all of my students of BITS, Pilani, RITCH CENTER, GVPCE, AITAM, GVPCEW to whom I have taught various programming and algorithms related courses during the last three decades. Their queries, their question mark faces made me scribble this book. 


I thank my college Management Prof PS Rao, Prof Soma Raju, Principal, Vice-Principal, and fellow colleagues. 


I thank COVID because of which I have got some free time to collate all the examples of the book.


I thank my Mrs. Dr Garimella Venkata Saradama and daughter for allowing me to use their time to concentrate on this book project; otherwise this would have not been seen in its current form.


Author

NB Venkateswarlu