좋은 교육 좋은 교사가 무엇이며 어떻게 해야 되는지 교육방법 및 교육공학 측면에서 논술하시오우리에게 있어 좋은 교육이란 무엇일까? 이를 교육방법 측면에서 본다면 교육방법은 교육의 하위영역 면에서 볼 때 교수방법, 교육과정방법, 교육상담방법, 교육행정방법, 교육평가방법 등을 모두 포함 하는 것이다. 주로 우리에게 있어서는 교수방법에 대해서 생각을 하여야 할 것이다. 또한 교육 공학에 대해서도 잘 알아야 할 것이다.그렇다면 좋은 교육방법은 무엇일까? 좋은 교육방법은 효과적이고 매력적이며 효율적이고 안전한 것이어야 확실한 교육방법이다.이에 좋은 교육에 대한 나의 생각은 자율적이며 창의적인 교육이 아닐까 한다. 교사에게 있어 학생들에게 지금까지 해오던 권위주위적인 교육과 주입식 교육, 무조건적인 수능만을 바라보고 하는 교육은 힘도 많이 들뿐더러 학생들 또한 학습만을 위해서 학교에 다니기 때문에 자신만의 특기와 장점 등을 발견할 기회가 적을 것이다. 그렇기 때문에 자신만의 꿈을 가지고 있는 학생은 그리 많지 않다. 그렇다면 학생들에게 자율적이면서도 수업에 대한 집중도를 올려 준다면 학생들 스스로도 학습의 성과를 높일 수 있을 것이다. 그리고 교사는 이런 학생들을 위에서 바라보기 보다는 같은 눈높이에서 학생들을 가르친다면 학생들과의 의사소통이 원활해지고 이에 따라 학생들은 그 수업을 매력적으로 느낄 수 있을 것이며, 적절히 학생들과의 의사소통에 의해 학생들의 궁금증을 해결해 준다면 효과적이면서 효율적인 수업을 할 수도 있을 것이다.그렇다면 여기서 좋은 교사란 무엇일까? 우리는 살아오면서 많은 교사를 만나왔다. 여기서 우리는 좋은 교사를 만나도 보았고 좋지 않은 교사도 만나보았을 것이다. 이런 학창시절의 경험을 통해 생각을 해 보고 교육방법 및 교육공학을 배운 나에게 있어 좋은 교사는첫째, 항상 적극적인 행동 의지와 항상 노력하는 자세를 지녀야 한다. 교사의 행동을 통해 학생들은 그 교사의 생활상을 자연히 배우게 될 것이다. 이에 교사는 학생들에게 귀감이 될 수 있도록 품위를 지켜 그 모습을 본 학생들이 자연히 예절과 질서를 배울 수 있도록 하여야 한다.둘째, 학생 한명 한명을 하나의 인격체로 존중해 주고 각각 다른 소질의 발달 가능성을 발견하고 그 소질을 키워 주기위해 노력하여야 한다. 우리나라의 교육과정에 너무 얽매이기 보다는 어느 정도는 학생들의 개인적인 소질을 키울 수 있도록 도와주는 조력자가 되어야 한다고 생각한다.셋째, 학생들 모두다 서로 생활하는 환경이 다를 것이다. 이에 따라 각각 긍정적인 측면과 부정적인 측면을 가지고 있을 것이다. 교사는 부정적인 측면을 바라보기 보다는 긍정적인 측면을 바라보아 각각의 학생의 능력을 발견하고 키워 주어야 할 것이다.넷째, 교사는 학생들이나 여러 사람들과의 상호작용을 할 수 있어야 할 것이다. 교사는 학생들과의 상담도 할 것이고, 학부모와의 상담도 할 것이다. 그리고 학교생활을 하면서 여러 선생님들과의 대화를 통해 교육방법이나 교육환경에 대해 개선을 할 수 있을 것이다. 그렇기 때문에 효과적으로 상호작용할 수 있는 의사소통 능력이 있어야 할 것이다.다섯째, 교사로서 학생들에게 가르쳐 줄 내용에 대해 확실하게 연구하고 교육방법을 개발하여 학생들에게 잘 전달될 수 있도록 하여야 할 것이다. 각 환경에 따라 학생들의 학습 능력은 다르기 때문에 환경에 맞는 수업을 할 수도 있어야 하며, 상황에 맞는 자료를 제시하여 학생들의 학습에 도움이 되어야 한다.
◎ 병합정렬①void MergeSort(int data[] , int left , int right)②{③ int i , j , k , middle;④ if(right > left)//left 변수가 right 변수를 넘지 않는 조건 검사⑤ {⑥ middle = (left + right) / 2;//4행이 참이 되면 left 변수와 right 변수사이의 중간 값을 구하여 middle 변수에 저장⑦ MergeSort(data , left , middle);//left 변수와 middle 변수를 사용하여 MergeSort()함수 호출⑧ MergeSort(data , middle + 1 , right);//middle+1과 right 변수를 인수로 하여 MergeSort()함수를 호출⑨ for(i = middle + 1 ; i > left; i--)//중간 값을 갖는 middle에서 right까지 인덱스 i를 1씩 감소시키면서 데이터를 임시 데이터 저장공간 temp에 저장한다.⑩ temp[i - 1] = data[i - 1];⑪ for(j = middle ; j < right ; j++)//중간 값을 갖는 middle에서 right까지 인덱스 j를 1씩 증가시키면서 데이터를 temp에 저장한다.⑫ temp[right + middle - j] = data[j + 1];⑬ for(k = left ; k = j)//i가 j보다 크거나 같을 때 for문에서 빠져나오도록 조건을 검사⑫ break;⑬ temp = data[i];//값을 서로 변경하는 부분 13-15행⑭ data[i] = data[j];⑮ data[j] = temp;? }// for문으로 돌아가서 반복한다? temp = data[i];? data[i] = data[right];? data[right] = temp;//17-18행까지의 코드를 실행하면 변수 i가 가리키는 데이터값과 기준 데이터 값을 서로 바꾼다.? QuickSort(data , left , i -1);//20-21행 코드에서 퀵 정렬 함수를 다시 호출 다시 두 부분으로 쪼개어 퀵 정렬 함수를 실행한다. 이 퀵 정렬 알고리즘에서는 변수 i값을 기준으로 두 부분을 나눈다. 20행에서 재귀함수를 사용하여 기준데이터의 왼쪽데이터들을 정렬한다.? QuickSort(data , i + 1, right);//재귀함수를 사용하여 기준데이터의 오른쪽데이터들을 정렬한다.? }?}퀵정렬 알고리즘은 데이터 한 개를 선택하고, 선택한 데이터를 기준으로 나머지 데이터를 양쪽으로 가른 후 데이터를 정렬하는 방법이 가장 기본 구조이다. 이는 왼쪽 데이터들은 왼쪽대로, 오른쪽 데이터들은 오른쪽대로 퀵 정렬 함수를 진행한다. 이런 퀵 정렬 알고리즘의 기본특성상 재귀 호출을 이용하는 것이 간단하다.이 퀵 정렬 함수의 데이터들은 저장된 int data[]와 왼쪽 인덱스를 가리키는 left, 오른쪽 인덱스를 가리키는 right의 세 개의 매개 변수를 이용한다. 이 함수 가 실행이 되면 4행과 같이 변수 right가 left보다 큰지 검사를 하게 되는데 이는 이 함수가 재귀 호출 될 때 재귀호출을 끝내는 조건이 된다.그런 다음 5행에서 data의 가장 오른쪽 데이터를 변수 num에 저장하게 되는데 이는 하나의 데이터를 선택하는 내용으로 예를 들면[3][7][2][9][6][1][4][5][8]이 초기 상태라고 한다면 변수i는 [3]이되고 변수j는 [5] 기준이 되는 데이터는 [8]이 된다.그리고 8행의 for문으로 들어가서 9행의 코드에 따라 기준데이터 num이 왼쪽 데이터보다 크면 왼쪽 데이터를 가리키는 인덱스 변수 i를 계속 증가 하고 10행의 코드에 따라 기준 데이터 num이 오른쪽 데이터보다 작으면 오른쪽 데이터를 가리키는 인덱스 변수 j를 계속 감소한다.그런 다음 11행의 코드에서 I가 j보다 크거나 같을 때 for문을 빠져나오도록 검사를 하게 된다.이때까지의 코드 실행 저장된 값을 보면[3][7][2][9][6][1][4][5][8]여기서 변수i 는 [3]에서 [9]로 바뀌게 되고 변수j는 [5], 기준이 되는 데이터는 [8]이다.이를 보면 변수i는 기준이 되는 [8]보다 큰 값인 [9]를 만날 때 까지 계속 하나씩 증가를 하였고, 변수j는 기준이 되는 8보다 작은 값 [5]를 만날 때까지 계속 하나씩 감소를 하였다.그리고 13행에서 15행의 코드를 실행하게 되면 [9]와 [5]를 서로 교환하게 된다.[3][7][2][5][6][1][4][9][8]교환이 일어난 후에도 11행의 i가 j보다 크거나 같을 때 for문을 빠져나오도록 한 조건에 부합되지 않으므로 다시 8행의 for문으로 돌아가 9행과 10행의 코드를 진행하게 된다. 이때 위에서 보는 것과 같이 기준이되는 [8]보다 큰 수는 더 이상 없으므로 9행과 10행을 실행하게 되면 11행의 조건에 따라 변수 i가 변수j 보다 크기 때문에 11행의 조건에 따라 for문을 빠져 나오게 된다.[3][7][2][5][6][1][4][9][8]위에서 보는 것과 같이 변수i는 [4], 변수j는 [9], 기준이 되는 데이터[8]과 같이 저장이 되고 이는 11행의 조건에 부합이 되어 for문을 빠져나오게 되고, 17행과 18행의 코드에 따라 변수j 가 가리키는 데이터 값 [9]와 기준이 되는 데이터 값 [8]을 서로 바꾼다.[3][7][2][5][6][1][4][8][9]여기까지가 퀵 정렬 함수를 한번 실행한 것으로 여기까지의 코드들이 실행이 되고 나면 20행과 21행의 코드에서 퀵 정렬 함수를 다시 호출하여 코드를 다시 실행을 하게 된다. 이렇게 계속 반복 정렬이 되다 4행의 코드에 따라 right가 left보다 큰지 검사를 하여 right가 left보다 크게 되면 재귀호출을 끝내고 퀵정렬 함수가 끝나게 된다.◎ 힙 정렬①void HeapSort(int N)//힙정렬을 호출하고 정렬된 데이터를 배열에 저장②{③ int i;④ for(i = 0 ; i < MAX ; i++) //배열의 값을 차례로 힙에 삽입⑤ InsertData(Data[i]);⑥ for(i = MAX-1; i >= 0; i--)//힙의 최대값을 꺼내어 역순으로 저장⑦ Data[i] = RemoveData();⑧}⑨void InsertData(int v)//데이터를 힙에 추가하는 함수⑩{⑪ Buf[++NUM] = v;//힙의 노드수를 증가하고 v를 추가⑫ upheap(NUM);//upheap 동작 수행⑬}⑭void upheap(int k)//업힙함수⑮{? int v;? v = Buf[k] ; //v는 k번 노드의 키값을 가진다.? Buf[0] = MAX_INT;? while(Buf[k / 2]
2. 컴퓨터의 기초 03. 프로그래밍이 뭐야 ? ~ 04. 프로그래밍을 위한 생각 넓히기학 습 목 표 교과교육론 21. 프로그램이란 무엇인가 교과교육론 32. 프로그램 언어란 무언인가 교과교육론 4 ◇ 컴파일러 ◇ 고급 언어로 작성된 프로그램을 한꺼번에 목적 프로그램으로 번역하는 것을 컴파일이라 하고 , 컴파일하는 언어 처리 프로그램을 컴파일러라 한다2. 프로그램 언어란 무엇인가 교과교육론 5기계어란 ? 컴퓨터의 중앙 처리 장치가 직접 알아들을 수 있는 언어로 1 과 0 으로 이루어진 2 진 코드로 구성되어 있다 . 사람이 직접 프로그램을 작성하기 어려우므로 현재 사용하는 일은 드물다 . 교과교육론 6어셈블리언어란 ? 기계어 2 진 코드 하나하나를 사람이 이해할 수 있는 상징화된 명령어로 대응시켜 프로그램 작성이 가능하도록 만들어진 언어이다 . 교과교육론 7제 3 세대 언어란 ? 사람이 다루기 쉬운 언어들을 명령어로 구성하여 프로그램 작성이 쉽도록 하였다 . 효율적인 프로그램이 가능하나 작성된 프로그램은 기계어로 번역하는 과정이 필요하다 . 베이직 (BASIC) 언어 , C- 언어 , 포트란 (FOTRAN) 등 교과교육론 8제 4 세대 언어란 ? 좀더 사람이 일상생활에서 사용하는 언어 구조에 가까우며 처리 결과 표현에 중점을 두고 처리 과정에 대한 표현이 많이 생략되어 프로그램 작성이 훨씬 쉬워진 언어이다 . 구조적 질의 언어 (SQL), 각종 스크립트 (SCRIPT) 언어 등이 이에 속한다 . 교과교육론 93. 프로그램은 어떤 모습일까 교과교육론 103. 프로그램은 어떤 모습일까 교과교육론 113. 프로그램은 어떤 모습일까 교과교육론 124. 순서도란 무엇인가 교과교육론 13 시작 변수 z 에 들어 있는 합한 결과를 인쇄한다 변수 x 에 10 을 넣는다 변수 y 에 20 을 넣는다 변수 z 에 x 와 y 의 합을 넣는다 끝 그림 2-13 순서도와 프로그램의 예 처리 출력 단자 단자 처리 처리 X=10 Y=20 Z=X+Y Printf Z 자료 입력 비교판단 준비5. 순서도 응용 교과교육론 14 삼각형 면적을 계산하는 간단한 프로그램을 만들어 보자 . ▷ 과제분석 삼각형의 면적을 구하는 공식은 삼각형의 밑변 × 높이 ×1/2 이다 . 그림 2-15 를 보면 밑변이 8cm, 높이 5cm 인 삼각형임을 알수 있다 . 그림 2-15 삼각형의 예5. 순서도 응용 교과교육론 15 시작 계산된 면적을 출력한다 . 밑변 값을 입력한다 . 높이 값을 입력한다 . 면적 = 밑변 × 높이 ×1/2 끝 ▷ 과제분석 삼각형의 면적을 구하는 공식은 삼각형의 밑변 × 높이 ×1/2 이다 . 그림 2-15 를 보면 밑변이 8cm, 높이 5cm 인 삼각형임을 알수 있다 .5. 순서도 응용 교과교육론 16 - 밑변 , 높이 , 면적 X=10 Y=20 Z=X+Y printf Z A=8 B=5 C=A*B*1/2 printf C5. 순서도 응용 교과교육론 176. 프로그램 작성 순서 교과교육론 187. 좋은 프로그램은 ? 교과교육론 19{nameOfApplication=Show}