Functional & Ethical Programming

11 May 2025

Software Engineering

Across academic and professional environments, there are many approaches to software engineering. How many people are working on related tasks, how they manage themselves, and what their work should look like can all vary. Two of the aspects of this that were explored in my experience of ICS 314 Software Engineering at the University of Hawaii at Manoa are programming using functional programming methods, and the ethics of programming. Though the software engineering practiced in ICS 314 was web development, these topics are relevant for software engineering in general, and have been used by me and many others before me in other classes, personal projects, and working environements.

Functional Programming

Functional programming is the use of functions, to program! It defines functions, that take parameters and give an output, without changing the original data. This is good for data management and preservation, and clarity for programmers and users. An interesting thing that can be done within functional programming is passing functions themselves as actual parameters to other functions, or having a function use another within its function body. This can both create a logical nightmare if the programmer has a loose understanding of the functions and how they can work together, or a lovely, effient program with less redundancy and easy to understand code. Functional programming may be used for web development with Javascript and Typescript, however it is also used for other software engineering. For example, in ICS 212, which uses C and C++ programming, I was able to use functional programming for some of the user interface code for a text based bank records application. Functional programming is preferred by me, as having “helper functions” for other functions, and repeatablity without redundancy is perfect for applications that have the need for any repeated action.

Ethical Programming

Another topic that was explored in ICS 314, but is neccessary for all software engineering, is ethics within software engineering. With great power comes great responsbility, and in current times computer science has great power. I used generative AI, including DeepSeek, ChatGPT, and GitHub Copilot to help me in ICS 314 and even other non software engineering classes, and the implications of that are complex. While it allows me an easier time in school, it uses a ridiculous amount of energy, whcich most likely is not “clean” energy, and the AI may have been created with questionable means as well. This is a currently emerging hot topic of controversy, as AI has the potential to make companies a lot of money, but also to further the unnatural seperation of people from relevant work and to destroy the planet’s environment. Arguments for and against AI creation and use are difficult to get right, as currently even the biggest companies are not required to track and share accurate data that might shed light on their negative impacts, so it is unkown how extreme the problemm really is.