South Korea has been called an IT powerhouse, but while its growth has been centered on hardware such as semiconductors and mobile phones, it has shown its limitations in the software sector. Since the impact of the Apple iPhone, the importance of computer and software technology has been emphasized in academic settings such as electrical engineering departments, and the need to focus on improving performance through techniques such as program optimization has spread. Based on this, continued attention and investment in software technology is necessary for Korea to maintain its status as an IT powerhouse and secure its future competitiveness.
“iPod → iPhone → iPad IT Korea gets caught in the i-trap,“ ‘LGT ’drops out‘ of smartphone race,” “Korean mobile phones struggle,” “Secure smartphone software developers,” “’Mobile phone Korea’ future is uneasy. Exports fall for third month in a row.” These are just some of the headlines you’ll see when you pick up a newspaper these days. A long time ago, the iPhone, made by Apple, a computer company rather than a cell phone company, was launched in South Korea, causing a huge shock in a society that prided itself on being an IT powerhouse. If you search the Internet for “Korea’s world’s number one item,” you’ll find 127 world’s number one items, including memory semiconductors, TFT-LCDs, CDMA cell phones, and network-based intelligent robots, but you won’t find anything related to software. This is the reality of Korea’s self-proclaimed ‘IT powerhouse’.
The iPhone debacle was a wake-up call for many. The iPhone debacle made many people realize that if Korea wants to maintain its current position and move forward, it is essential to be competitive in software technology. The importance of software technology can be cultivated through majors such as electrical engineering, and in particular, the computer field of electrical engineering provides practical education that can contribute to the development of IT technology.
Let’s take a look at the curriculum of the computer science department in the Faculty of Electrical Engineering and discuss the “pre-decoding” technique as an example of software performance optimization.
The Department of Electrical Engineering is broadly divided into the fields of electrical energy, communications, control, semiconductors, electronics, electrophysics, computers, and VLSI. The main subjects taught in the computer field include computer fundamentals, programming methodology, data structures and algorithms, operating systems, computer architecture, embedded system design, and compilers. In computer fundamentals and programming methodology, students learn basic languages such as C and C++, which are also used in many modern simulation tools. For this reason, electrical engineering students who do not choose a computer field often take this course to learn essential programming concepts.
In “Data Structures and Algorithms,” you’ll learn about data structures such as stacks, trees, queues, lists, and hash tables, as well as various algorithms for solving problems. This course is the foundation for writing full-fledged programs, and you’ll study efficient problem-solving methods. In the operating system course, you will learn the basic principles of how programs run on computers and smart devices, memory management, CPU resource distribution, etc. This course will give you the skills to make your programs run more efficiently.
In computer structures, you will learn how computer hardware processes instructions, pipelines, memory structures, and parallel processing programming on multiple cores. As you can see, computer courses in electrical engineering span both hardware and software, and develop the thinking and application skills to solve complex problems.
One example of an application in the computer field is program optimization. Electronic touch features are increasingly replacing mechanical buttons on electronic devices, and the initial reaction to touch features was that they were more inconvenient. This is because it takes time to process the touch signal, which prevents the machine from responding in real time. However, since Apple introduced full-touch MP3s, touch has been able to move away from being perceived as an inconvenient technology. The main reason for the difference in performance, even with similar hardware, was the optimization of the software that handles touch functionality. This highlighted the importance of program optimization, and techniques such as pre-decoding began to gain traction.
Let’s take a closer look at the concept of pre-decoding using my graduation project as an example. The topic is “Improving the Just-In-Time Compiler for Android Performance,” and it aims to optimize the Android image processing code to make the program run faster. Android is an operating system for cell phones and mobile devices that Google released as open source in November 2007, and is currently the dominant operating system for many smartphones.
On a computer, images are stored as data composed of many bits. Images stored in formats like JPEG, PNG, and GIF are moved into memory before being used by a program, a process called decoding. Smaller, lower-quality files can be decoded in real time, but for high-definition, HD-quality files, decoding alone can be quite time-consuming. This is why pre-decoding is necessary, where the decoding is done in advance during the program installation phase or while it is in standby, so that it can be stored in memory and recalled immediately when needed. Pre-decoding reduces the overall execution time of the program, which can significantly improve the performance of multimedia device operating systems such as Android and DTV.
There are many other ways to optimize your program beyond pre-decoding. For example, there are ways to efficiently utilize multi-core processors, or memory management techniques that minimize unnecessary data accesses. These optimization techniques directly contribute to faster performance, which in turn plays an important role in improving the quality of the user experience and maximizing the performance and efficiency of the device.
The power that has propelled South Korea into an IT powerhouse over the past two decades has come from semiconductor technology. However, semiconductors are approaching their physical limits and can no longer be the sole means of technological growth. Software is a field that can create high added value with creative ideas and has unlimited possibilities to overcome physical limitations. Therefore, if Korea is to overcome the current crisis and move forward to a better future, the software industry needs more attention and intensive development.
In a modern society where all electronic devices, including smart devices, are operated by software, software competitiveness will be an important factor in determining not only the quality of life of individuals but also the future competitiveness of the country.