U E D R , A S I H C RSS

새싹교실/2014/다빈치인재반 (rev. 1.71)

새싹교실/2014/다빈치인재반

1. 참여자

2. 진행

  • 매주 금요일 오전 10시에 진행합니다. 컴공타임 적용해서 10시 30분에 시작
  • 주제는 그날 그날 필요한 것 + 자료구조 PPT

3. feedback

  • 새싹교실이 ZeroPage에서 시행되는만큼 4F(ThreeFs + Future Action Plan)에 맞게 feedback을 작성합니다.
    • Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
    • 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
      • 설마 이것보다 더 짧게 쓰진 않겠죠? 믿을게요
  • feedback은 최대한 성의있게 써주세요.
    • 반드시 ZeroWiki에 작성해주세요. 하위 페이지를 만드는 것도 허용합니다.
    • 여러분들이 배운 내용을 정리해주세요. 학습효과가 더 커집니다.

  • 참고로 ZeroWikiMoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.

4. 수업 일지

4.1. 1회차(3월 13일)

4.1.1. 참여자

강사 권영기 O
새싹 금강현 O
권준혁 O
이지수 O

4.1.2. 구성원들의 실력 파악

  • 준혁 : C언어 문법 공부함. 비쥬얼 베이직으로 프로그램을 작성해봤음.
  • 강현 : 포인터 전까지 공부했다. 포인터도 곧 배울 거다.
  • 지수 : 포인터 전까지 공부했다. 자바도 배웠다. 클래스도 안다.
  • 영기 : C언어를 사용할 줄 암. 자바를 사용할 줄 암. 코딩을 오랫동안 안 함

4.1.3. 구성원들이 원하는 점

  • 자료 구조.
  • 포인터, 메모리 구조.

4.1.4. 과목 선택

  • 자료 구조, C언어 포인터, 메모리 구조, 간단한 컴퓨터 구조 잡탕...

4.1.5. 시간

  • 금요일 오전 10시 이후, 2시간 정도.

4.1.6. 그 외

  • 학생들 모두 위키 작성법에 대해서 간단히 학습함.

4.1.7. 후기

  • 드디어 새싹을 시작합니다. 학생들은 모두 C언어 공부를 해왔기 때문에 그때 그때 필요한 것 위주로 가르칠 생각입니다. 이번 새싹 교실도 무사히 진행되길 빕니다. 가장 걱정한 반 이름 결정은 생각보다 쉽게 정해져서 다행이었음. - 권영기
  • 오 이번에도 하는구나ㅋㅋ 화이팅ㅋㅋ 다빈치ㅋㅋㅋ - kero
  • 지켜보고있다 - 정의정

4.2. 2회차(3월 21일)

4.2.1. 예정

  • Compile
  • Pointer
  • Call by Value / Call by Reference
    * 이중포인터
    * C 메모리 구조

4.2.2. 참여자

강사 권영기 O
새싹 금강현 O
권준혁 O
이지수 O

4.2.4. 숙제

  • 후기 남기기.
  • 포인터를 사용하여 두 변수의 값을 교환해주는 함수를 작성하시오.

4.2.4.1. 이지수

#include<stdio.h>

int main()
{
	int x = 5, y = 8, z;
	int *p, *q;
	p = &x;
	q = &y;

	printf("p의 값은 %d, q의 값은 %d\n",*p, *q);

	z = *p;
	*p = *q;
	*q = z;

	printf("p의 값은 %d, q의 값은 %d\n",*p, *q);

	system("pause");
	return 0;
} //함수가 아니라 틀렸다!! 라고 조심스래 말해봅니다,,, 권준혁
권준혁의 태클로 수정습니다.
#include<stdio.h>

void exchange(int *a, int *b);

int main()
{
	int m, n;
	int *ptr1, *ptr2;
	printf("두 정수 a, b 입력 :");
	scanf("%d %d", &m, &n);
	ptr1 = &m;
	ptr2 = &n;

	
	exchange(*ptr1, *ptr2);

	printf("두 정수 a, b 출력 : &d %d",m,n);
	system("pause");
	return 0;
	
}

void exchange(int *a, int *b)
{
	int z;
	z = *a;
	*a = *b;
	*b = z;

}

근데 이거 돌려보면 처리되지 않은 예외가 있다고 뜨네요..왜지?
후 지수야,,, printf에 &d가 아니라 %d지...exchange(ptr1,ptr2)지...아직 멀었구나...- 권준혁
컴파일해봤는데 오류떠서 봤더니 stdlib.h가 include 안되있구나... system() 쓰려면 필요함 - 권준혁
  • ?! 근데 첫번째코드에선 왜 stdlib.h인클루드 안했는데 오류가 안났지??
  • 금방 돌려봤는데 에러뜨던데? 근데 프로그램 실행은 되더라 - 권준혁

4.2.4.2. 권준혁

함수만 만들기 뭐해서 main함수까지 작성했습니다
#include<stdio.h>
//여기부터가 함수
void switch(int *xp, int *yp){
int temp;
temp = *xp;
*xp = *yp;
*yp = temp
}
//여기까지가 함수

int main()
{
     int a = 39, b =573;
     int *ap;
     int *bp;
     ap=&a;
     bp=&b;
     printf("바꾸기전에는 %d, %d",a,b);
     switch(ap,bp);
     printf("바꾸기후에는 %d, %d",a,b);
     retrun 0;
}

//컴파일 안돌려본거라 문법상 오류가  있을지도 모르겠음,,,
//함수는 문제없을듯
그런데 retrun은 생전 처음보는데요, 이게 뭐죠? - 이지수
retrun -> return - 권영기
중요한 함수부분은 문제 없으니 맞다고 열심히 변명해봅니다 - 권준혁

4.2.4.3. 금강현

으어.. 내가 젤 못해ㅠㅠ
#include<stdio.h>
int main()
{
	int num1, num2, *num1_p, *num2_p, temp;
	scanf("%d\n", &num1);
	scanf("%d\n", &num2);
	num1_p = &num1;
	num2_p = &num2;
	temp = num1;
	*num1_p = num2;
	*num2_p = temp;
}

  • malloc(), calloc(), realloc(), free()에 대해서 찾아보기.
    C reference 사이트.
    malloc
    realloc
    calloc
    free



4.2.5. 찾아보면 좋은 사이트

4.2.6. 후기

  • 포인터 복습. 잊혔던 기억이 되살아나서 감회가 새로웠다. 재미있었음! 바로 다음 시간에 기프 수업 듣는데 컴파일 과정이 나왔다. 예기치않게 예습한 셈이 됨ㅋㅋ - 이지수
  • 목표한 진도까지는 나갔습니다. 학생들이 공부를 미리 해왔기 때문에 진행이 수월했네요. 주변에 도움을 주는 사람들도 많아서 진행하기 좋았습니다. 자료구조 시간에 배웠던 내용을 그대로 진행해보고 있는데 이렇게 되면 다음 시간도 이론 수업이겠네요. 아무래도 실습은 과제로 내주는 방법 밖에는 없겠습니다. 진행을 하면서 한 가지 아쉬웠던 점은 나올 수 있는 질문에 대해서 미리 준비하지 않은 점. 다음 시간에는 그 점을 더 보강해야겠습니다. - 권영기
  • 배웠던 내용을 복습했다. 다음시간부터는 모르는거라 설랜다. 권영기선배님 설명도 좋았다. 그냥 좋다 권준혁

4.3. 3월 28일 (3회차)

4.3.1. 예정

  • C 메모리 구조.
  • malloc, calloc, realloc, free
  • 이중 포인터
  • 자료 구조? 알고리즘?
  • 시간복잡도, 공간복잡도.

4.3.2. 참여자

강사 권영기 O
새싹 금강현 O
권준혁 O
이지수 O

4.4. 4월 11일 (4회차)

4.4.1. 예정

  • 시간복잡도
    • 정렬
      - 삽입 정렬
    • 피보나치 수
      - 재귀적 방법
      - 순차적 방법
    • 시간이 남아서 분할 정복.
      - 피보나치 수
      - n개의 점이 주어졌을 때, 가장 짧은 거리의 선분 구하기.
    • 시간이 남아서 동적 프로그래밍.
      - 피보나치 수
  • 스택

4.4.2. 참여자

강사 권영기 O
새싹 금강현 O
권준혁 O
이지수 O

4.4.3. 참고 자료

4.4.4. 숙제

  • 삽입 정렬 구현.
  • 피보나치 수 재귀적 방법으로 구현.
  • 스택 혼자서 구현해보기.
  • 어차피 시험 기간이어서 못할수도 있으니 시험 공부하다가 질리면 하던가 바쁘면 안해도 됨.

4.4.5. 후기

  • 항상 예상보다 빨리 진행이 되서 걱정입니다. 앞으로는 숙제를 내야겠습니다. 시험들 잘보세요. - 권영기
  • 정렬과 스택을 배우고 divide&conquer도 살짝 배웠습니다. 이제부터는 전혀 모르는 내용이라 새롭고 재미있었습니다. 권영기 선배님이 알기 쉽게 잘 가르쳐주셔서 이해하는 데에는 별로 어렵지 않았습니다. 하지만 스스로 프로그래밍해보면 어려울 듯 합니다ㅠㅠ 어쨌든 이렇게 도전적인 내용을 배울 수 있어서 좋습니다. 선배님 ppt도 올려주세요!! 바쁘신데 늘 감사합니다ㅠㅠ - 이지수
  • 시간 쪼개서 해주시는데 항상 늦게 가서 죄송할 따름입니다. 성실한 수업태도와 착실하게 숙제를 함으로 보답하겠습니다. 이제부터 슬슬 머리굴리는게 나오는 것 같습니다. 기대됩니다 ㅎ 권준혁

4.4.6. 다음 수업

  • 중간고사가 금요일에 끝나서 새싹을 진행할 수 있을 것 같으면, 4월 25일에 진행.
  • 4월 25일에 불가능할 것 같다면, 5월 2일.

4.4.7. 숙제

  • 권준혁
  • 피보나치 구현

#pragma warning(disable:4996)
#include<stdio.h>
int pibo(int num);

int main(){
	int input = 0;
	
	printf("피보나치수 몇번째수를 출력할깝쇼? : ");
	scanf("%d", &input);
	printf("\n이거에요 : %d", pibo(input));

}

int pibo(int num){
	if (num == 1 || num == 2) return 1;
	int temp = pibo(num - 1) + pibo(num - 2);
	return temp;

}

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:29:50
Processing time 0.0406 sec