By Pranjal Pokharel
Event Coverage Head of The Zerone 2020
Photos by: LOCUS Photography

The instructor points to a certain section of code on the projected screen.

“What did I tell you before? If you have to copy-paste certain blocks of code...”

“We need to use a function”, the class answers in unison.

Well, not in a perfect harmony – some are busy typing furiously, others are asking fellow participants if they completed their assignments of the previous day, while few are scratching their heads, wondering why using the ‘super’ function did not grant them access to the inherited methods from the parent class. To those scratching their heads, a nearby instructor explains that the problem is probably with indentation, something one must be very careful with while working in Python. The solution works and a sigh of relief echoes in the background, adding to the vivid orchestra of the Software Fellowship 2020.

Being the Software Coordinator for LOCUS 2020, Baibhav Bista is heavily involved in the progress of the fellowship, from designing the core syllabus to personally teaching in the lecture classes. To someone who has not even the slightest clue about the fellowship, except some general idea from the title, he says, 'Software Fellowship is an excellent introduction to the art of good programming practices such as Don’t Repeat Yourself (DRY), preparing proper documentation, commenting codes, debugging practices and so on. While the fellowship is mainly targeted towards beginners who haven’t had a good programming experience yet, we also accommodate intermediate-level programmers who are always keen on learning something new that they missed out on during their initial foray into programming."

LOCUS Software Coordinator Baibhav Bista as one of the instructors (sneak peek at the code!)

A simple comparison between the current syllabus and that of the last year speaks volumes. To encourage more participants to apply and actually complete the course, the syllabus was reduced from 20 days last year to 10 days this time around. Since the fellowship is oriented towards participants new to software development, Flask, a popular, extensible and beginner-friendly microframework, is being taught over advanced web development frameworks such as Express and React. That is not to say that the fellowship offers limited options on the programming paradigms explored such as concise information on Software Architecture, Version Control (Git), Database Management, APIs and so on. The cumulative knowledge on all these fields is expected to provide a general road map for the participants to pursue any software-related field in the future, from android app development to a job as a network administrator.

Software engineering is a field with split opinions on the best route to succeed. While some argue that one can learn almost everything about a particular language or framework through the vast library of the Internet, some voice their support for the structured learning curve offered by university curriculum and the discipline it instills. Asked for his opinion on what the students believing the former and self-studying at home might be missing out on, Baibhav replies, “There are two main sources to learn at home–through documentation or through YouTube videos. Unfortunately, sometimes a code that runs on the instructor’s computer might crash on your own, wasting a lot of your time as you try to figure out what went wrong. Here, we have experienced programmers who can quickly help you debug your mistakes and spare you the frustration of having to do everything on your own. Learning in a group also fosters friendly competition; if your friend beside you is moving along the course smoothly, you become motivated to try your best and to not fall behind.”

Similar to how a Machine Learning algorithm constantly makes assumptions, reassesses the model and ‘evolves’ based on a particular logical outcome, the software fellowship also continuously upgrades itself in response to the need of the participants. Since the participants were having considerable difficulty copying the pre-typed code from screen and listening simultaneously, the fellowship team decided to implement live coding. The pace of the lecture slowed down to just the right amount and the participants were found to be more engaged than before. The participants this year are mostly first and second-year engineering students, with three classes being held in the morning and one in the evening. Since the one year gap in experience makes it almost impossible to adopt the perfect teaching style for everyone, the first and second-year students are kept in separate lecture rooms, with the study materials and lecture pace being based on their levels of experience. While the general topics to be covered for a day is outlined by the syllabus, class-specific assignments are given for the participants to complete at home; assignments related to topics covered during the day and the aptitude for programming demonstrated during lecture. On what makes the fellowship different from similar courses available, one can point out the customized learning environment, tailored to meet each participant's needs and expectations.

Overview of a lecture class

Aayush Shah Kanu, 2nd year Computer Engineering Student at Pulchowk Campus, provides his take on the software fellowship - “It is true that second-year students may find the topics repetitive, especially if they've been doing some projects of their own on the side. I myself felt the initial classes on the Python syntax were redundant as I had previous experience writing Python code. However, it isn't like I didn't learn anything new–I was introduced to back-end programming through deployment of live server and Flask itself. Also, the classes related to database management were more effective from my perspective, since it plays a vital role in machine learning in which I'm very interested."

Prashant Tandon, one of the instructors, recalls an interesting problem that became apparent in the first few days - “Initially, we had planned to complete teaching the basic syntax of Python including the concept of object oriented programming within the first two days. But later we came to learn that the first-year students hadn't even had a single C programming class yet. To the majority of them, the fellowship was the first time they had even heard about if-else loops. Thus, we extended the classes covering the initial part of the syllabus and, to compensate for that, provided them with extra assignments. What the students should know is that even if they don't know how to write a simple ‘Hello World’ program, the fellowship will still be useful for them.”

The morning of day six is brutally cold. The rain, continuing through the night, has eliminated any possibility of a sun bask during the leisure break. A student pours tea onto his paper cup but the liquid gets cold after just a few sips. Inside, the icy breeze flows in through the door cracks, continuing its onslaught on the first-benchers who are quivering with cold. Pulchowk Campus may not have had a Steve Jobs or an Elon Musk, but seeing the eager faces of the participants who have dragged themselves out of their comfy beds on this grim day, we can hope. And we will; a hope for a generation of problem solvers and computer nerds to take the world by storm and pave the way for a technologically connected, secure future.

Certificates of achievement!

A part of this article will also appear in the print version of the Zerone Magazine, to be released during the LOCUS Exhibition.

Click on the 'LOCUS Events' tag at the top of this article to read more articles like this.