Software Engineering Topics that I Found Useful

10 May 2022

Working With Other People in a Computer Science Class?

I have taken a few computer science classes in high school and 7 ICS classes in college before the Spring 2022 semester. Only one of these classes (ICS 211) even allowed students to discuss assignments with each other and none of them so far have allowed us to work together on the same project. That means that I’ve never had a reason to learn about configuration management until this semester. GitHub has been extremely convenient through version control and the ability to create branches at any point in code commits. ICS 314 (Software Engineering) was the first class that I have worked on a group project in and was a good opportunity to learn about working with others on a web application. I have grown up playing team sports my whole life and eventually I started to like working with other people to accomplish goals that are impossible to do alone. I had been waiting for a chance to experience working as a team to create a computer science related project to get an idea of what it might be like in the future working together with coworkers in a future job. The final project in ICS 314 was the opportunity to work on a group project, but a major part of working with other people is where the code is going to be stored. GitHub allows for each group member to simultaneously work on their own branches individually without directly affecting each others code and then merging them together at a later time. Configuration management without GitHub is almost unimaginable for me and I probably take for granted how much time using it has saved not only me but our whole group. Without configuration management, large projects would take much longer and be much less efficient.

Software Engineering Ethics

Near the end of the semester we looked at a module called “Ethics” which didn’t seem related to software engineering like the modules before it. I knew that ethics existed, but I just assumed that they only applied to fields that directly affected the general public like engineering and public safety. The more I thought about it the more I realized that computer science and more specifically software engineering is becoming more widespread as most people now use computers on a daily basis. These people are all consumers of software whether it be a specific application that they use for work, a game that they play for fun, or just the web browser that they surf the internet on. The people that create this software have an inherent moral obligation to provide for their customers, employers and the public as a whole. The first priority should be to create a product that benefits the general public without deceiving or discriminating against any group of people. Then you have to meet the client and your employer’s demands while also building the best possible product without forgetting about your own personal values. In projects in which you work with others, you should act professionally and treat your colleagues as equals. Ethics add a layer of complexity to software engineering that may seem inconvenient, but is definitely necessary as more people start using software. Without ethics, software engineering and computer science as a whole loses some of its respect which is something that should be avoided if possible.