I. 단 원 명1. 대단원 : I. 생활 속의 컴퓨터2. 소단원 : 2. 컴퓨터 내부 대탐험3. 본시학습단원 : [1] 하드웨어 탐험하기II. 단원의 연구1. 단원의 개관현대 사회에서는 작게는 가정 생활에서부터 크게는 우주 연구 개발에 이르기까지 거의 모든 영역에서 컴퓨터를 사용하고 있다. 이 단원에서는 이처럼 일상 생활과 밀접한 관련이 있는 컴퓨터의 활용 범위와 컴퓨터의 구조, 원리 및 정보 사회에서 지켜야 할 예의범절에 대하여 알아보자.현대인에게 정보와 컴퓨터는 마치 물과 물고기의 관계와 같다. 컴퓨터가 우리 생활에서 어떻게 이용되며, 정보는 사회에서 어떤 기능을 하는지 살펴봄으로써 정보 사회에 대한 올바른 이해를 할 수 있을 것이다.컴퓨터는 다양한 용도로 사용되며 하드웨어와 소프트웨어로 구성된다. 컴퓨터를 움직이게 하는 하드웨어와 소프트웨어란 무엇이며, 컴퓨터 조립은 어떻게 하는지 그 방법을 말할 수 있다.날개가 없는 새는 날 수 없듯 운영 체제가 설치되지 않은 컴퓨터는 쓸 수가 없다. 컴퓨터의 날개에 해당하는 운영 체제에 대하여 공부해 보자.2. 단원의 학습 목표(1) 컴퓨터는 어떤 원리에 의해 작동되며, 그 특징이 무엇인지 말할 수 있다.(2) 컴퓨터 하드웨어 구성 요소란 무엇인지 말할 수 있다.3. 단원 설정의 이유이 단원에서는 컴퓨터가 사용되는 분야에 대하여 간단히 설명하고 정보에 대한 개념과 정보 사회의 순기능과 역기능에 대하여 살펴보도록 구성되었다. 특히 학생들 스스로 토론을 통하여 문제를 해결할 수 있는 능력을 기르도록 하였고, 컴퓨터의 하드웨어와 소프트웨어에 대한 기초적인 내용을 설명함으로써 중학교에서 컴퓨터를 배우지 않고 고등학교에 진학한 학생이라도 어려움 없이 공부를 할 수 있다.4. 지도상의 유의점(1) 3단위 2학기로 편성해야 교재 내용을 학습하는데 무리가 없다. 대입수능시험 영역 중 직업탐구 영역에 응시하고자 하는 학생들을 지도 할 때는 개별 학습 과제와 한걸음 더 과제를 심도 있게 다루어야 한다.(2) 실습의 효율성을 위해 2시간은 연속 시간으로 편성하는 것이 좋다.(3) Ⅱ단원에서는 컴퓨터의 내부 구조의 이해를 위해 학생들이 조별 또는 개인별로 실습하는 것이 최상의 방법이겠지만 학교의 시설과 기자재 준비 상황에 따라 적어도 시범 실습만이라도 진행해야 좋은 수업 효과를 얻을 수 있을 것이다.(4) Ⅳ단원 전체와 Ⅴ단원의 대부분은 반드시 실습 수업으로 진행해야 한다. 학교의 사정에 따라 실습실이 부족하다면 Ⅰ, Ⅱ, Ⅲ단원과 주당 1시간씩 적절히 배합하여 동시에 진행하는 방법도 사용할 수 있을 것이다.(5) 전 단원을 통하여 컴퓨터의 활용 있어서 장애 요소가 되는 바이러스 문제, 사이버 공간에서의 윤리적 문제, 유용하지 않는 분야에의 편향적 활용 문제 등에 관한 주의 사항을 강조하여 올바른 컴퓨터 활용 의식을 고취해야 한다.III. 학습자 실태 조사 및 분석1. 학급 소개본 수업의 대상인 2학년 1반은 30명의 남녀 혼성으로 구성된 학급이며, 대체 적으로 컴퓨터의 활용능력은 높은 편이나 기본 개념이 부족하여 개념이해가 필 요하다.2. 학생 설문결과 및 분석(1) 컴퓨터 교과에 대한 흥미도매우 흥미있다흥미 있는 편이다보통이다흥미없는 편이다전혀 흥미 없다학생수(명)7 명14 명8 명1 명0 명비율(%)23 %47 %27 %3 %0 %컴퓨터 학습에 대한 흥미도에서는 긍정적으로 답한 학생이 부정적으로 답한 학 생보다 현저하게 많은 것(70%)으로 보아 교과에 대한 관심은 높은 것으로 보여진 다.(2) 컴퓨터 학습의 중요성에 대한 인지도매우 중요하다중요한 편이다보통이다중요하지 않다전혀 중요하지 않다학생수(명)3 명13 명13 명1 명0 명비율(%)10 %43.5 %43.5 %3 %0 %절반이 넘는 학생들(53.5%)이 컴퓨터 과목이 중요하다고 느끼고 있는 것으로 보아 컴퓨터 공부의 중요성에 대한 인식이 학습활동에 긍정적인 영향을 미칠 수 있도록 교과내용의 재구성이 필요하며 수업의 적극적 참여를 위한 수업 방법이 필요할 것으로 보인다.(3) 평소 컴퓨터 학습 시간하루 2시간 이상하루 1-2시간 정도하루 30분-1시간정도하루 30분 미만거의 하지 않는다학생수(명)0 명3 명5 명4 명18 명비율(%)0 %10 %17 %13 %60 %컴퓨터 과목의 중요성을 느끼고 있는 것에 비하면 하루 공부 시간이 매우 적 은 편이다. 특히 30분 미만으로 공부하는 학생이 전체의 73%를 차지하고, 하루 2시간 공부하는 학생은 없는 것으로 보아 학생들이 컴퓨터 학습에 대하여 갖는 흥미나 중요성을 실질적인 공부 결과로 유도하기 위해서는 동기부여 및 과제제 시 등의 방안이 요구된다.(4) 가장 효과적인 컴퓨터 수업 방법강의식 수업토론식수업NIE 수업협동학습기타학생수(명)16 명6 명3 명2 명3 명비율(%)53 %20 %10 %7 %10 %학생들의 53%가 가장 효과적인 수업 방법은 강의식 수업이라고 답하고 있는 데 이는 학습자들의 능동적이고 적극적인 자세의 결여와 편하고자 하는 마음 때문이라고 본다. 다양한 학습 프로그램을 학습자들에게 제공해 주고 활용하게 해서 학습에 대한 동기를 유발시키고 적극적이고 자신감 있게 말할 수 있도록 지도해야 할 것이다.IV. 단원 지도 계획단원주요내용학습요소학습자료차시대중단원명I.생활속의컴퓨터1.정보 사회 속으로(1) 컴퓨터 이용 분야? 일상 생활에서의 컴퓨터 이용(가정, 교육, 의료, 금융)PPT컴퓨터부록1/4(2) 정보를 찾아서? 정보의 개념? 정보 사회의 발전과 직업? 정보 사회에서의 예절(3) 정보 사회의 역기능? 정보 사회의 문제점(바이러스 유포, 음란물과 폭력물의 범람, 비인간화, 비도덕화, 개인정보 유출)2.컴퓨터 내부 대탐험(1) 하드웨어 탐험하기? 하드웨어 구성 요소(중앙 처리 장치, 기억장치, 입력장치, 출력장치)PPT컴퓨터부록2/4(본시)(2) 소프트웨어 탐험하기? 소프트웨어의 설명(시스템 소프트웨어,응용 소프트웨어)(3) 내 손으로 컴퓨터를? 컴퓨터의 조립방법 및 유의점3.컴퓨터에 날개 달기(1) 컴퓨터의 날개? 운영체제의 설명PPT컴퓨터부록3/4(2) 컴퓨터 날개의 종류? 윈도우와 리눅스의 특성4.0과 1의 세계(1) 0과 1로 표현할 수 있는 것? 데이터의 종류와 표시 방법PPT컴퓨터부록4/4(2) 데이터의 표현 방법 알아보기? 부동소수점, 고정소수점 표현 방식V. 지도의 실제1. 전시학습 상기간단한 질문으로 Feed-Back 하여 전시학습 내용을 정리한다. 컴퓨터의 이용분 야와 사이버 공간에서의 예의를 강조하고, 정보사회의 문제점에 대해 파악하고 있는지 확인한다.2. 학습 목표 제시학습 목표는 모두가 달성해야 할 수업의 목표이다. 따라서 수업 시간에 칠판에 붙여 붙여 놓은 후 수업 중간 중간에 확인시켜 현재 진행되고 있는 수업이 무엇 을 배우는 것인지를 인지하도록 한다.3. 수업 방법설명 위주의 수업을 통해 수업 내용의 이해에 중점을 둔다. 그리고 질문을 통 해 경험했던 것을 연결시켜서 이해를 돕는다.4. 내용 정리 및 형성 평가총괄적인 내용 정리 후, PPT를 이용하여 형성평가를 풀어보고 정답 및 오답을 체크하여 본시 수업을 Feed-Back 한다.5. 수업 준비물◎ 교과 내용 관련 PPT, 관련 사진VI. 본시 교수-학습 지도 계획 (50분용)교과명고2 정보사회와 컴퓨터학년 학기2학년 1학기쪽수p.28-34단원명대단원I. 생활 속의 컴퓨터차시계획2/4중단원2. 컴퓨터 내부 탐험하기학습목표? 컴퓨터를 움직이게 하는 하드웨어와 소프트웨어란 무엇이며, 컴퓨터 조립은 어떻게 하는지 알 수 있다.적용모형대 상2학년 1반 학생 (30명)교 실2학년 1반 교실단계학습과정교수 - 학습 활동학습 자료제시지도상 유의점시간교 사 활 동학 생 활 동도입▶인사출석점검? 인사 및 출석을 점검한다.? 반갑게 인사한다.10분▶전시학습확인? 컴퓨터의 이용분야와 정보의 개념, 정보사회의 역기능에 대해서 질문을 통해 확인한다.? 전시학습을 상기시킨다.? PPT▶본시학습동기유발? H/W, S/W을 구분하고, 컴퓨터 구조를 파악함으로써 컴퓨터 내부의 관심을 유발한다.? 자신의 컴퓨터를 생각하고, 관련된 경험을 말할 수 있다.▶학습목표제시? 학습목표를 제시한다.? 다함께 학습목표를 읽는다.? PPT전개▶하드웨어 탐험하기? 하드웨어와 소프트웨어의 의미를 설명한다.? 하드웨어는 5가지 (중앙처리장치, 주기억장치, 보조기억장치, 입력장치, 출력장치)로 나누어 설명한다.? 각 종류별로 사진과 함께 설명으로 이해시킨다.? 교과서를 보면서 설명을 듣고, 해당 내용을 이해한다.? PPT15분단계학습과정교수 - 학습 활동학습 자료제시지도상 유의점시간교 사 활 동학 생 활 동전개▶소프트웨어 탐험하기? 소프트웨어의 정의를 설명한다.? 시스템 소프트웨어 (운영체제, 언어처리프로그램, 유틸리티 프로그램)을 설명한다? 응용소프트웨어(워드, 엑셀, 데이터베이스)를 설명한다.? 교과서를 보고 설명을 듣고, 자신의 컴퓨터에서 쓰는 소프트웨어의 종류를 분류해본다.? PPT15분▶내 손으로 컴퓨터를? 컴퓨터 조립을 위한 준비사항과 유의사항을 설명한다.? 설명을 잘 듣고, 자신이 조립을 할 때의 경험을 생각해보자.? PPT정리▶내용정리? 하드웨어는 중앙처리장치, 주기억장치, 보조기억장치, 입력장치, 출력장치로 나눌 수 있다.? 소프트웨어는 시스템소프트웨어, 응용소프트웨어로 나뉜다.? PPT10분▶형성평가? PPT로 형성 평가를 다함께 풀어본다.? 수업 내용을 기억하며 형성평가를 푼다.? PPT▶차시예고 및 과제제시? 차시학습은 ‘컴퓨터의 날개’임을 안내한다.? 과제를 제시한다 - 각자 사용하는 컴퓨터의 사양 조사하기.? 차시학습 내용을 인지한다.? 과제를 인지한다.VII. 본시 교수-학습 지도 계획 (20분용)교과명고2 정보사회와 컴퓨터학년 학기2학년 1학기쪽수p.28-31단원명대단원I. 생활 속의 컴퓨터차시계획2/4중단원2. 컴퓨터 내부 탐험하기학습목표? 컴퓨터는 어떤 원리에 의해 작동되며, 그 특징은 무엇인지 설명할 수 있다.적용모형대 상
I. 단 원 명1. 대단원 : V. 운영 체제2. 중단원 : 1. 컴퓨터 살리기2. 컴퓨터 관리하기3. 소단원 : 1. 1) 윈도의 기초2) 프로그램의 실행과 실행 창3) 여러 프로그램의 실행2. 1) 내 컴퓨터 확인하기2) 파일과 폴더의 선택 및 폴더 만들기3) 파일과 폴더 다루기4) 파일 복원하기3. 본시학습단원 : 1. 컴퓨터 살리기1) 윈도의 기초2) 프로그램의 실행과 실행 창3) 여러 프로그램의 실행II. 단원의 연구1. 단원의 개관컴퓨터 사용자는 컴퓨터를 켜는 순간부터 운영 체제의 도움을 받는다.운영 체제는 컴퓨터 하드웨어와 사용자 사이에서 중계 역할을 해 주는 소프트웨어로서 컴퓨터의 메모리 관리, 프로세서 관리, 입출력 장치의 관리 및 파일 시스템 관리 등으로 그 기능을 세분할 수 있다. 운영 체제란 한 마디로 사용자가 컴퓨터를 좀 더 효율적으로 사용하도록 지원해 주는 것이다.모든 컴퓨터는 똑같은 운영 체제를 사용하는 것이 아니라 컴퓨터의 용도, 사용 환경에 따라 각각 다른 특징을 가지고 있는 운영 체제를 사용한다. 이들은 작동하는 방식이 서로 다르므로 컴퓨터의 용도에 맞는 거을 선택해서 설치해야 한다. 또한 응용 프로그램을 선택할 때는 자신의 컴퓨터에 설치된 운영 체제에서 사용이 가능한지 먼저 알아보아야 한다.이렇게 운영 체제는 사용자가 컴퓨터를 편리하게 사용할 수 있도록 컴퓨터와 사용자 사이에서 다리 역할을 해 주는 소프트웨어이다. 따라서 이번 단원에서는 운영 체제의 특징과 사용법에 대해 구체적으로 알아보겠다.2. 단원의 학습 목표(1) 컴퓨터의 H/W와 사용자 사이의 연결을 알 수 있다.(2) 운영 체제의 역할과 주요 특징을 이해할 수 있다.(3) 운영 체제의 활용도를 알 수 있다.(4) 윈도용 프로그램의 창의 구성을 이해할 수 있다.(1) 윈도를 시작하고 종료할 수 있다.(2) 윈도용 프로그램을 실행할 수 있다.(3) 여러 개의 프로그램을 동시에 실행할 수 있다.(4) 윈도우의 단축키를 사용할 수 있다.(1) 운영체제의 역할을 바탕으로 컴퓨명의 남녀 혼성으로 구성된 학급이며, 대체 적으로 컴퓨터의 활용능력은 높은 편이나 기본 개념이 부족하여 개념이해가 필 요하다.2. 학생 설문결과 및 분석(1) 컴퓨터 교과에 대한 흥미도매우 흥미있다흥미 있는 편이다보통이다흥미없는 편이다전혀 흥미 없다학생수(명)7 명14 명8 명1 명0 명비율(%)23 %47 %27 %3 %0 %컴퓨터 학습에 대한 흥미도에서는 긍정적으로 답한 학생이 부정적으로 답한 학 생보다 현저하게 많은 것(70%)으로 보아 교과에 대한 관심은 높은 것으로 보여진 다.(2) 컴퓨터 학습의 중요성에 대한 인지도매우 중요하다중요한 편이다보통이다중요하지 않다전혀 중요하지 않다학생수(명)3 명13 명13 명1 명0 명비율(%)10 %43.5 %43.5 %3 %0 %절반이 넘는 학생들(53.5%)이 컴퓨터 과목이 중요하다고 느끼고 있는 것으로 보아 컴퓨터 공부의 중요성에 대한 인식이 학습활동에 긍정적인 영향을 미칠 수 있도록 교과내용의 재구성이 필요하며 수업의 적극적 참여를 위한 수업 방법이 필요할 것으로 보인다.(3) 평소 컴퓨터 학습 시간하루 2시간 이상하루 1-2시간 정도하루 30분-1시간정도하루 30분 미만거의 하지 않는다학생수(명)0 명3 명5 명4 명18 명비율(%)0 %10 %17 %13 %60 %컴퓨터 과목의 중요성을 느끼고 있는 것에 비하면 하루 공부 시간이 매우 적 은 편이다. 특히 30분 미만으로 공부하는 학생이 전체의 73%를 차지하고, 하루 2시간 공부하는 학생은 없는 것으로 보아 학생들이 컴퓨터 학습에 대하여 갖는 흥미나 중요성을 실질적인 공부 결과로 유도하기 위해서는 동기부여 및 과제제 시 등의 방안이 요구된다.(4) 가장 효과적인 컴퓨터 수업 방법강의식 수업토론식수업NIE 수업협동학습기타학생수(명)16 명6 명3 명2 명3 명비율(%)53 %20 %10 %7 %10 %학생들의 53%가 가장 효과적인 수업 방법은 강의식 수업이라고 답하고 있는 데 이는 학습자들의 능동적이고 적극적인 자세의 결여와 편하고자 하는 마음 때문이라고로그램의 실행과 실행 창? 프로그램의 실행과 종료? 실행 창의 구성 요소(3) 여러 프로그램의 실행? 다른 프로그램 활성화하기2.컴퓨터 관리하기(1) 내 컴퓨터 확인하기? 내 컴퓨터 확인하기? Windows 탐색기의 활성화PPT컴퓨터부록1/2(2) 파일과 폴더의 선택 및 폴더 만들기? 파일과 폴더의 선택하기? 새 폴더 만들기(3) 파일과 폴더 다루기? 파일과 폴더의 복사? 파일과 폴더의 이동? 파일과 폴더의 삭제(4) 파일 복원하기? 휴지통이란? 휴지통을 이용한 파일 삭제? 삭제된 파일과 폴더의 복원? 휴지통 비우기3.컴퓨터 꾸미기(1) 제어판 열기? 제어판 활성화하기? 제어판으로 할 수 있는 일PPT컴퓨터부록2/2(2) 제어판 활용하기? 날짜와 시간 변경하기? 화면 보호기 설정하기? 전원 관리 설정하기(3) 보조 프로그램 다루기? 시스템 도구? 엔터테인먼트? 인터넷 도구? 워드패드? 그림판? 한글 MS-DOSV. 지도의 실제1. 전시학습 상기PPT 자료를 이용하여 전시학습 내용을 정리한다.. 컴퓨터의 발달 역사에 대해 파악하고 있는지 확인한다. 간단한 질문을 통해서도 학생들의 상기 수준을 확인 한다.2. 학습 목표 제시학습 목표는 모두가 달성해야 할 수업의 목표이다. 따라서 수업 시간에 다 같 이 읽도록 유도하여 무엇을 배울 것인지를 인지하도록 하고, 수업 중간 중간에 확인시켜 현재 진행되고 있는 수업이 무엇을 배우는 것인지를 인지하도록 한다.3. 수업 방법설명 위주의 수업을 통해 수업 내용의 이해에 중점을 둔다. 그리고 질문을 통 해 경험했던 것을 연결시켜서 이해를 돕는다.4. 내용 정리 및 형성 평가총괄적인 내용 정리 후, PPT를 이용하여 형성평가를 풀어보고 정답 및 오답을 체크하여 본시 수업을 Feed-Back 한다.5. 수업 준비물교과 내용 관련 PPT, 관련 사진칠 판컴 퓨 터6. 교실 좌석 배치도앞문VI. 본시 교수-학습 지도 계획 (50분용) - (주)두산교과명고2 정보사회와 컴퓨터학년 학기2학년 2학기쪽수p.93-117단원명대단원V. 운영 체T전개▶컴퓨터 살리기1) 윈도의 기초? 운영 체제의 개념에 대해 설명한다.? 윈도 운영 체제의 주요 특징에 대해 설명한다.2) 프로그램의 실행과 실행창? 프로그램의 실행과 종료 방법을 설명한다? 실행 창의 구성요소를 설명한다.3) 여러 프로그램의 실행? 다른 프로그램 활성화하는 단축키를 설명한다.? 교과서를 보면서 설명을 듣는다.? 특징을 따라 읽고 설명을 들으며 이해한다.? 시연을 잘 보고 기억한다.? 그림을 잘 보고 기억한다? 활용도에 대해서 생각해본다.? PPT30분▶컴퓨터 관리하기1) 내 컴퓨터 확인하기? 바탕화면의 내컴퓨터 아이콘을 클릭하여 사용중인 컴퓨터의 모든 내용을 보여준다.2) 파일과 폴더의 선택 및 폴더 만들기? 탐색기에서 파일과 폴더의 선택 방법을 설명한다.3) 파일과 폴더 다루기? 파일과 폴더의 복사와 이동하는 방법을 보여준다.4) 파일 복원하기? 휴지통의 개념을 설명한다.? 휴지통을 이용한 삭제와 복원 방법을 설명한다.? 내컴퓨터 아이콘의 용도를 기억한다.? 파일 선택시 Ctrl, Shift의 활용도를 기억한다.? 드래그 드롭의 의미를 이해한다.? 휴지통의 용도를 이해하고 기억한다.? PPT정리▶내용정리? 운영 체제는 다른 프로그램들의 실행을 도와주거나 주변 장치들을 관리하고 통제하여 컴퓨터를 원활하게 사용할 수 있도록 도와주는 프로그램들의 모임을 의미한다.? 윈도 프로그램의 실행 창은 일반적으로 제목 표시줄, 메뉴줄, 도구 모음, 상태 표시줄 등으로 구성된다.? 현재 사용 중인 컴퓨터의 내용을 확인하려면 내 컴퓨터를 더블 클릭한다.? 연속된 여러 개의 파일이나 폴더를 선택하려면 키를 사용하고, 서로 떨어져 있는 파일이나 폴더를 선택하려면 키를 사용한다.? PPT10분▶형성평가? PPT로 형성 평가를 다함께 풀어본다.? 수업 내용을 기억하며 형성평가를 푼다.? PPT▶차시예고 및 과제제시? 겨울방학 인사하기? 겨울 방학 계획을 구상해본다.? PPTVII. 본시 교수-학습 지도 계획 (20분용) - (주)두산교과명고2 컴퓨터 일반학년 학기선생님.5분▶전시학습확인? 컴퓨터의 역사에 대해 상기시킨다. ('콜로서스', '에니악')///////////////////////////////////////* 지난 시간에 우리가 컴퓨터의 역사에 대해서 배웠습니다. 기억나요?* 네. 최초의 컴퓨터는 뭐라고 배웠었죠?* 맞아요. 여러분들이 잘 기억하는것 같으니까 수업시작전이기도 하고 해서 컴퓨터와 관련된 간단한 역사 이야기 하나 해줄께요. 사실 최초의 컴퓨터는 우리들이 알고 있는 에니악이 아니에요.-- 콜로서스에 대해서 개 략적인 설명..? 전시학습을 상기시킨다.////////////////////////////////////* 네.* 에니악이요~? PPT▶본시학습동기유발? 80년대 컴퓨터의 모습을설명하며, 본시학습 내용에 대한 암시를 통해 관심을 유도한다.///////////////////////////////////////* 여러분들은 몇 살때부터 컴퓨터를 했나요?* 네. 선생님은 여러분이 태어난 87년도부터 컴퓨터를 했어요. 그 당시에 컴퓨터 모습은...-- 8비트 APPLE 컴퓨터에 대한 경험담을 통해 흥미를 유도하고, 본시 수업 내용과 연관되게 한다.? 당시에 시대적 기술 상황을 상상해보면서 이번 학습에 대해 흥미를 갖는다.////////////////////////////////////* (중구난방 대답한다)* 우와~ (선생님이 말씀하시는 컴퓨터를 상상해본다)▶학습목표제시? 학습목표를 제시한다.///////////////////////////////////////* 그래서 오늘은 컴퓨터를 편하게 쓸 수 있게 도와주는 운영체제에 대해서 배워볼텐데요. 다 같이 학습 목표를 읽어보겠습니다. 시작~* 네. 학습목표를 봐도 너무 쉬울 것 같죠? 쉬운 내용이니만큼 재미있게 배워보도록 합시다.? 다함께 학습목표를 읽는다.////////////////////////////////////* 네. (배울 내용에 대한 부담감을 갖지 않는다)? PPT전개▶운영 체제의 개념? 운영체제의 필요성과 종류에 대해 설명한다.///다.
프로그래밍언어론 I. 요구 분석(Required Analysis)1) C언어 Simple Compiler 구현하기: 이 프로그램은 C언어로 작성된 프로그램을 입력으로 받아 프로그램 내에서 선언되지 않았거나 중복 선언된 변수를 찾아 오류를 출력하는 프로그램으로 소스를 읽으면서 각각의 토큰으로 나누고 심볼테이블을 관리하여 오류를 검사하는 프로그램이다.2) Algorithm Analysis(1) 심볼테이블의 구조 : 블록구조의 관리를 이해 Linked list를 이용해 심볼테이블을 구 현하였으며, structure의 개념을 사용하여 자기 참조 구조체를 이용. 10개의 포인터를 생성. (10개의 블록구조 지원)typedef struct node *node_pointer;typedef struct node{char symbol[16];struct node *link;};node_pointer symTable[10];symTable[0]?symbollink?symbollink?symbollinksymTable[1]???symTable[2]???symTable[3]???symTable[4]???symTable[5]???symTable[6]???symTable[7]???symTable[8]???symTable[9]???(2) 토큰의 심볼테이블 입력 방법입력받은 C소스에서 한문자씩 읽어 토큰으로 분류한 후, 토큰에 따라 문자열이면 duplicated 검사나 undefined 검사를 거쳐 이상이 없으면 node를 생성하여 토큰을 symbol에 삽입한다. 삽입시에는 리스트 맨 앞자리에 넣는다. (후방검색을 위해)블록구조를 만나면 다음 인덱스의 symTable을 사용하여 새로운 List에 토큰을 삽입한다.예를 들어, 아래와 같은 문장이 있다면 심볼테이블은 다음과 같이 생성된다.int a, b;{char c, d;}symTable[0]->b->aNULLsymTable[1]->d->cNULL(3) 토큰 분류입력 파일을 open하여 fgetc를 이용하여 한 문자씩 읽어서 토큰을 분류한다r ch, token[32] ;node_pointer temp;while(!feof(inputfile)){// # 처리 (include, define)while((ch=fgetc(inputfile))=='#'){while((ch=fgetc(inputfile))!='n');// new line 일때까지 whilelinecount++;}// 공백, 탭문자 처리while(ch==' ' || ch=='t')ch=fgetc(inputfile);// 문자 처리if(isalpha(ch) || ch=='_'){do{token[i++]=ch;ch=fgetc(inputfile);}while(isalnum(ch));// 문자와 숫자일때까지 token에 삽입token[i]='