본문 바로가기
# 공부/# 프로그래밍 언어들

[about Study] python, c++진도에 대해

by 쁘레레레레레 2021. 11. 19.

최근 비전공자 상대로(전공자도 있음) Programming Study를 시작했는데,

예상외로 많은 사람들이 왔고 많은 사람들이 찍먹도 안해보고 나갔다. 상당히 짜증남

아무튼 파이썬과 cpp을 진행하게됐는데, 우선 파악해야할것은 학생들의 레벨이다.

 

들어보면 전부 기초는 가능하다.라고 해서 cpp의 경우 포인터, python의 경우 함수나 클래스에 대해 물어보니 아는 사람이 단 한명도 없었고, 그리하여 for문을 이용한 별찍기로 테스트를 봤다.

 

생각보다 레벨이 낮은사람들이 많았고 특히 컴맹인 친구도 있었다!

 

뭐 어쨋건 이왕 시작한거 예전 기억을 살려 해보기로 했다.

 

python의 경우

주 2회 2시간씩

변수의 타입 -> input/output -> 조건제어문 -> 반복문 -> if문을 이용한 학생관리 프로그램 -> 반복문을 이용한 별찍기 -> 별찍기 심화 -> 반복문을 이용한 베스킨라빈스 31게임 혹은 가위보위보 게임

-> 리스트에 대한 전반적인 것들 주로 메모리에 대한 개념이 필수적이고 포함된 함수 사용법 주의할점 등등 보통 list와 같이 나오는 애들은 다 비슷해서 list에서 뽝 가르치고 tuple dictionary set을 가르쳤다.

가르친양은 대략 list >>>>> tuple >> dictionary > set 이정도?

-> 함수 -> 함수응용 -> 클래스 -> 클래스 응용 이정도이고

 

cpp의 경우도 비슷한데 중간중간 포인터나 구조체가 들어간다는 정도?

 

이번 스터디를 하며 느낀건, 기존 학원에 있던 중고딩들은 이해를 했는지 안했는지 애들이 말을 안하고 끄덕끄덕만해서 진도를 일단 나가긴 나갔는데, 스터디의 경우 그런건 상관없어서 적어도 기초교필인 기초프로그래밍을 개꿀빨수 있게 해주고싶었다.

 

대부분 순조롭다. 하지만 역시 이해를 하는건지 못하는건지 대부분 알 수 없는데, 그나마 python반은 좀 더 친해져서

컴맹인 친구와 나랑 카페에서 얘기했던 친구는 그나마 어느정도 파악이 가능했다. 특히 컴맹인 친구는 정말 컴퓨터를 모른다. 그래서 꽤 흥미로운 친구다. 성격자체도 뭔가 뽀송뽀송한 이불같다.  대화를 더 해봐야알겠지만, 일단 마인드가 착한친구.

 

아무튼 서로 레벨도 레벨이지만, 무엇보다 놀랐던건 받아들이는 방식과 차이다. 내 경우는 어릴때 시절부터 한결같이 이런식으로 생각을 해왔고 다른사람도 그렇겠거니 하면서 20대후반이 되는동안 그냥 그런갑다하고 살았는데, 최근 친형에게 컴활1급에 대해 알려주면서, 그리고 스터디를 리드하면서 깨달았다.

아, 이게 다 차이가 있구나. 하지만 공과쪽 친구들은 아무래도 어떻게 채워야하는지 감은 있는 친구들. 한마디로 머리를 좀 굴릴줄 아는 친구들. 반면 인문계열친구들은 그게 좀 부족했다.

하지만 아이러니하게도 내가 생각하는 현 클래스 1위는 영문과친구.

 

아무튼 음.. 다방면으로 연구를 많이 했다. 살면서 딱히 잘하는게 없는 대신 못하는것도 없었다. 흡수력이 빨랐지만 언제나 리미트는 존재했다. 한마디로 평타하난 기가막히게 치는 삶을 살았는데, 그때문인지 어릴적부터 이과식으로 생각했던 난 상상력도 좋아서 책을 끼고 살았다. 그 덕에 어릴때부터 글빨이 괜찮았다. 지금은 아니지만.

 

곰곰히 생각해봤다. 이 친구들이 잘하는것 잘 받아들이는 방식을 연구해보자!

해서 연구한건, 외우는것. 하지만 이는 내가 가장 싫어하는것이다.

어쨋건 코딩이란건 논리라는게 매우 지배적이고, 외우게되면 결국 변칙적인 문제에 대해선 대응이 안된다.

 

그래서 선을 정했다. 코드만 제외하고 외우도록. 그것도 모든 코드를 말로 풀이해서 좀 더 흡수가 잘 되게 유도했다.

예로들어

n = int(input())

while True:

    if n > 10:

         break

    if n % 2 == 0:

         continue

     n+=1

 

대략 이러한 코드를 두고 글로 풀어서 설명을 해줬다. 그것도 글로 써서 pdf화해서 줬다.

 

친해서 반은 반말 반은 존대로 했다.

input()은 입력받는앤데, 얘는 무조건 타입이 string형식이라 int로 캐스팅을 해서 n에 넣어줬다.

한마디로 너가 입력한 숫자가 n이라고 말할거다.

While은 참일때 안쪽에 있는 코드를 실행시키는것이고,  True는 언제나 참이므로 무한루프다.

만약 n이 10보다 크면 멈춰라. 그리고 또 하나의 조건은 만약 n을 2로 나눈 나머지가 0일때 이는 즉 짝수일때, 이 밑에 코드는 무시하고 한바퀴를 돈다는뜻.

위 두 조건이 아닌경우 n에 1을 더하겠다. 그리고 이걸 계속 반복한다는뜻이다.

 

뭐 대충 이런식으로 옆에 주석처럼 #으로해서 애플펜슬로 힘줘서 적어주긴했다.

 

알고보니 자격증이나 이런것때문에 매우 바쁘다는 얘기를해서 조금 더 신경써주기로 했다.

사실 사심이 좀 있긴하다. 물론 티는 안낼것이다.

 

아무튼.. 이해잘하는 친구와 이해가 더딘 친구들을 가르치는 이의 머리에서 갈라놓고

각기 다른 방식으로 지도하는게 꽤 큰점인것 같다.

이해 잘하는 친구들은 하나를 알려주고 쓰이는방법 예시를 알려주고, 문제를 낸다.

물론 베끼기 금지라해도 할 사람은 하기때문에 그냥 내가 존재안했던 문제를 만들어 skeleton코드로 제공했다.

 

그리고 그 시간에 이해가 더딘 친구들을 밀착마크해서 하나하나 짚으면서 넘어가는것.

 

사실 두 클래스 합해서 이런 친구는 단 한명이다.

이 친구가 절대 못하는게 아니다. 의지력이 매우 강한 친구이다.

다른 의지가 다소 약한 사람들은 진작에 찍먹하고 도망갔는데, 이 친구는 바쁨에도 불구하고 매번 나와준다.

 

자취 이후로 성격을 다시 살려보자는 마음에서 한 스터디고 딱히 정신적으로 좋아지거나 하진 않았다. 약도 먹고 독도 먹었기에.. 하지만 일단 최대한 밀어붙여보자 라는 마인드로 있다.

 

세상은 기브앤테이크면 좋지만, 그게 안되는경우는 그냥 기브여도 좋다고 생각한다.

그래서 이 친구들에게 내가 얻어가는건 없지만, 이 친구들에게 뭔가 어떤 언어 기초를 땟다 그래서 이정도 기초는 껌이다! 라고 말할정도의 실력을 키워주고 싶다.

 

그리고 늘 하는말이 있다.

내가 잘하는게 아니고, 너희가 못하는게 아니다. 난 단지 너희보다 나이가 많고 빨리 시작했을뿐 너희들의 포텐셜은 모른다. 너희가 나보다 잘해질수도 있고 그럼 난 그때가면 너희한테 배우면 되는것이다.

 

이 말이 도움이 되었으면 좋겠다.

 

암튼 일기장처럼 변해버렸는데

 

요약하자면, 이해잘하는사람 / 이해가 더딘사람 ( 못하는게 아님 ㅡㅡ )

내 머릿속으로 나눠서 진도를 다르게 빼고, 빠른사람을 위주로 하되, 이 사람들 진도를 빨리 빼버리고

더딘사람들을 돌다리 하나하나 건드려 건너듯 가르치는게 효과적이라고 생각함

'# 공부 > # 프로그래밍 언어들' 카테고리의 다른 글

[Python] 공부루트?  (0) 2021.12.06