CS-III ISP Journal




Neeraj Gogate

Allen STEAM Center

Computer Science III

David Ben-Yaakov

01-May-2023

Plans

  • Gaant Chart
  • Implement: Issue 93

    Need to test against all the CSI missions to make sure it works for all of them.

  • Implement: Issue 45

    Getting the Javascript Connected to the C++ Side of the Code.

Significant Achievements

SA

(Not all the code because it would be too many screenshots)

SA5

Technical Challenges

The node server is not working properly with Codermerlin, as I keep running it on localhost, but I am unable to find the URL where it is running from.

24-April-2023

Plans

Significant Achievements

Technical Challenges

I was unable to finish testing against all the missions, as I ran into numerous bugs while testing them, thus I am holding off from committing until next week when I can fix all of them.

17-April-2023

Plans

Significant Achievements

SA

(Not all the code because it would be too many screenshots)

SA1 SA2 SA3 SA4

3-April-2023

Significant Achievments

SA1 SA2

Technical Challenges

This week I worked on working with conditionals and function calling. Function calling wasn’t incredibly difficult since it was a very similar system to function definitions, however, conditionals provided were more difficult since parenthesis cause problems with parsing through the string and they are needed for the logic to work out. I ended up just continuously looping through the string and appending parts before and after the operators, but I need to do some more rigorous testing to see if it works for most cases.

Scheduling Challenges

We had a meeting on Monday that everyone was able to attend, and tasks were delegated at that meeting. We are nearing the end of the project (we need to end by the start of May because of AP exams), so we need to speed up a bit on the required tasks so we can get all the required issues done.

Interpersonal Challenges

Once again, we haven’t had any real interpersonal issues, as we all get along and have no issues with getting people to work.

27-Mar-2023

Significant Achievments

SA1 SA2 SA3

Technical Challenges

I started creating the framework for functions this week. I mainly focused on getting the constructor done, but I also made some structures that would be useful later (such as having a parameter list that is contained within the function, rather than in global space).

Scheduling Challenges

The front end is taking a bit longer to create than we had hoped, so we may have to speed it along in the next coming weeks so that we can complete the project. The Back End also needs to speed up a bit so we can have adequate time to bug test.

Interpersonal Challenges

Once again, we haven’t had any real interpersonal issues, as we all get along and have no issues with getting people to work.

20-Mar-2023

Significant Achievments

SA

Technical Challenges

The main technical challenge this week was getting the spaces to work in the string for the Scope. Because I was adding them to empty strings, the tabbing wasn’t appearing to change as the strings would remain empty. To resolve this, I created a string with one character, and appended spaces to that. I then removed the character, so that it would not appear in the final code. This made it so the spaces were not considered empty, and they were able to appear.

Scheduling Challenges

Back End had an informal unplanned meeting in the breakout rooms with us splitting up tasks and deciding who is going to do what over the next couple of weeks.

Interpersonal Challenges

Once again, we haven’t had any real interpersonal issues, as we all get along and have no issues with getting people to work.

13-Mar-2023

Significant Achievments

SA

Technical Challenges

This week I was mainly working on “for loops” and “repeat while loops”. Repeat while loops did not pose any problems, as it was incredibly similar to while loops. On the other hand, for loops were difficult to code with there being many different components and many different ways to write them. I eventually got them done, but there are some bugs with them breaking when placed with a variable.

Scheduling Challenges

We have been unable to have a meeting due to people’s limited availability this week.

Interpersonal Challenges

Once again, we haven’t had any real interpersonal issues, as we all get along and have no issues with getting people to work.

27-Feb-2023

Technical Challenges

Due to the shortened week and the closeness to the break, we did not get as much work done this week. There were small technical issues with the website UI breaking, but there haven't been any issues otherwise (the website breaking is an easy issue to fix, just no one wants to do it at this moment.

Scheduling Challenges

There were no meetings for this week, so there were no scheduling issues.

Interpersonal Challenges

Once again, we haven’t had any real interpersonal issues, as we all get along and have no issues with getting people to work.

20-Feb-2023

Technical Challenges

The main technical issue was creating the system for parsing through special outputs in the code converter. I was able to create the system for doing that, however, it is not incredibly advanced yet and will be progressed throughout the coming weeks. Right now it has basic functionality with string size, but the code needs to be refined further. It makes a mistake with the type, defaulting to double, however, I will make a system to fix it later.

Scheduling Challenges

There were no meetings this week due to time constraints.

Interpersonal Challenges

Once again, we haven’t had any real interpersonal issues, as we all get along and have no issues with getting people to work.

13-Feb-2023

Technical Challenges

The main two technical issues were figuring out how to change the system of reading the input and getting the c++ code to connect with the front end. The main reason for changing the system of input reading was that it was becoming a far too confusing and complicated paradigm and needed a revamp to be made easier. To do so, I changed the system from separating on spaces to just removing them altogether, as the code would function easier if we did so. Then getting the c++ file to connect was a whole other issue, but it turned out to be easy with node.

Scheduling Challenges

We had a meeting on Wednesday in which we discussed the presentation and made the poster. We ended up getting everything done in that meeting, so no major problems this week.

Interpersonal Challenges

I was very sick this whole week, so I had trouble with motivation the whole week, but I ended up working on it as much as I could. (This wasn’t really an interpersonal problem, I just wanted to complain about being sick).

6-Feb-2023

Technical Challenges

I didn’t really have technical issues this week beyond the usual bugs that occur. I am going to have to figure out how to connect the Javascript file to the C++, and I’m not entirely sure how I’m going to do that, but there is likely a library in Node.js or React.js that could do it for me.

Scheduling Challenges

The biggest scheduling issue with the team this week is that we weren’t able to meet this week due to being too busy. Other than that, for me personally, I was sick for over half the week, so my work output has been severely reduced. Because of this, I am going to have to work extra hard to get a minimum viable product out and possibly reduce the functionality even more.

Interpersonal Challenges

Once again, we haven’t had any real interpersonal issues, as we all get along and have no issues with getting people to work.

23-Jan-2023

Technical Challenges

The main technical challenge was figuring out the structures for how to translate variables. To make the code cleaner, we decided to split the variables into their own class and file. To do this, we had to make an abstraction for how variables would function and since it isn’t a real world object, doing so was slightly harder than normal objects. We eventually figured it out through treating ideas such as types as Enumerations, but it ended up taking a while, and we are still working through the bugs.

Scheduling Challenges

The scheduling issue this week had to do with two members of our front end team not having editing rights for the repository, which meant they couldn’t push any of their changes and had limited progress on the front end side. Because of this, we had to push back the Front End by a week, however, this isn’t a major issue, as the front end doesn’t have to be incredibly developed for the final product. Currently, to alleviate the issue, our front end developers have been working on an external repository, so that they can make some progress together.

Interpersonal Challenges

Once again, we haven’t had any interpersonal issues and have been making progress on the project.

16-Jan-2023

Technical Challenges

I didn’t have extreme technical challenges, as most of the code this week was relatively simple and easy to write. The only real problem I am having is that I am writing code that would be easily understandable by the other people reading my code. I am probably going to refine my function and variable names over the weekend, and also add some comments so that there is a good base for the code of the project.

Scheduling Challenges

The main scheduling issue is trying to get a meeting organized between all of the members, as we all have a large amount of responsibilities outside of school that prevent us from being able to meet most days. I decided that as product manager, it would be a good idea for me to at least help facilitate communication in this period of time, as the product is at the point where its concept is still being ironed out. Because of this, I decided to talk with the two team members who I did not know in a meeting, while talking with everyone else individually, which ended up working out.

Interpersonal Challenges

There weren’t any real interpersonal challenges this week, as we all seemed to get along pretty well, and haven’t had any real issues with either communication or productivity.

9-Jan-2023

Technical Challenges

The primary technical challenge I faced was trying to come up with a way to structure our code without actually writing any code. I am the type of person who immediately starts writing code with no real plan while fixing issues if they come up, however, in a group setting, this mentality can cause other people to be confused and not understand your code. Because of this, I have been writing pseudo code for the final product, so that we will have a plan to work off when we start coding next week and throughout the project. This has been difficult because it is harder to evaluate whether logic will work when there isn’t any, making the process slow and somewhat tedious. To alleviate this, I have been going through the big picture first and then progressively defining more and more of the structures as the documentation progresses.

Scheduling Challenges

The main scheduling issue has been the fact that we are in different classes, as it makes it hard to communicate about problems with the assignment we run into. This makes it take longer for problems to be resolved, as well as makes communication harder. We haven’t ironed out the issues yet, but what we’re likely going to do is meet at the start of every week and then assign tasks at that meeting, while communicating through text for the rest of the week (with emergency meetings if necessary).

Interpersonal Challenges

There weren’t any real problems on the interpersonal side, as we had no major arguments or issues with each other. The only real problem was that at the beginning of the week, communication was split between email and Discord, as it was unclear what communication platform we were using. This would be solved, however, as we all moved to Discord and were easily able to communicate.

2-Jan-2023

Development Engineer

Development Engineers are responsible for designing the systems that the project will be based on. In Software Engineering, Development Engineers are typically the ones who do the brunt of the programming, as they write and debug the code of the software. They typically collaborate with the QA Engineers to determine any problems that may arise during development, and how to best fix them (Glassdoor, n.d.).

I feel as if this is the role I can fit into quite well, as it is the most straightforward role possible, with it only requiring working on the code for the project with the team. The main issue that would arise with this role is working through bugs, as bug fixing would be a large part of the time spent working in this role. To reduce the time spent bug fixing, I would likely collaborate with the other members of the group to try to quickly fix the bug, as it is typically easier for others to see your mistake than it is for you.

QA Engineer

QA Engineers, or Quality Assurance Engineers, are responsible for testing the quality of software prior to release. They create and perform manual and automated tests on the programs to ensure that they are free of bugs and fulfill the requirements of the software. These tests are performed throughout the development process, and if any bugs are found they are reported to the Development Engineers who are responsible for fixing them (Soft, 2019).

While I believe that I could handle this role, I am not incredibly inclined to have it as my primary role. Manually sifting through other’s code is often difficult, as people often have different logic patterns and notations when writing code, making it difficult to interpret other’s code. To prevent this it would be best to set a list of guidelines for writing code on the program (variable naming convention, nesting patterns, comment guidelines, etc.) so that the code is more easily read and debugged.

Project Manager

A Project Manager is the person who plans, organizes, and manages the flow of the project. They work closely with the Product Manager to ensure that the true vision of the product is fulfilled and to keep the project running smoothly. They also oversee the Development Engineers to ensure that the project is on pace, as well as the QA Engineers to learn of any problems that may arise (“Product manager vs project manager”, n.d.).

Project Manager sounds like a role I can be well suited to, as I think my leadership experience in the past has made me able to manage and work with other people quite easily. The only real issue I can see occurring is that everyone’s schedules are too booked up, as the entire team is composed of juniors and seniors. To combat this, I would likely try to leave a very simple task at the end of the project and give it an ample amount of time, so that even if we are behind schedule we will still be able to finish the project long before the deadline.

Product Manager

The Product Manager is the person who defines and determines what the final product is. Throughout the development process, they are the one in charge of any major changes to the product and act as the driving force of updates. They work with both the Development Engineers and QA Engineers to ensure that the project bounds are feasible and to see if any improvements can be made (“Product manager vs project manager”, n.d.).

Product Manager is the role I believe I am most suited to, as I am the one who originally came up with the initial concept of the product a while before the introduction of the ISP concept. As such, I already have a plan for how the product will be implemented and made, I just need to find a way to communicate my ideas to the team in a way that is succinct and also clear. To do this I will likely have to create detailed documentation of my plan to create the application, and then create a more summarized version of the documentation to give them the initial barebones plan.

Release Engineer

The Release Engineer is concerned with the release of the product and the mechanics behind the release. They work closely with the Development Engineers and QA Engineers to ensure that the software is ready for release and that the release is smooth. They also troubleshoot any bugs or issues that arise whenever release is near, and manage the pipelines for Building and Development (Plutora, 2021).

Release Engineer does not sound like it would be a good fit for me, as I believe that I am too inexperienced with GitHub to be truly proficient at it. While I have a basic understanding of how GitHub works and I know a little bit about it, I have nowhere near enough knowledge about its mechanics to be responsible for a release. If I had to be release manager, however, I believe I could do it with enough research, I would just need to backup everything to make sure I do not mess it up.

References

Plutora, W. (2021, November 23). The release engineer's job. Plutora. Retrieved January 6, 2023, from https://www.plutora.com/blog/what-is-a-release-engineers-job

Product manager vs. project manager: What's the difference? Coursera. (n.d.). Retrieved January 7, 2023, from https://www.coursera.org/articles/product-manager-vs-project-manager

Soft, A. (2019, October 11). Qa engineering roles: Skills, tools, and responsibilities in a testing team. AltexSoft. Retrieved January 7, 2023, from https://www.altexsoft.com/blog/engineering/qa-engineering-roles-skills-tools-and-responsibilities-within-a-testing-team/

What does a development engineer do? role & responsibilities - glassdoor. Glassdoor. (n.d.). Retrieved January 7, 2023, from https://www.glassdoor.com/Career/development-engineer-career_KO0,20.htm

GitHub Logo