Available courses

시스템 소프트웨어는 컴퓨터 하드웨어의 제어를 통해 응용 프로그램의 제작 및 실행을 돕는 제반 소프트웨어를 지칭한다. 본 강의는 기계 정보 시스템의 주요 구성요소인 시스템 소프트웨어에 대한 이해를 돕고 요구되는 소프트웨어 기능 실현을 위한 시스템 프로그래밍 기법을 교육한다. 대표적 오픈 소스 소프트웨어인 리눅스를 주요 실습 환경으로 하여, 프로세스 제어, 입출력, 동시 계산 등의 정보 시스템 프로그래밍 방법을 학습하고 어셈블러, 링커 등의 시스템 소프트웨어 동작 원리를 이해하고 응용하는 지식을 습득하도록 한다.

더불어, ROS (Robot Operating System)을 이용한 실습 및 설계과제를 통해 시스템 소프트웨어 응용의 코드 수준 이해와 로봇 운영체제의 사용능력 함양을 도모한다.

* 주교재

- Randal E. Bryant and David R. O Hallaron, "Computer Systems: A programmers perspective" 3rd edition, Pearson, 2015.

- 김형신 역, "컴퓨터 시스템", 교보문고.

- Quigley, Gerkey, and Smart, "Programming Robots with ROS: a practical introduction to the robot operating system", OReilly. 2015.

효과적인 컴퓨터 알고리즘을 설계하는 데에 필수적인 자료구조에 대해 학습하며, 서로 다른 자료구조를 사용할 때 각 알고리즘이 갖게 되는 시간적 (또는 공간적) 요구사항의 특성에 대해 분석하는 방법에 대해 학습한다. 이를 통해, 다양한 문제 해결을 위한 컴퓨터 알고리즘의 설계에 있어 최적의 자료구조를 선택할 수 있는 능력을 배양한다.

- 교재
* C++를 이용한 데이터구조 및 알고리즘 분석, Mark Allen Weiss 저, 김현철외 역, 홍릉과학출판사, 2006.
* Mark Allen Weiss, "Data Structures and Algorithm Analysis in C++", Addison Wesley