Information Theory by own student' discoveries with MATLAB
Summary
I present my recent textbook "Information Theory Processes by own student' discoveries with MATLAB and Java" (in Ukrainian) and my educational course associated with it.
Learning Goals
To master coding and decoding technologies developed in Information Theory during the last 100 years by means of students' own re-discovering fundamental achievements of this science. Designed for IT students.
Description and Teaching Materials
Ye.A. Gayev (National aviation university, Kyiv, Ukraine)
Information and Coding Theory by own student' discoveries with MATLAB
I carry out lessons and laboratory classes at National Aviation University in Kyiv, Ukraine, on disciplines "Programming" (first teaching year), "Information Theory Processes" (third teaching year), and "Modeling Complex Systems" (fifth), and all they are based on MATLAB. Besides, a few new curriculums have been suggested to the University Board such as "Programming with Robototechniques elements" and "Data Types and OOP in MATLAB" in frames of university education renewing.
Recently, my textbook has been published entitled "Information Theory Processes by own student' discoveries with MATLAB and Java" in Ukrainian [1], and I am going to tell about my course associated with it. Indeed, I find the Own Student' Discoveries, more precisely Re-Discoveries of famous technologies in this field, to be the best way of active learning [5]. MATLAB and other modern computer languages provide a happy opportunity to realize them in a time much-much shorter than it was in history. Among them, MATLAB provides much easier way than other possible instruments say Java or Python. Particularly, nice GUI-programs may be created that students like very much [5,7].
My students began their "way to own discoveries" by making overviews and reports about famous personalities in the field. Some titles as examples: "Alexander III of Macedon Encryption Method", "Life of Samuel Morse" etc.
The flow of my course follows the so-called "flipped manner", i.e. there is no significant difference between lessons and practical classes: programming codes may be introduced on lessons and students are suggested to realize them directly in MATLAB CommandWindow; any notes during the lesson remains in their CommandHistory with some important text outlines started with % (i.e. comments). In turn, on practices, we discuss concepts that form background of algorithms, their realization in codes but I am able to grant them more time for checking their programs if something goes wrong.
The first section of the course concerns simple coding and decoding techniques and algorithms, say Morse Code [5] or that according to Baudot code LookUp Table. Both algorithms are very simple for constant-length codes but decoding ones are rather sophisticated for variable-length codes.
A significant advantage of MATLAB with regard to other mathematical environments or algorithmic languages [7] becomes evident right after the Task "Calculate Entropy of a natural Alphabet (say English)". It requires generally only one code string in the program
function E=AlphabetEntropy(LetterProbabilities)
%HELP organized as comments
E=-sum(LetterProbabilities.*log2(LetterProbabilities));
because of the "MATLAB' Matrix Philosophy" that has been implemented also in MATLAB-like free softs FreeMat, Octave, LabView and has been even borrowed by Python.
The main focus of the course is a development of so-called clever codes, i.e. those that are able to correct errors appeared during message transfer through noised channels. Redundancy feature and creation of "Forbidden words Dictionary" are employed here. Students simulate virtually transmitting binary messages through channels with noise accordingly to certain models, develop technologies of clever coding and realize them in MATLAB algorithms of their own. There are students that criticize MATLAB and prefer different tools. They are welcome to follow their way. However, it turns each time that MATLAB programs have many advantages [7].
Fig. 1 demonstrates such a program suggested for one of Home Works. Noise probability parameters have been hidden by the teacher here, and students are to determine them by making experiments and comparing messages sent, window 1, and received, window 4. Results are to be presented as Channel Matrices of three kinds, P(B/A), P(A/B) and P(AB). The last require programming as well but it is easy to realize in MATLAB. Statistically reliable results are to be obtained.
Collection of program elaborated mutually with students is hoped to be organized in a united soft as Digital Laboratory for Information and Coding Theory [1].
To conclude, I'd like to say the following. I am the most insisted propagator of MATLAB in Ukraine (see references below). I am sure it is vitally important for my country, with advanced science and education in its past and those corrupted recently. I tried to convince authorities in Education Ministry and in my university, but they prefer to interests of their pocket rather than that of education. At the same time, MATLAB in Ukrainian education could be helpful in solving many problems, for example, in improving mathematics and physics teaching. That's why researchers, educators and students use unlicensed MATLAB or its free analogs. To change the mind of society, I publish many textbooks and articles about MATLAB, including those with my students [5-7], manage international MATLAB-conference [6,7]. I look for any generous help in granting my university department with at least 10 licenses of this great soft!
References and Resources
1.Gayev Ye.A. Information Theory Processes by own student' discoveries with MATLAB and Java. Kyiv: Interservice, 2021, 256 pp. (in Ukrainian).
2.Gayev Ye.A., Nesterenko B.N. MATLAB for Math and Programming. Textbook. http://sula.nau.edu.ua/ukr/person/gaev/books/gayev_matlab.pdf
3.Gayev Ye.A., Azarskov V.N. Modern Programming for Engineers. Part 1, https://er.nau.edu.ua/bitstream/NAU/40705/1/Azarskov-Gayev2014.pdf ; Part 1,
https://er.nau.edu.ua/bitstream/NAU/40706/1/Гаев-Азарсков_част2.pdf . (in Ukrainian).
4.Gayev Ye. MATLAB as a tool for experimental mathematics. – 14th International Congress on Mathematical Education, Shanghai, July, 2021.
5.Gayev Ye.A., Azarskov V.N. Educational "Own Discoveries" Method by an easy MATLAB-Programming for Engineers.
https://www.academia.edu/37811759/Educational_Own_Discoveries_Method_by_an_easy_MATLAB-Program-ing_for_Engineers_How_to_teach_future_engineers_that_are_students_yet .
6.Gayev Ye. Algorithms that inspire to education. – 2nd Int. conference "MATLAB and computer calculations in education, science and engineering", April 24 – 28, 2021, pp. 5-8.
7.Gayev Ye. Why MATLAB? Compare to Mathematica and Python. – 2nd Int. conference "MATLAB and computer calculations in education, science and engineering", April 24 – 28, 2021, pp. 19-22.