*This week’s post by guest author, Dr. Dora Musielak, includes selected excerpts from her book,* Sophie’s Diary: A Mathematical Novel*. The story is inspired by French mathematician, Marie-Sophie Germain, the first and only woman in history to make a substantial contribution to the proof of Fermat’s Last Theorem. Little is known of Germain’s adolescence prior to the time she began corresponding with great mathematicians such as Lagrange, Legendre, and Gauss. As Dr. Musielak explains in the MAA Books blog post, this book imagines how Sophie might have learned mathematics on her own during a time when girls and young women were strongly discouraged from such pursuits.*

*An aerospace engineer scientist by training, Dr. Musielak is currently Researcher and Professor of Physics and Mathematics at the University of Texas Arlington. Dr. Musielak is also a NASA fellow. She is also the author of* Kuxan Suum: Path to the Center of the Universe*, a book to that combines astronomy and astronautics to promote the exploration of space.*

**From Sophie’s Diary: A Mathematical Novel**

*Wednesday — April 1, 1789*

How can I divide 35 in a half, a third and a ninth, and get an even number? It seems impossible! Yet I know there must be a way… .

My name is Sophie. Today is my thirteenth birthday and my parents surprised me with wonderful gifts. My father gave me a lap desk of glossy mahogany wood. It has a compartment to keep paper and pens, and a secret drawer that can only be opened by pressing a hidden tab underneath. When I unlocked it, I found a mathematical riddle and a note from Papa, challenging me to solve it. He gives me a year, but I hope to find the answer sooner than that. Oh, I am so excited!

My mother gave me a porcelain inkwell, a stack of linen paper, sealing wax, a miniature burner, six bottles of ink in different colors, and a set of quills. These are the best birthday presents ever! I promised my parents to write often to improve my penmanship. Maman says writing neatly and correctly is very important for a refined young lady. This gave me the idea of writing a *journal intime*, a diary where I can record my innermost thoughts and feelings.

I love my father. He taught me arithmetic when I was five. I still remember my excitement when Papa taught me the numbers. I used to think that the arithmetic operations were magic tricks to produce new numbers. Just for fun, I spent hours adding numbers to create others. Now I help Papa with the more complicated calculations he needs for his business transactions. He still calls me *ma petite élève*.

I have two sisters, Angélique-Ambroise and Marie-Madeleine. Angélique is ten years old, a pretty and vivacious girl who talks incessantly, exactly the opposite of me. Madeleine is almost nineteen years old. She resembles our mother and, like her, she is romantic and sweet. I am not like either of them. My sisters like to dress in beautiful gowns, style their hair, and sing and dance. I don’t like any of that.

Angélique calls me “peculiar.” She teases me all the time because I like to be alone and would rather read books. I do not care whether my hair is curled, or if my dresses are fashionable. I do not think about these things the way she does. But I am fond of her, just as I am of my mother and Madeleine. I especially love my father with all my heart; *mon cher père*, he understands me better than anyone.

*Monday — January 2, 1792*

I begin the new year with more determination and a renewed resolve to study prime numbers. One of my goals is to acquire the necessary mathematical background to prove theorems.

Prime numbers are exquisite. They are whole pure numbers, and I can manipulate them in myriad ways, as pieces on the chessboard. Not all moves are correct but the right ones make you win. Take, for example, the process to uncover primes from whole numbers. Starting with the realization that any whole number *n* belongs to one of four different categories:

The number is an exact multiple of 4 : *n* = 4*k*

The number is one more than a multiple of 4 : *n* = 4*k* + 1

The number is two more than a multiple of 4 : *n* = 4*k* + 2

The number is three more than a multiple of 4 : *n* = 4*k* + 3

It is easy to verify that the first and third categories yield only even numbers greater than 4. For example for any number such as *k* = 3, 5, 6, and 7, I write: *n* = 4(3) = 12, and *n* = 4(6) = 24; or *n* = 4(5) + 2 = 22, and *n* = 4(7) + 2 = 30. The resulting numbers clearly are not primes. Thus, I can categorically say that prime numbers cannot be written as *n* = 4*k*, or *n* = 4*k* + 2. That leaves the other two categories.

So, a prime number greater than 2 can be written as either *n* = 4*k* + 1, or *n* = 4*k* + 3. For example, for *k* = 1 it yields *n* = 4(1) + 1 = 5, and *n* = 4(1) + 3 = 7, both are indeed primes. Does this apply for any *k*? Can I find primes by using this relation? Take another value such as *k* = 11, so *n* = 4(11) + 1 = 45, and *n* = 4(11) + 3 = 47. Are 45 and 47 prime numbers? Well, I know 47 is a prime number, but 45 is not because it is a whole number that can be written as the product of 9 and 5. So, the relation *n* = 4*k* + 1 will not produce prime numbers all the time.

Over a hundred years ago Pierre de Fermat concluded that “odd numbers of the form *n* = 4*k* + 3 cannot be written as a sum of two perfect squares.” He asserted simply that *n* = 4*k* + 3 ≠ a^{2} + b^{2}. For example, for *k* = 6, *n* = 4(6) + 3 = 27, and clearly 27 cannot be written as the sum of two perfect squares. I can verify this with any other value of *k*. But that would not be necessary.

*Friday — May 31, 1793*

… I discovered a bookshop specialized in mathematics, right on the corner of the *quai des Augustins*. The shop was empty when we entered, thus allowing me to browse without curious eyes and questioning stares. What I found is indescribable, a treasure of knowledge neatly recorded in the pages of those volumes. New books written by contemporary mathematicians and exquisite translations of ancient manuscripts, all bound in beautiful leather covers and inscribed with golden letters. I was glad that I brought a full purse and purchased *Oeuvres d’Archim`ede* for 30 francs. It is expensive but I couldn’t let go of it. The book begins with a biographical portrait of Archimedes, then it discussed his memoirs, and it is supplemented with a history of the arithmetic development in Greece.

I don’t remember the walk back home, as I was anxious to return and read my treasure.

**Note:** If you enjoyed these select passages, please visit www.sophiesdiary.net to read more extensive excerpts.

*Study university-level mathematics with online gifted math courses from IMACS! Register for our free aptitude test. Solve weekly IMACS logic puzzles on Facebook.*

Unless you’ve been hiding under a rock for the past year, you’ll have noticed that the campaign to teach kids (and adults) how to code is everywhere you turn. As parents, politicians, and educators debate how to produce more graduates in technology fields, the push to introduce computing at an earlier age gets stronger. For example, MIT’s Lifelong Kindergarten group is collaborating on programming software aimed at kids in preschool to second grade. There are even board books for babies on HTML and CSS! We suspect that such novelties are more for tech parents’ enjoyment.

IMACS believes these efforts are well-intentioned and some, when implemented, will be well-designed. But before you click over to Amazon to buy your little drool monster a book on Web design, IMACS can offer you a few examples of how to introduce computational thinking to children through easy activities that are familiar to you, even if you think you’re computationally challenged.

**Computational Thinking vs. Coding**

This short and informative paper by Jeannette Wing, head of the Computer Science Department at Carnegie Mellon University, explains clearly what computational thinking is and is not. The following excerpted quote is a good summary of the focus of this blog post:

Learning to think abstractly is an essential skill if you want to succeed in computer science. It makes solving problems easier, which in turn makes working on those problems more fun. Notably, students can learn to think like a computer scientist without entering a single line of code into a computer. In fact, our experience in teaching CS is that writing computer programs is trivial for students who first develop computational thinking skills. Let’s see where in our daily lives we can show kids relatable examples to help them make the transition to abstract thinking.

**Stacks and Queues**

In computing, a stack is an object in which data expressions are stored and retrieved in such a way that the first data expression to be stored is always the last data expression to be retrieved. It is an example of a so-called Last-In-First-Out (LIFO) object. The same idea applies to various real-life constructs that young kids encounter, even babies who love board books.

Obviously, you can’t explain LIFO with words to a baby and expect the baby to understand, but you can certainly demonstrate the concept with your actions. Take the classic Fisher-Price Rock-a-Stack, for example. Start with the rings off the cone and then load them on in the intended manner with the blue ring going on first. Try to get just the blue ring off. Can you do it while the other rings are still on the cone? No, you have to take the rings off one by one with the blue ring coming off last.

Older kids can appreciate the same concept with examples they come across in their lives: unloading plates from the dishwasher into the cupboard, setting the table with said plates the next day, selecting a product such as cosmetics from a store shelf, putting said product back if you decide not to buy it. You get the picture.

A queue is similar to a stack in that it is an object used to store data expressions. In the case of a queue, however, the first data expression to be stored is always the first to be retrieved. Queues are examples of First-In-First-Out (FIFO) objects. Kids encounter them every time they go through a checkout line or a drive-thru. Switch that Rock-a-Stack cone for an empty paper towel roll, and you’ve got yourself a baby-friendly queue.

**Sorting Algorithms**

Sorting is one of the oldest problems in computer science. Although the end goal (an ordered list) is conceptually easy to understand, getting there can be complex. Add to that the need for sorting algorithms to be computationally efficient and you’ve got yourself an interesting abstract puzzle.

If your kids are old enough to know or learn how to put words in alphabetical order, then make a project out of sorting the books on their bookshelf. Decide on a sorting key such as title or author’s name. For this example, we’ll use title. For the first shelf, ask your child to try a simple bubble sort. Traverse the shelf from left to right, compare the titles of two books, and swap them if they are in the wrong order. Repeat this process until all books on this shelf are in the correct order.

For the next shelf, you can use a simple insertion sort. Take all the books off that shelf and put them in order one by one in a pile on the floor. Each time that you add a book to the ordered pile, be sure to put it in the right place relative to the books that were previously added.

Now that you have two properly sorted sets of books, you and your child can work together to sort all books. Sounds like a good time to use a merge sort. Move the sorted books off the first shelf into another pile on the floor while keeping them properly ordered and separate from the pile of books from the second shelf. Reshelve the books as follows: repeatedly compare the titles of the two books that are atop the two piles, selecting the one that goes first, and continuing until both piles are exhausted.

**Object Oriented Programming**

An “object” in computer programming is a complex structure containing data fields and instructions. These objects interact with each other to create even more complex computer programs. The beauty of object oriented programming is that you can reuse objects to do common computing tasks without having to reinvent them each time. Over time, programmers can build up a “library” of useful objects.

The following analogy certainly isn’t perfect, but it will help get the point across about these seemingly mysterious objects. If you’re planning an outing with kids, you’ll need a few things to help keep your sanity: nourishment, entertainment, and possibly a change of clothes. So grab three bags and make some objects! In the nourishment object, you’ll probably need fruits, carb snacks, a protein, and beverages. For the entertainment object, how about art supplies, books, sporting equipment, and portable gaming device? Kids are made to get dirty, and the weather may change, so pack a top, bottom, and outerwear in the clothing object. Throw those “objects” in your huge tote “library” and you’re ready to go!

**Think Like a Computer Scientist**

Planting the seeds of computational thinking, especially the ability to think abstractly, is really a matter of recognizing the examples in your life that can be used to foster discussion with your children. Like any new endeavor, remembering to look at events in a computational light takes practice. You might just find yourself thinking like a computer scientist when it comes to solving the data problems in your own adult life.

*Enhance your computational thinking skills with online computer science courses from IMACS! Register for our free aptitude test. Solve weekly IMACS logic puzzles on Facebook.*