In this blog post, we will examine the reality and challenges of software competitiveness that South Korea must overcome to become a true IT powerhouse.
“iPod → iPhone → iPad: IT Korea caught in the trap.” “LGT ultimately ‘drops out’ of the smartphone competition.” “South Korean mobile phones face tough times” “Secure smartphone software developers” “The future of ‘Mobile Phone Korea’ looks uncertain. Exports have declined for three consecutive months” These are headlines frequently seen in recent newspapers. Long ago, the iPhone, created not by a mobile phone company but by Apple, a computer company, was launched in South Korea, shocking the South Korean society that had pride in being an IT powerhouse. When searching for “South Korea’s top-ranked products in the world” online, 127 items appear, including memory semiconductors, TFT-LCDs, CDMA mobile phones, and network-based intelligent robots. However, it is difficult to find any software-related fields. This is the reality of South Korea, which calls itself an “IT powerhouse.” The iPhone incident made many people realize that
That is, in order for South Korea to maintain its current position and move forward, it is essential to develop competitiveness in software technology. The importance of software technology can be cultivated through academic disciplines such as electrical engineering, and the computer field of electrical engineering, in particular, provides practical education that can contribute to the development of IT technology.
First, we will look at the curriculum of the computer field within the Department of Electrical Engineering and learn about the “pre-decoding” technique as an example of software performance optimization.
The Department of Electrical Engineering is broadly divided into electrical energy, communications, control, semiconductors, electronic physics, and computers and VLSI. Major subjects 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++, and these concepts are also used in various modern simulation tools. For this reason, even electrical engineering students who do not choose the computer field often take this course to learn essential programming concepts.
The “Data Structures and Algorithms” course covers data structures such as stacks, trees, queues, lists, and hash tables, as well as various algorithms for problem solving. This course is a foundation for writing programs and teaches students how to solve problems efficiently. The Operating Systems course covers basic principles such as how programs run on computers and smart devices, memory management, and CPU resource allocation. Through this course, students will acquire the skills necessary to make programs run more efficiently.
In the Computer Architecture course, students learn how computer hardware processes instructions, as well as pipeline and memory structures, and parallel processing programming for multi-core processors. In this way, the computer courses in the Department of Electrical Engineering cover both hardware and software, fostering a mindset and applied skills for solving complex problems.
One application of computer science is program optimization. Recently, mechanical buttons in electronic devices are increasingly being replaced by electronic touch functions. However, the initial response to touch functions was that they were “actually more inconvenient” because it took time to process touch signals, preventing the device from responding in real time. However, after Apple released its full-touch MP3 player, touch functions were no longer considered an inconvenient technology.
The main reason for the difference in performance despite using similar hardware was the optimization of the software that processes touch functions. This highlighted the importance of program optimization, and technologies such as pre-decoding began to gain attention. Let’s take a graduation project as an example to look at the concept of pre-decoding in more detail.
The topic is “Improving Just-In-Time Compiler for Android Performance,” with the goal of optimizing Android image processing code to improve program execution speed. Android is an operating system for mobile phones and mobile devices released by Google as open source in November 2007, and is currently the leading operating system for smartphones used by many people.
Images on computers are stored as data composed of numerous bits. Images saved in formats such as JPEG, PNG, and GIF are transferred to memory before being used by a program, a process known as decoding. Low-quality, small files can be decoded in real time, but high-quality HD files require significant time for decoding alone. Therefore, a pre-decoding method is necessary, where decoding is performed in advance during the program installation phase or while the program is idle, and the decoded data is stored in memory for immediate retrieval when needed.
Using pre-decoding reduces the overall execution time of the program, which can greatly improve the performance of not only Android but also multimedia device operating systems such as DTV. In addition to pre-decoding, there are various other methods for optimizing programs. For example, there are methods for efficiently utilizing multi-core processors and memory management techniques for minimizing unnecessary data access. These optimization techniques directly contribute to improved performance, which ultimately plays an important role in enhancing the quality of user experience and maximizing device performance and efficiency. Over the past 20 years, semiconductor technology has been the driving force behind South Korea’s rise as an IT powerhouse. However, as semiconductors approach their physical limits, they can no longer be the sole means of technological growth.
Software is a field that can create high added value with creative ideas alone and has unlimited potential to overcome physical limitations. Accordingly, in order for South Korea to overcome the current crisis and move toward a better future, it is necessary to focus on and nurture the software industry.
In today’s society, where all electronic devices are operated by software along with smart devices, 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.