Recap: NaijaCoder 2023 Summer Camp

The 2023 iteration of the NaijaCoder summer camp is now complete. Congratulations to the class of 2023 students. As one of the instructors, it was a nice experience to create a syllabus for the advanced high school students.

The in-person program ran from August 7 up to August 18, 2023 in Abuja, Nigeria. The board and head of schools of Lifegate Academy in Abuja was kind enough to allow us host the program within their premises, equipped with a computer lab that had enough facilities for every kid in class.

First Week

During the first week, we introduced the students to different variable types, logical statements, and loops (for/while/do-while). Then we spent some time on how (classical) computers represent information. Most of our sessions were spent on exercises to further reinforce any concepts introduced. Then we discussed the similarities and differences between the different searching algorithms, with a focus on implementing binary search from scratch in Python. Towards the end of the week, Dr. Lekan Afuye gave a fantastic lecture on the use of algorithms to design and test computer chips.

Second Week

The next week was more hands-on. Using Google colab, each student had to implement solutions to Python puzzles and test out their solutions on a few test cases on the computer. We also discussed the time and space complexity of computer algorithms, focusing on the basics of the big-O notation. Alida Monaco gave a presentation on how computer programming can be used to analyze or mitigate climate change impacts. It was a fascinating talk! We also spent some time on sorting algorithms and on analyzing the complexity of insertion/merge/bubble sorts. Of course, the students had to implement and test the algorithms on the lab computers. Also, using their already-implemented sorting algorithms they had to solve a few puzzles. Towards the end of the week, EducationUSA, from the U.S. Embassy in Abuja, gave a presentation and shared resources on how the students can prepare for applying to U.S. colleges. The presentation was superb! We concluded the week with a quiz. Every student got a participation certificate but a student got a perfect score on the quiz and he received a significant cash prize.

Conclusion

The NaijaCoder team is leaving no stone unturned in ensuring that participants, parents, and tech enthusiasts are well-connected and informed throughout the camp. The organization’s social media presence on platforms like Twitter, Instagram, and LinkedIn serves as a vibrant hub of information and updates.

Beyond equipping young minds with technical skills, NaijaCoder’s summer camp also serves as a platform for building a strong and supportive tech community. Participants get the chance to network with like-minded peers, mentors, and research and industry professionals, fostering a collaborative spirit that can have a lasting impact on their journey in the tech world. This is the beginning of a new and exciting journey for the class of 2023 and it is my privilege to be a part of this story. Looking forward to the NaijaCoder 2024 camp.

On Creating a Syllabus for NaijaCoder

The NaijaCoder (http://naijacoder.org) team has come up with a syllabus that we hope can touch on different aspects of computer programming and, more importantly, inspire the students to continue learning on their own.

Daily Checkups

The instructors plan to give out daily exercises to the students to make sure that they understood and, sufficiently, digested the material. The emphasis will be on the quality of the syllabus to help the students (given their varied backgrounds) and not the quantity. The main reference textbook, for now, will be “Introduction to Algorithms” by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. At the end of every day/week, the instructors plan to send out a survey so that feedback can be incorporated into future versions of the syllabus.

Motivational Videos

When I was in high school, I would get bored easily if I didn’t understand why I should learn a concept or tool. So the instructors plan to motivate some programming concepts with some videos by creators (e.g., see this video by Marian Croak sharing her pioneering work on Voice over Internet Protocol https://www.youtube.com/watch?v=OignKQOJT-U).

Fun

This might be the most important part of the program! We hope they can have fun and that some of them could end up creating a video game in some programming language. In addition, daily group lunches could provide some nice camaraderie.

Comparing Two Books on Quantum Computation

Recently, I have been fascinated by a computer science problem that has to do with solving a system of linear equations given memory constraints. One could also consider what constraints you can impose when the physical medium is changed. i.e., instead of representing a computer using bits, what happens when qubits are used instead? What tradeoffs result?

A quantum bit (qubit) is the basic information unit in a quantum computer. Around 2018, a took a class at Harvard about quantum computing and learned a lot. But I have since moved on to other topics and now find myself in need of a quantum computing refresher. Here are two books I purchased that seem to have a good amount of background material on quantum computing and that I have enjoyed thus far: “Classical and Quantum Computation” by A. Yu. Kitaev, A. H. Shen, and M. N. Vyalyi (2002) [1] and “Quantum Computing: A Gentle Introduction” by Eleanor Rieffel and Wolfgang Polak (2011).

The first book “Classical and Quantum Computation” seems to be an extensive and comprehensive textbook that delves into both classical and quantum computing. It offers a rigorous treatment of the mathematical foundations, algorithms, and complexity theory of these computational paradigms. Part 1 of the book is dedicated to classical computation, part 2 to quantum computation, and part 3 to solutions to problems in earlier parts of the book. My personal opinion is that the intended audience of this book are readers with a strong mathematical and computational background.

The second book “Quantum Computing: A Gentle Introduction” takes a more accessible and approachable route to introduce the world of quantum computing. The book might cater to readers with limited knowledge of advanced mathematics and physics, presenting the core principles and applications of quantum computing in a clear and intuitive manner. This book was written for a broader audience and might be a gentle entry into the subject.

Seems like you can’t go wrong with either book but someone recently asked me about the two books and I wanted to write up my initial thoughts while briefly juxtaposing the two books.

References

[1] A. Yu. Kitaev, A. H. Shen, and M. N. Vyalyi. 2002. Classical and Quantum Computation. American Mathematical Society, USA.

[2] Eleanor Rieffel and Wolfgang Polak. 2011. Quantum Computing: A Gentle Introduction (1st. ed.). The MIT Press.