Alsion Student Programming Showcase

By Dmitry Pleshkov

Everyone has heard of Saberchat, the epic communication platform developed by a handful of student programmers here at Alsion. Saberchat isn’t the only project people have been working on however. For this article, we asked four Early College students to share the programming project they have been working on extracurricularly. 

Kabir

Url: https://cdn.discordapp.com/attachments/512757801680896011/911489833950642186/unknown.png

FindYourBird is a bird identifier targeted for amateur ornithologists which I have been developing for the last few years. It includes functionalities for looking up profiles of different birds by name, identification through various characteristics, and easy-to-understand blurbs.

The motivation came from my fascination with applying my programming skills to other interests of mine, such as ornithology (identifying and studying birds). Developing the site has become a learning experience for me in both areas. Right now, I’m using it as a tool to teach Bay Area elementary schoolers the fundamentals of bird identification.

I’ve developed FindYourBird with EJS, Node.js and CSS, and currently host it through the cloud platform DigitalOcean. You can check it out at https://www.find-your-bird.org/. If you are interested, you can also look at some of my source code through GitHub, at https://github.com/KabirSamsi/find-your-bird.

https://upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Sudoku_Puzzle_by_L2G-20050714_standardized_layout.svg/1200px-Sudoku_Puzzle_by_L2G-20050714_standardized_layout.svg.png

Computer Science is all about problem-solving and puzzles – from things as simple as guessing a number to optimizing neural networks. Learning how to approach such problems is critical to being a good programmer.

With this in mind, I built a simple Sudoku Solver as a tool to teach this to my students at the HackHighSchool Program – the fundamentals of approaching a problem and developing an algorithm to solve it.

The program is completely developed in Python due to its easy readability, implementing libraries like Numpy to perform certain operations. You can check out my code through GitHub at https://github.com/KabirSamsi/Sudoku-Solver.

Josh

https://cdn.discordapp.com/attachments/658170261497184257/911494536935661578/unknown.png

https://cdn.discordapp.com/attachments/658170261497184257/911494536935661578/unknown.png

Lots of movies, videos, and video games need specific sound effects, and lots of them. Unfortunately, pulling from an established sound effects library isn’t always perfect for the job. Can you imagine what Portal would be like if the portal gun sound was just the sound of the normal gun? Giving people the ability to create their own sounds for their own project allows them to bring their worlds to life in a very important way. Professional sound designers use music software, because they allow multiple sounds, real and digital, to be combined into a new sound. However, because these software usually come with a lot of unnecessary and cumbersome features, people have taken it upon themselves to make apps specifically for sound design, like sfxr.  Unfortunately, these programs are typically small and don’t give the user a lot of control. My software, “whaaam” (named after a cool sound), is designed to be the perfect in between. It has a minimal interface but powerful features designed to bring popular sound design tools seen in popular audio software to an audience who may not be well-versed in these systems.

Whaaam is open-source under the GNU public license, so anyone can use it for free (forever) and modify the code. It runs on the internet as a web app. It is built using Svelte, which is a system for making quick, clean, web applications. That means it’s programmed in HTML, SCSS (an extension of CSS), and JavaScript. However, whaaam also needs to do audio processing, which is typically hardware intensive. This cannot be done in JavaScript, because it’s an interpreted language, which makes it very slow. Instead, whaaam uses the Rust programming language, which runs in the browser via WebAssembly, a technology for writing high-performance code in the browser.

Alex

https://cdn.discordapp.com/attachments/512757801680896011/911499861361328158/unknown.png

Imagine an app, where as long as one has thumbs, one can learn AI. That is the goal that our team at AI Camp aims to bring. Conceptualized by Michael, AI Camp’s founder, we have since then gathered a dedicated team of 14-17 year-old developers and designers towards making the app a reality. 

More specifically, the app will provide free and concise lessons about AI targeted towards a younger age group, though anybody interested can learn from it as well. First, Michael outlines the curriculum, the designer visualizes the app (via Figma), and our team of developers build it (with React Native). Regarding my own role, I am one of the head developers responsible for building the app. 

The app is now officially on the Apple Store and the Google Play Store. Currently, only the first lesson is available, which teaches general concepts in face detection with a commonly used face detection algorithm. The second lesson is being finalized and will follow soon (or maybe even launched by the time you’re reading this). 

Feel free to download the app and give it a try (just search “AI On Thumbs”). Leaving a review (that is hopefully positive) will help a lot in getting it out!

Sidd

https://mma.prnewswire.com/media/1223481/Encora_Logo.jpg?p=facebook

I’ve always enjoyed programming as a hobby, but there was a point at which I got bored of making my own projects. I wanted to contribute to something more significant that would actually get used. This past summer, I finally had the opportunity to put my skills to use in a real work environment when I got an internship at Encora Technologies. 

Encora is a company that builds websites, apps, and software for clients ranging from new startups to major international corporations. During my time as a software development intern, I got to work on front-end web development, mostly using a JavaScript library called React. I built dynamic and responsive web components that could be reused across multiple webpages to properly display information and store data efficiently.

Regrettably, I had to leave my internship due to increased stress from my academics, but I’d say it was still a very valuable experience for me. I would encourage anyone else who is interested in software development to pursue an internship opportunity because, in my opinion, the best way of learning is by working on real-world projects.