How can tech powerhouse South Korea fix its software competitiveness problem?

H

After Apple’s iPhone made waves in South Korea, the tech powerhouse is facing a software skills shortage. To solve this problem, more attention and investment in software is needed.

 

“iPod → iPhone → iPad IT Korea is caught in the i-trap,” “LGT ‘drops out’ of smartphone race,” “Korean mobile phones struggle,” “Secure smartphone software developers,” “Future of ‘Mobile Phone Korea’ is uneasy. Exports fall for third month”. These are the kind of headlines you’d expect to see when you open a newspaper these days. A long time ago, an iPhone made by Apple, a computer company rather than a cell phone company, was launched in South Korea, causing a tremendous shock to the country’s society, which prides itself on being an IT powerhouse. An internet search for the world’s number one item in South Korea revealed that the country has 127 world number one items, including memory semiconductors, TFT-LCDs, CDMA cell phones, and network-based intelligent robots, but none related to software. This is the current state of technology in the IT powerhouse of South Korea. The iPhone debacle has made many people realize that South Korea needs to be competitive in software technology if it wants to maintain its current position in the IT industry and go further. One of the places to study this is the School of Electrical Engineering. First, let’s take a look at the computer field of electrical engineering, and then we’ll discuss program optimization as an example of one of its applied fields.
The Faculty of Electrical Engineering is divided into the following areas: electrical energy, communications, control, semiconductors, electronics, computers, and VLSI. In the field of computers, you will study computer fundamentals, programming methodology, data structures and algorithms, operating systems, computer architecture, embedded system design, and compilers. In computer fundamentals and programming methodology, you will learn about C and C++, the languages that are the basis of computer programming. The concepts taught in these two courses are also used in many modern computer simulation tools, so they are often taken by electrical engineering students who do not choose a computer field. In Structures and Algorithms, you’ll learn about structures such as stacks, trees, queues, lists, and hash tables, and algorithms such as divide-and-conquer, dynamic programming, and graphs. This is a fundamental course for writing full-fledged programs because programs consist of the construction of appropriate algorithms to solve problems and the selection of data structures to implement them. In Operating Systems, you will learn the theories necessary to construct operating systems such as multitasking, CPU scheduler, memory management, file system, and linker used in operating systems from the early days to the present, and implement them in C and assembly language. Embedded System Design covers the fundamentals of embedded processors. You will learn basic examples of embedded systems, processor structures, applications, processors and operating systems, and learn the structure and programming of multiprocessors. In Compilers, you’ll learn several theories about the front-end (analysis) of compilers, which turns program code into machine language, and implement a simple compiler yourself. In Computer Architecture, you’ll learn how the hardware inside a computer processes instructions, the structure of pipelines and computer memory, and programming for parallel processing of instructions on multiple cores. In this course, you’ll think about how to design better-performing computers.
Let’s take an example from one application in the computer field: program optimization. Over the past few years, electronic touch features have replaced mechanical buttons on electronic devices. Many people’s reaction to this is that it’s just more inconvenient. This is because it takes a lot of time to process the touch signal, and the machine doesn’t react in real time. This is why, in the early days of touch functionality in electronics, it was thought to be limited. But after Apple popularized full-touch MP3s, people no longer think of touch as an inconvenience. Knowing that the main reason for such a dramatic difference in performance with similar hardware was the optimization of the software that performs the touch interactions shows how important program optimization is. To illustrate what I mean by program optimization, I’ll explain one part of program optimization, pre-decoding, using an example from my undergraduate senior project. The topic of my thesis project is “Improving the Just-In-Time Compiler for Android Performance” and it aims to modify the Android image processing code to make the program perform faster. Android is an operating system for cell phones and mobile devices developed by Google, which acquired Android Inc. in November 2007 and released all of its source code as open source. It is what many people call an Android phone. On a computer, an image is a series of bits, made up of lots of 0s and 1s, and is stored on disk in file formats like JPEG, PNG, and GIF, which are familiar to anyone who has worked with picture files on a computer. In order for an image to be used by a program, it must be moved from disk to main memory in the format used by the program, a process known as decoding. For low-quality, small files, decoding in real time each time an image needs to be processed doesn’t have a significant impact on the speed of the process, but for high-definition files, such as those used today, decoding alone can take a significant amount of time. Therefore, the idea of the project is to reduce the execution time of the entire program by pre-decoding and storing it in the main memory during the installation phase of the program and when it is stopped, and then fetching it from the main memory when the image is needed, and this optimization technique is called pre-decoding. Android is currently only used in cell phones, but it has the potential to be used as an operating system for multimedia devices such as DTVs, so improving the performance of the operating system through pre-decoding is of great significance. Pre-decoding is just one of many optimization techniques, and there are many other program optimization techniques, such as null point checking and class initialization checking, which are important fields of study in their own right.
Semiconductor technology has been the driving force behind South Korea’s rise as a global IT powerhouse over the past two decades. However, semiconductors are reaching the limits of their physical properties, and we can no longer rely on them alone. Software is a low-cost, high-efficiency industry where nothing is impossible to realize if you have an idea, and there are no investment costs other than human labor and computers. We need to pay more attention to software as a way to solve the current crisis.

About the author

Blogger

I'm a blog writer. I like to write things that touch people's hearts. I want everyone who visits my blog to find happiness through my writing.

About the blog owner

 

BloggerI’m a blog writer. I want to write articles that touch people’s hearts. I love Coca-Cola, coffee, reading and traveling. I hope you find happiness through my writing.