Marcos Nespolo
5 min read

ACAT, my first project, 14 years later

ACAT is a step-by-step trigonometry solver in C# built in 2011 for IFPR's first Science Fair. The focus was showing the work instead of just printing the answer. It won 1st place in the Innovation category.

C#Windows FormsFirst projectIFPR

ACAT is a step-by-step trigonometry solver I built in 2011, in my first year of the integrated technical program in Informatics at IFPR, for the campus's first Science Fair. It won 1st place in the Innovation category and was the project that got me into the AVIAO research group the next year.

The stack choice

We were learning the basics of C in class (printf, scanf, loops). When I heard about the Science Fair, I decided to compete and to learn something that would give me a well-built graphical interface: I knew that completely changed the user experience and could give me an edge in the competition.

I went looking for something that could draw a window. I'd never heard of GUI frameworks. I came across C# and Windows Forms while looking for options, and taught myself enough to build the thing I had in mind: a trigonometry helper that didn't just give the answer, it walked through the steps.

What ACAT does

The app has five tabs in a left-hand menu. Three are direct calculators (area, volume, angle table). Two are the parts I actually invested in.

Triangle solver

The centrepiece. You fill in whatever you know about a triangle (two sides, an angle, whatever) and ACAT decides which law to apply (law of sines, right-triangle ratios, or law of cosines) and fills in the rest.

Triangle solver

The cheat sheet at the bottom of the screen wasn't just decoration. I wanted students looking at the screen to see which tool was being used on their input, not just the answer. The triangle drawing rescales as the sides change.

Bhaskara, step by step

The other one that got real attention. You enter A, B, C from a quadratic Ax² + Bx + C = 0, and ACAT shows the entire derivation:

Bhaskara step by step

A = 2
B = 3
C = -1

Δ = b² − ( 4 · a · c )
Δ = 3² − ( 4 · 2 · -1 )
Δ = 9 − ( 4 · -2 )
Δ = 9 + 8
Δ = 17

X¹ = ( -b + √Δ ) / 2 · a
X¹ = ( -3.00 + √17.00 ) / 2.00 · 2.00
X¹ = ( -3.00 + 4.12 ) / 4.00
X¹ = 1.12 / 4.00
X¹ = 0.28

Showing the work mattered. A black box that prints x = 0.28, x = -1.78 isn't a teaching tool. It's a worse calculator.

The student grabs the answer and moves on, without understanding that Bhaskara was applied there, without seeing where the discriminant entered, without connecting the formula to the number on the screen. The full derivation exists precisely to force that connection while the answer happens. That's the principle ACAT carries across every tab: the step-by-step is the product, not the final answer.

The three calculators

The other three tabs round out the app:

  • Area: square (b × h), triangle (b × h / 2), circle (π · r²).
  • Volume: cube, sphere, cone, cylinder, with the formula shown next to the result.
  • Angle table: pre-computed sin/cos/tan from 1° to 360°.

Area calculator

Volume calculator

Angle table

The Science Fair

I competed against students from upper years of high school and from the university programmes on the campus. ACAT won 1st place in the Innovation category.

What landed was that a first-year high-school student had taught himself a language outside the curriculum to solve a presentation problem. Everyone at the workshop assumed C was the constraint. I'd treated C as the input and gone looking for the right tool.

AVIAO

Because of ACAT, the math professor, who had a side interest in programming and AI, invited me into a research group he was putting together: AVIAO, Ambiente Virtual Inteligente de Aprendizagem Orientada (Intelligent Virtual Environment for Oriented Learning). There's a separate post about it.

The ACAT .exe still launches on Windows. It's unsigned (it's from 2011), so SmartScreen will warn. The source isn't on GitHub; this project predates my Git habits by years.

Download ACAT.exe · Windows · ~1 MB