My IMPRINT Experience Luiz F. Mendes Computer Science Major Urbana, IL
Background • I was born in Brazil in 1986, but my family moved to the United States in 1990. • We have been living in Urbana, where I attended King Elementary School, Urbana Middle School, and Urbana High School.
Hobbies and Interests • Soccer (playing or watching) • Basketball – specially college basketball • Music • Movies • Chess • Math
The Class – CS 125 • “Introduction to Computer Science” • Basic programming in the Java language, how to use UNIX, and basic principles of computer science such as recursion, algorithm design, and sorting algorithms.
The Internship • Prof. Lenny Pitt and Prof. Cinda Heeren • Goal: Developing an interactive and fun way for children in the K-12 level to learn basic concepts of computer science.
The Solution • Logic Hunt • A game similar to Tetris, but the goal here is to form true logical expressions. Gives students a new way to learn propositional logic.
About Logic Hunt • Programmed in Flash using ActionScript (the programming language for Flash) • ActionScript is very object-oriented, much like C++ and Java.
Closer Look At the Code - Recursion • One of the important steps of the program is to be able to find the largest legal expression that each block is a part of and create an array (collection of cells, very useful programming tool) with that expression. • This is done through recursion. (explanation)
Recursion (continued) • How the process works: • Find the biggest logical expression to the left of the given block through recursion • Find the biggest logical expression to the right of the given block through recursion • Merge them together into one single logical expression
Stacking Blocks • Array to keep track of how far down a block can fall in each column. • Each time a block falls in a particular column, the array entry representing that column will be modified. • Variable to keep track of which column the block is currently on.
Classes and Inheritance • Block • ValBlock • TBlock • FBlock • OpBlock • AndBlock • OrBlock • ImpliesBlock • BiImpliesBlock
What I Learned through IMPRINT • Basic Principles of Computer Science • How to program in Java • Object-Oriented Programming • Recursion and Algorithms • How to use UNIX • Basics of Flash and ActionScript • Interaction with CS Professors