The Mentored Project

Codebase
Berkeley Codebase
Published in
5 min readNov 28, 2018

By Parth Shah, Co-PM of the Fall 2018 Mentored Project

My Story

As a computer science student at Berkeley without prior development experience, it was easy to get lost in my academics and be unaware of what skills were valued in industry. My sophomore year, I wanted to work on building these industry skills, so I joined Codebase in Spring 2018. I spent the semester learning new skills and contributing to the development of a mobile application for Propel(x), a San Francisco startup that matches investors to startups.

Being a Client developer in Codebase, I was challenged to grow my technical skills quickly. However, I thought it would have been so helpful to have a stronger foundation in web development going into the club. This Fall, I wanted to step up and make sure that incoming members had the proper resources to truly succeed on Client projects.

As a result, I decided to co-lead the Mentored Project, a project unique to Codebase that teaches web development to incoming members who have little to no background in computer science.

Having spent this last summer developing curriculum for Codecademy and currently pursuing a degree in education in addition to computer science, I am particularly passionate about CS education. I blended my passion and experiences to co-lead the Mentored Project alongside Bradley Chee, an experienced web developer and former TA for the Web Design Decal.

Planning the Curriculum

This past summer, Bradley and I structured the Mentored Project curriculum in a way that ensured students graduating out of the project would truly understand full-stack web development.

I am a fan of project-based learning, for the best way to learn to code is to simply… code. This pedagogical philosophy guided the curriculum development process.

In previous semesters, the Mentored Project involved building internal tools for Codebase. However, in order to truly reflect our organization’s industry focus, we wanted to restructure the curriculum to include an external client. We planned a curriculum that involved members individually coding a series of mini-projects to learn full-stack fundamentals, along with working together to create a large lesson management tool for the teachers of Ygnacio Valley High School.

The Curriculum in Practice: Mini-Projects

The web is rooted in JavaScript, but most of the developers came into the Mentored Project having no experience with it. Thus, in week 1 of the Mentored Project, members built an interactive visualization that uses p5.js, a JavaScript library for visual interactions. Here are a couple of examples of projects that students completed in a week!

Carolyn Duan’s Interactive Bubble Sort Visualization: https://duancaro.github.io/p5/empty-example/
Bianca Lee’s Interactive Vector Addition Visualization: https://leebianca.github.io/p5-project/empty-example/

After this introductory project, it was time to truly delve into web development. In the next two weeks, members learned React and how to style different components of a website. Here are some examples of their personal websites!

Richard Liu’s Personal Website: https://rrrliu.github.io/personal-website/
Kelvin Jue’s Personal Website: https://kelvinjue.github.io/personal-website-v2/

After creating beautiful websites, it was time to move onto backend (the part of web applications that deals with all the data). Members learned the Express.js framework to create API endpoints and Postgres to create a working database to interact with the API. Through these different mini-projects, such as working with the Khan Academy API, the developers were now able to truly build complete full-stack web applications.

The Big Project

In Codebase, we learn by doing. As the developers were learning these newfound skills of web development through their mini projects, they also worked together throughout the semester to build a lesson management tool for the teachers of Ygnacio Valley High School.

Through learning full stack web development, the Mentored Project created a web application that allowed to teachers to login, view and create classes, add units for those classes, upload lessons for those units, and track student feedback data on those units over multiple years.

Here are some screenshots of what the application looks like right now!

Teacher View of Classes. Teachers can view current classes and create new classes.
Teacher View of Adding Students. Teachers can add students to each class.
Teacher View of Lessons. Teachers can view current lessons and upload new lessons.
Teacher View of Lesson. Within lessons, teachers can take notes on how their lessons went!
Teacher View of Student Summary. Teachers can view how student responses to the questions they provide based on the year students are enrolled in.

Conclusion

It has been an honor to watch these members come into the Mentored Project with limited computer science knowledge and work hard to build the necessary industry skills in software development. Through the various all nighters and endless bugs, they persisted. I can’t wait to see the teachers of Ygnacio Valley High School use our application and I can’t wait to see what the future of Codebase and the tech industry holds for the Mentored Project developers.

Mentored Project working in Moffit at 4 am
Mentored Project takes on CalHacks
Mentored Project goes swimming
Mentored Project goes to La Note

Thanks for reading! Check out our website and Facebook page to learn more about Codebase.

--

--

Codebase
Berkeley Codebase

Software development @ UC Berkeley — Building a community for meaningful industry impact. https://codebase.berkeley.edu/