Wolfram Computation Meets Knowledge

Wolfram Summer School


Michal Sadowski

Science and Technology

Class of 2017


Michal is a master’s student in biophysics and bioinformatics at the University of Warsaw, Poland, and works in the Laboratory of Functional and Structural Genomics at the Center of New Technologies, University of Warsaw—a research group focused on applying computational methods to study the three-dimensional structure of the human genome. He is currently working on finding the link between the emergence of structural variants (including deletions, duplications, etc.) in the human genome and structural changes in the 3D genome organization and the influence of these on the regulation of gene transcription. He is also interested in philosophy. He was originally studying human sciences but moved to exact sciences when he realized that the boundaries of exact sciences are the place where the most interesting philosophical questions are really addressed. Michal used to study Latin as a hobby and be a member of a handball team, and he is still very keen on sports like handball, football and tennis.

Computational Essay

Game of Life »

Project: Construct Programs from Examples

Goal of the project:

Devise a function in Mathematica that, given an example of two lists with one before and a second after applying a certain transformation, finds a function (or a group of functions) performing this operation.

Summary of work:

Due to a very limited time frame, the project focused on finding only individual Mathematica built-in functions performing transformations on lists. A function in Mathematica was implemented that is capable of finding functions that change the order of elements in a list (e.g. Sort, Reverse), change the number of its elements (e.g. Part, Join, Riffle) or modify its elements according to some numerical transformation applied to all of them (e.g. Plus, Power) without changing its structure (other than length). The program during execution may ask for additional input to disambiguate it and find the best matching transformation.

Results and future work:

The devised function successfully finds individual Mathematica functions that perform operations of the types specified above. At this moment, it is not able to recognize transformations that change dimensions of arrays other than their length (e.g. ArrayReshape, Partition) and cannot propose any complex transformation (a transformation performed by more then one Mathematica function applied in a row). The future work will concentrate on adding these functionalities and maybe adding logic rules, enhancing the function search.

Wolfram Summer School | Champaign, IL, USA | July 3 29–July 22, 2022