Wolfram Computation Meets Knowledge

Wolfram Summer School


Alina Matyukhina

Summer School

Class of 2014


Alina is an undergraduate student at Donetsk National University in Ukraine, majoring in mathematics and information technology. She recently made the trek to Canada, where she studied mathematics and computer science at the University of Toronto based on a grant from the government of Ukraine.

Since high school Alina has been seriously engaged in research activities. Her research interests are number theory and cryptography, robotics, complex analysis, and the Pompeiu problem. She has written several research papers already. The project “Divisibility of Recursive Sequence Elements” is recognized by the Yale Science & Engineering Association (USA) as the best discovery in math and CS in the Intel competition.

In 2013 Alina was the youngest participant at the Heidelberg Laureate Forum in Germany. Selection was done by the representatives of the American Mathematical Society and Association for Computing Machinery.

Alina, who has a passion for solving tricky math problems, won first place at the International Mathematical Olympiad, organized by the presidium of the Russian Academy of Sciences in 2013.

She never misses a chance to explore something new and code. She worked in the applied mathematics group as a research assistant for the project “Applications of Number Theory to Wireless Communications and Security” at Technology Academy, Finland. And then she got a diploma of excellence in computer science from Infomatrix in Romania.

In her spare time Alina enjoys playing the piano and ballroom dancing.

Project: Creation of New Mathematica Function: FindListFunction[]

For our project we created a function, FindListFunction[], which is roughly analogous to FindSequenceFunction[].

FindSequenceFunction[{1, 1, 2, 3, 5, 8, 13}, n]


Instead of taking a list of numbers, FindListFunction[] takes a list of input and output pairs, and returns a (hopefully simple) function that takes each input and produces the corresponding output.

For example, if our input->output pairs are:

{1} -> {1}, {a,b} -> {b,a}, {y,x,z} -> {z,x,y}

our program will return function Reverse[].

Or, if our input->output pairs are:

{1,2}->{1,{1,2}} and {a,b,c}->{a,{a,b,c}}}

FindListFunction will return a function defined by:

f[list_] := {list1?, list}

FindListFunction[] (and FindSequenceFunction[]) are very useful for Wolfram Mathematica programmers. It can be used both for prediction (guessing the output for a novel input) or for “programming by example”: helping a programmer find the code they need to do what they want, thereby reducing time spent coding.

Favorite Outer Totalistic r=1, k=2 2D Cellular Automaton

Rule 55555