The start of the term has been going well, and the change from online classes has been easier since i’m more used to it. I will be doing one more MECOP internship from the summer until fall term ends than one more term until I graduate. It doesn’t seem that long ago since I started at OSU as a freshman and I have learned a lot of valuable information throughout my years here. Not only did I further my education, but I was also able to grow as a person and adult by being more responsible and more acquainted with things. While I wish the last year of college could have turned out differently, it was still a great overall experience and one that will hopefully set up the rest of my life. I landed my first internship through the MECOP program last year and coupled with my classes it has made me feel prepared to work in this field. I understand more about what it means to have a highly technical job, and what that comes with. I also learned that since a lot of engineers will have to talk to people that are in different disciplines, learning how to teach people to a certain extent is also key when communicating with people in the company. I also understand that I don’t need to necessarily know the ins and outs of a job, but that being a hard worker that is constantly learning and evolving will help my growth as a professional. It has given me a lot of confidence knowing how much I have learned so far that I could do anything I want post college. I feel hungrier than I ever have before to be a professional and start the rest of my life and coming to OSU has definitely helped in that regards.
This week I wanted to do some research on potential technologies that could be used within our Hinsdale Wave Lab project. As I am tasked to handle the lab computer aspect, I did some research on National Instruments labVIEW. The research consisted of some documentation and YouTube videos to get orientated with the software. It seemed pretty straightforward as the library is programmed to be used on the specific instrumentation. I still need some familiarity with the software, but it shouldn’t be too much of a hurdle at this point. I also looked at some xCode and swift programming. I am used to android studio and making apps for the android platform, but there are a lot of high level similarities between the two and it has great documentation and youtube tutorials. It helps that IOS developing has been a trend lately and a lot of people are doing it. Earlier in the week we worked on the group team design document. It will serve as a living document that we will look back on when developing the system. We need to make sure each part is implemented, and that it meets the standards of our project partner. I’m sure the document will change over time as our needs are shifted, but for the most part everything should follow the design document. We may switch technologies used if we see a better fit for our application, but that’s about it. Now, I am just excited to start developing the system as I feel like we only have a little bit more research to tackle this problem. This project as a whole feels a lot like my internship last summer, which was when I learned the most about being a software developer. I hope to learn a lot during this project to take it into my future projects and tasks.
This week I looked into a few potential technologies that could be used with our project. First off, I looked at some beginner IOS development tutorials as I am more familiar with android studio and would need to learn how to make apps on that platform. It was very interesting to see how apps are built on IOS. It uses its own swift programming language. Swift is a compiled general-purpose, multi-paradigm programming language that is expressive and concise. The other thing I researched this week was writing simple code. It is important to keep your code simple without extraneous code that you do not need. Making it simple not only make it better for scalability, but it is easier to understand from another developer who didn’t work on it. If you have extraneous code or duplicate code, it could make developers wonder why that is there before they realize you do not need it. In code, everything should be designed that way for a reason, so it makes other developers question why that is there before it is obvious to them. Simple code will also cut down on development time and the design decisions will be specific making you think about the design more. My last internship we worked a lot at refining the code that we have, constantly refactoring to make it as simple as possible. All of the code in the system should be there for a reason, and if you decide on implementing it another way, the old implementation should be deleted. Throughout the development process, you should always look back and see if there is a better way to implement that is more intuitive. Chances are, the first time you implement something that you are not familiar with, there will be refactoring needed. Once you become familiar with technology then it will be easier to get it right the first time, but otherwise, there should always be room for improvement and simplicity.
This week we worked on the technology review assignment. The assignment consisted of explaining the parts of the project I am assigned to, and research technologies to accomplish those parts. The parts of the project I am assigned to are lab computer-specific tasks that consist of the lab computer Python script, the lab computer commands to instrumentation, and the lab computer communication layer. Firstly the lab computer script technology is going to use Python as the National Instruments library is in Python and it is generally easier to code things that only require a small codebase to work as needed. The next technology pertains to the lab computer commands. This uses the National Instruments LabVIEW to facilitate communication with the filling valve at the Hinsdale Wave Laboratory. There is no other technology to use as it is proprietary. With that being said, I have used National Instruments libraries before to communicate with instrumentation so I feel like it would be a smooth implementation that I foresee no problems with. The last technology I mentioned is using sockets to communicate with the clients. Our architecture consists of a mobile application client that will communicate with a server to then relay that information to the lab computer that is connected to the filling valve and pressure gauge. Messages will be sent back and forth from each client, and sockets are our first choice for the communication layer. I chose this because there is a lot of documentation and it is the fastest possible communication method available. There is still research being done on other methods like MQTT, which doesn’t share the same performance, but for our application, it may not be needed. This week has gone smoothly, and I am excited to start implementation for our project. It will definitely improve the efficiency and experience of lab researchers at the wave lab and hopefully, improve learning and research.
This week’s main focus was meeting up with our project partner and gathering insights and requirements for our requirements document. During our meeting we discussed things about the Hinsdale Wave Laboratory as well as how the current system works. We learned that there is need for a more efficient and user-friendly feature rich application that makes it easier to fill their facilities. We learned that the website sends messages to a server that the lab computer parses to open the valve, but there is no system in place to be able to set a target water level. That is our main feature we will be developing. There is currently no way to drain the water remotely, and lab researchers will have to do that manually as they need a special motor that can connect to the lab computer. The lab computer uses a National Instruments python library to send/receive commands that eventually reach the website. Our task stays the same, a mobile application that has a good UI, and can set a target water level at the laboratory. Our requirements document has every necessary story for our project to be considered done. As the functionalities are not hugely complex in our estimations, we see that we will have a lot of time to dedicate to UX and smaller features that make the app efficient and easy to use by lab researchers. Not only that, but the team has some experience with mobile app development so the learning curve will not be as bad and implementation can start quickly. Moreover, I have experience with using National Instruments libraries and python. Our team seems to have a good plan and each part is already broken down into smaller pieces. The individual parts are broken into mobile UI, mobile backend, server maintenance, and lab computer setup. While each team member will be assigned to one of these parts, collaboration is still going to be encouraged to be as efficient as possible.
This week I worked on my problem statement and requirements document. The problem statement was a more descriptive project description, while the requirements document was about creating user stories that complete a working project. Both gave me great insight into the scope of the project, and I now have a better understanding of the project as a whole. I also researched a technology we could use for our project’s communication layer. The technology I researched was MQTT which is a communication protocol for IoT devices. This should work well with our project, but our method is still open to better implementations at this stage. There will be a lot of designing when it comes to our project from UI to logic. As actual people will be using our mobile application, it is obvious our design will be very important. We have to make sure our app is usable and intuitive. This means closely talking with stakeholders and user groups to make sure the app’s functionality makes sense. Beyond that, we need to make sure all of our requirements are met and planned out as there are a lot of tasks to accomplish. Without a planned out roadmap, we could be behind. We need to make sure each story has a time estimate and there is enough time for roadblocks to be resolved. For example, there could be stories that take more time than we estimate, and blockers that could also take up time. We need to be wary of this to ensure each step to the development process has enough time to be well thought out and delivered with quality. It helps that a lot of the classes I have taken so far has given me insights on parts of our software. My usability class has notified me the importance of well thought out design and how it should be an ongoing process when implementing everything within our project. I have also taken an android development class that will help when building the app itself.
This week kicked off the start of our senior design project. Like every new project with a new team, introductions and team rules are discussed. There was something particularly difficult with starting a project with teammates remotely. Since we do not have in-person meetings, it is harder to build relationships within the team. Even though the introductions through email and discord were cordial and laid back it is still hard to build a relationship, and since we are working on this project for months it is good to build a good relationship if conflicts should arise. To combat this notion, I made a conscious effort to be as pleasing as possible to communicate with. I’m in it for the team, and it seemed like I got a reciprocated response. This week we discussed our team rules. Everyone was on the same page when it came to the sections within that document so it is good we all think the same about responsibilities within the team. The project is very exciting. We are tasked to create a mobile application that can remotely set the water level in the Hinsdale Wave Laboratory. They already have the functionality to view the history of the water levels, but they do not have a way to set the water level. As well as migrating the previous functionality to a user-friendly mobile app will be a great experience when it comes to UX experience. Coming back from my first internship, I am excited about the project I will be working on as It will improve the effectiveness of the lab.
I remember going on a field trip in grade school to OSU and the Hinsdale Wave Laboratory was one of the labs we visited on our trip. It is almost poetic that one of the first things I saw on this campus will be one of the last things I will be working on before I graduate.
Hello everyone! This is my first blog post and because of that, I would like to tell you all a little bit about me. My name is Brian Kim and I’m a 4th-year computer science student with a web development focus. I have always had a passion for computers. It all started when I was around 6 years old and I remember my parents had a cube computer and I used to play games on it all the time. It just seemed like magic to me since I was a little boy. Fast-forward to high school, I decided to build my first pc. From the part picking to the assembly and eventually booting it up for the first time it reminded me of when I was a child and how it seemed like magic. It really piqued my interest and instantly made me want to investigate more about how it all worked. Thankfully, when researching majors as I was getting ready to go off for college, computer science was one of them and the rest as they say was history. I recently just finished my first internship at Tektronix. While there, I worked on a learning software that enabled remote control of instruments for universities’ electronics labs. It was a great experience and made me realize I could make a living off this thing that seemed like magic to me way back then. There are many projects in the senior design course that interest me. One of them being the red-light running detection application. I feel that the project could potentially save lives and that is an amazing thing. Technology that saves lives should be the most important ones to implement. I also saw a covid tracking application that will give you the chances of contracting the virus. That is also something that could potentially save lives and lower the transmission rate of it so we can go back to our normal lives. I definitely want to work on a project that will make a change in people’s lives in some way. I see so much potential in how technology can improve the quality of our lives, and I want to investigate those projects. Thanks for reading a little bit about myself, and what my interests are within computer science!