Categories
Capstone

SWOT Analysis of CS467 Capstone

What is something this course does right?

This course had great pacing, the deliverables each week were very doable. Professor Hedaoo is also an excellent teacher, he made sure that everyone was assigned to the projects they were most passionate about and checked in regularly. He genuinely wants his students to learn and succeed in his classes. For example, our team was struggling with organizing our project and communicating with the external industry team. We decided to schedule an office hours appointment with Professor Headaoo to go over the issues we were having. He was helpful and reestablished the expectations of the course to ease our concerns over us not meeting the requirements of upcoming assignments due to lack of communication from the external team. The TA has also been very understanding with the issues we have been facing and provided constructive weekly feedback. The extra credit in this class is also very generous and much appreciated. Discussion posts are relevant to the course and allows us to participate with classmates outside of our team which is nice.

What are some of the weaknesses for this course?

There are not a lot of weaknesses for this class. I think the course is very flexible, it only requires a minimum of 10hrs a week of work which is reasonable. Professor Headaoo makes it clear that he is not expecting a fully complete and working app/product at the end of the quarter. I guess the only thing with this class is that it is a bit of a slower start than other classes. I don’t mind, but I think we could’ve had more time to research or work on our projects if we were assigned to a project sooner. But overall, no real weaknesses as I am sure it is difficult matching students with the project and partners of their choice.

What are some improvements that this course can implement?

The course is pretty straight forward, so there isn’t much I can think of that could improve the course. When looking at the upcoming assignments for the final deliverables for the course, I would like to have had some examples as to what the professor is expecting. For example, the “Create Poster” assignment coming up requests that we provide a picture of our project in action. I would just like to see an example of a more backend project on a poster since our project is mainly working with DynamoDB and calling APIs. So, we will need to connect with a TA or the professor to better understand how we might show the working project on AWS or DynamoDB.

What are any serious issues that could affect the quality of this course?

I don’t think there are any “serious” issues that could affect the quality of this course. However, it would be helpful to vet some of the capstone projects that are part of an external industry project. Our capstone team was under the assumption that we would be collaborating with an established company that had a more comprehensive codebase. However, we came into a project that did not have a lot of direction. The industry team was a student-lead project and a little unorganized. We were able to get ahead of it and contact the professor as previously mentioned. However, our team was disappointed, we were extremely excited to get to work with an industry project. The mentorship would have been a great asset but it was other capstone/former capstone students working on the project. I am sure that it is of no fault of the instructors, but maybe the capstone website could provide a link to the industry project in order to gauge the overall progress of the application.

Categories
Capstone

Learning a New Language: TypeScript

After the Betchya team learned that AWS had deprecated the Go 1.x managed runtime, we quickly shifted our focus to learning TypeScript. This transition would also come with the benefit of enhanced productivity as we have experience with JavaScript. However, that is not to say that this learning experience was not met with unforeseen challenges!

Our team had originally preferred TypeScript over Go in the initial planning of our lambda function. We were excited about the overall fewer runtime errors and an overall more maintainable codebase. I was also excited about the opportunity to expand my skillset and elevate our project’s efficiency.

Set of Challenges: Setup and Configuration

My first hurdle into my journey with TypeScript was the environmental set and configuration in Visual Studio Code. The ‘tsconfig.json’ file was a bit of a puzzle at first. While the learning curve with TypeScript was steep, each obstacle offered a valuable lesson.

1. Environment quirks:

My initial program written in TypeScript was a simple ‘Hello World’ program – a rite of passage for any new language. I wanted familiarize myself with TypeScript’s compiling process and also ensure that my development environment was correctly set up. However, compiling and running my program was not an easy process.

Despite the many online resources on TypeScript, I found that the instruction on executing the program within Visual Studio Code were not as clear cut as I had hoped. My preference for PowerShell in VS Code led to some unexpected difficulties in compiling and running my TS program. The error message originally produced in the terminal was not very descriptive as seen here:

However, facing new obstacles and ambiguous error message are part of the learning process! I immediately took to online forums, documentation and the TypeScript community for guidance. My solution was rather simple and quite embarrassing once I figure out why my program wasn’t compiling/running. My terminal is supposed to be set to Bash not PowerShell! This experience working with TS, though somewhat embarrassing, reinforces the idea that the path to mastering a new language is often paved with unexpected challenges!

2. Configuring ‘tsconfig.json’:

Upon viewing the tsconfig.json file, I was very unfamiliar with many of the options commented throughout the file. However, I decided to continue with coding my program. When I finished with my program, I compiled in the Bash terminal and came across this error message.

Thankfully, the compiling error message was a little more descriptive this time! I was able to uncomment the ‘lib’ compiler option and include the suggested ES2017. Now, the ‘lib’ option expects an array so my ‘lib’ option now looked like this.

Once I resolved that error message, I compiled the program once again in hopes of finally running my program. However, I was met with another compiling error!

I am rather thankful that the error messages are very straight-forward. For the ‘console.log’ and ‘console.error’ methods to work, I needed to include “DOM” in the ‘lib’ array as well. My ‘lib’ option now looked like this at the end.

After these error messages were resolved, I was able to successfully compile and run my program! After these hiccups, I now have a much better understanding of tsconfig.json and its configuration options!

Lessons Learned and Moving Forward

In conclusion, my journey into the world of TypeScript, was met with some unexpected challenges but it was an immensely rewarding experience. From the initial setup and configuration hurdles in Visual Studio Code to the nuanced understanding of ‘tsconfig.json’, each obstacle was a crucial learning opportunity. I think my experience highlights the importance of perseverance and willingness to embrace silly mistakes. This journey has not only expanded my technical capabilities but also reinforced the value of adaptability and continuous learning. Looking forward, I anticipate a path filled with opportunities for further learning, personal development and more rewarding challenges that will undoubtedly enrich my journey as a software engineer.