1.      Coding in Distributed Systems


Speaker: Emina Soljanin, Rutgers University


Many have heard of Morse, bar, and QR codes, ISBN, and blockchains. These and other codes play essential roles in many scientific disciplines and virtually all telecommunication systems. We use codes to ensure reliability, security, and privacy in data transmission and storage. In theory, we use codes to, e.g., study computational complexity, design screening experiments, and provide a bridge between statistical mechanics and information theory. Codes can even help understand the (quantum) spacetime fabric of reality. Some may use codes for entertainment, e.g., to solve balance puzzles such as the penny weighing problem. We can design social (hat color) guessing-game strategies that significantly increase the odds of winning.

In this short course, the students will learn the fundamentals of coding theory and practice and a selected number of more advanced topics. We will explore coding in distributed systems. This topic is important because large volumes of data collected for knowledge extraction must be reliably, efficiently, and securely stored. We often distribute data over multiple nodes. Retrieval of large data files from storage has to be fast (and often anonymous and private). This course focuses on data storage and access and its relevant mathematical disciplines, including algebraic coding and queueing theory.


2.      Rank Metric Codes


Speaker: Alberto Ravagnani (Eindhoven University of Technology, Netherlands)


This course is an introduction to the theory of rank-metric codes and their fundamental parameters. I will explain how rank-metric codes can be used to correct errors in network communications and introduce a series of mathematical tools to study their structure and analyze their performance in applied contexts. The prerequisite for this course are linear algebra and finite fields (the basics).


3.      Evaluation Codes in Code-Based Cryptography


Speaker: Gretchen Mathews (Virginia Tech, USA)


In 1978, Robert McEliece introduced a public key cryptosystem based on the difficult problem of decoding a random linear code. Due to its large key size, the McEliece cryptosystem has yet to see widespread use. However, given that its security does not rely on factorization as the commonly employed RSA and elliptic curve crypto systems do, it is now being considered as a candidate for post-quantum cryptography. While evaluation codes support many important applications of coding theory, they must be modified for implementation in a code-based crypto system, such as that based on McEliece. We will discuss why that is the case as well as possible adaptations that are better suited for code-based cryptography. 


4.      Fundamentals of Coding Theory


Speakers: Khumbo Kumwenda & Augustine Musukwa (Mzuzu University, Malawi)


This course will introduce students to elementary results in the theory of error correcting codes. It will look at construction, encoding and decoding of linear codes, bounds in coding theory, cyclic codes and some special cyclic codes. As an example, the course will focus on irreducible Goppa codes. In this regard, we will study the parity check matrix and parameters of the codes and the parity check matrix. An irreducible Goppa code of degree $r$ and length $q^n$ will be defined in terms of a single field element and show that if one element that defines a code can be transformed into another by a combination of an affine map and Frobenius automorphism, then their corresponding codes are equivalent. By categorizing these codes via the said maps and applying Cauchy Frobenius Theorem, we produce an upper bound on the number of inequivalent irreducible Goppa codes of degree $r$ and length $q^n$.


5.      LCD Codes


Bernardo Rodrigues (University of Pretoria, South Africa)


This class builds on work on Codes from Graphs. It focusses on linear codes with a complementary dual (LCD codes). By considering codes from the row span of adjacency matrices of graphs and associated reflexive and complementary graphs, it is shown that we can find LCD codes with a particularly useful feature. As an application, some classes of graphs are considered. These include the uniform subset graphs. It is shown that if a p-ary code from a graph has this particular LCD feature, the dimension of the code can be found from the multiplicities modulo p of the eigenvalues of an adjacency matrix and, bounds on the minimum weight of the code and the dual code follow from the valency of the graph


6.      Graphs and Designs


Eric Mwambene (University of the Western Cape, South Africa)


A lot of effort has been directed towards the determination of properties of codes from the row span of adjacency and incidence matrices of graphs and designs. In this lecturer, we discuss various combinatorial and algebraic properties of graphs and designs that make them useful for codes. These include coverings, graph products, graph automorphisms, vertex and edge transitivity, connectivity, edge-cuts and bipartitions. For the designs, we will mainly focus on properties of neighbourhood and incidence designs of regular graphs.


7.      Codes from Graphs


Nephtale Mumba (Mzuzu University, Malawi)


In this class, we will build on the course on graphs and designs. We will discuss the construction of codes from graphs and associated designs. Looking at specific examples like strongly-regular graphs, uniform subset graphs, some bipartite graphs, we will determine properties of the codes. Our interest is in the length, dimension, minimum distances and automorphism groups of the codes. We will also discuss permutation decoding of the codes.


8.      Network Coding


Felice Manganiello (Clemon University, USA)


The research in network coding was initiated 20 years ago by a seminal paper by Ahlswede, Cai, and Yeung. Since then researchers have studied many exciting network coding problems, fundamental capacity limits and performance gains. The research in this area has connections with other areas such as complexity theory, graph theory, matroid theory, coding theory, and information theory. This course aims at introducing networks and networks coding problems, and at teaching the techniques that have been employed to solve them. The students will be provided with enough mathematical knowledge to start researching in this applied area.


9.      Introduction to Cryptography


Mwayi Nyirenda-Kayuni (University of Malawi)


The aim of this lecture is to introduce basic principles of cryptography with a view to studying code-based cryptography. We will study encryption, decryption, cryptosystems and public key cryptography