Mathematica for the Communication Systems Engineer—A Teaching Experience

Yehuda Ben-Shimol

Ben Gurion University of the Negev, Israel

Abstract

Communication systems engineering (CSE) is an emerging field of expertise. The key concepts behind the operation of communication systems come from three “more traditional” fields: computer science, electrical engineering, and operations research. Specific networking issues, especially protocols, resources management, and networking applications, evolved with the field.

The comprehensive computer science background that is given to CSE undergraduates is not typical in other engineering tracks (e.g., electrical, mechanical, industrial, and so forth). Theoretical courses in discrete mathematics, graph theory, algorithms (centralized and distributed), data structures, and operation systems are mandatory. Additional courses in optimization are given.

In many of the courses (especially the more practical ones) teachers use computer simulations and programming assignments to enhance understanding, solve problems numerically, or as a hands-on experience.

Computer assignments are usually based on procedural and object-oriented programming languages such as C/C++ and Java. MATLAB™ is used for “mathematical-oriented” simulations. These programming languages were selected in the past under the impression that they will later serve to implement networking applications and event-driven simulations.  In spite of its excellent abilities, Mathematica was not chosen for mathematical simulations.

In engineering faculties, the population of CSE students are excellent candidates to use Mathematica for various topics due to their wide theoretical background in computer science and their high programming skills. This, along with the fact that BGU is a Mathematica campus and that personally I’m a dedicated Mathematica user for over a decade, lead to an ongoing experimentation of “converting” the students with procedural programming habits to become active and efficient Mathematica users.

The rest of the talk will be as follows. First, the CSE curricula will be described and suggestions where and how to use Mathematica efficiently will be given. Later I will describe my experience teaching Mathematica in three undergraduate courses (graph theory, queueing theory, and communication networks) and in specific graduation projects. Finally I will describe some of my experience as a “Mathematica promoter” (☺) to a number of graduate students. Detailed examples will be given.