X-Camp's blog

By X-Camp, history, 3 years ago, In English

Dear X-Camp friends, X-Camp has cultivated nearly 20 USACO Platinum division contestants in the past 5 years since its establishment. However, their codes and our teaching content have never been made public.

Since 3 X-Camp students accessed US Camp this year, there has been more inquiring about how exactly the top-level class work, and what are our students learning in class these days? Please follow me to find out more. It’s also time for you to vote — which code do you like the best?

This week's teaching content: Fast Fourier Transform

The Fast Fourier Transform(FFT) is one of the most important algorithms in the field of signal processing and data analysis. It reduces the complexity of computing the Discrete Fourier Transform(DFT) from O(N2) to O(NlogN) by exploiting the symmetry of the model itself.

Interestingly, this algorithm appears in many informatics competitions because of its excellent properties and wide range of applications. It is one of the most important knowledge points in number theory of competitions. Specifically, the algorithm helps players quickly compute convolutions to perform tasks such as generating function solutions, string matching, high-precision multiplication, polynomial multiplication, etc.

How is it taught? In a Way Where No Standard Answer is Provided.

So how is such a difficult algorithm taught? To be honest, if the standard code is given to the students directly, they tend to dig less into the algorithm without getting to the essence of it.

During the classes, the teacher only teaches the methodology without providing any guidance on code implementation, and encourages students to complete the implementation of the algorithm independently and add necessary comments. This will allow students to understand the algorithm thoroughly and develop good coding habits.

This knowledge point is indeed not easy to follow. With no access to the standard code, students will need to absorb it by themselves and add quite some comments. So here are all the codes!

Links to Codes A. https://www.ideone.com/yEkBY2 B. https://www.ideone.com/mo8ZYw C. https://www.ideone.com/MLcdwn D. https://www.ideone.com/rejh0z E. https://www.ideone.com/35iCAi F. https://www.ideone.com/fYB5iv G. https://www.ideone.com/cbyTP4

What are the voting criteria? Like alignment of codes, detailed comments, standardized labeling of variables, and more-we trust your professional judgment.

The deadline will be on May 6th EOD Pacific Time. Click on it and leave your comments on the codes.

  • Vote: I like it
  • +1
  • Vote: I do not like it