누가 프로그래밍을 배울 수 있습니까? [닫은]


17

저는 CS 유형 학위를 취득한 사람들의 비율을 개선하기 위해 교수들과 대화 할 때 항상 원하는 것을 생각하기 시작하는 수에 비해 주저합니다. 한편으로 저는 전문가가 참여하고이 피드백을 제공하는 것이 중요하다고 생각합니다. 반면에 하위 학급 학생들이 CS 학위를 잃는 것이 더 좋습니다.

나는 모든 분야가이 분야를 위해 만들어 졌다고 생각하지 않으며, 당신은 좋은 평생 학생이어야합니다. 간절히 바라는 인내심과 문제 해결 능력이 높아야합니다. 당신이 "올바른"종류의 뇌를 가지고 있다면, 그 어려운 문제들이 당신을 계속하게하는 원동력입니다. 당신이 쉬운 문제의 긴 목록을 얻는다면 당신은 지루 해져서이 사람들은 실제로 더 반복적 인 일을 잘하지 않습니다. 나는 모든 세부 사항을 다룰 필요는 없습니다 ...이 글을 읽고 있다면 아마도 내가 무엇을 얻고 있는지 알 것입니다.

그래서 문제는 : 충분한 사람들이 자금을 조달하고 성공을 거둘 수 있지만 학위를받지 못한 사람들을 배제하지 않는 학위 프로그램의 균형을 어떻게 찾습니까? 더 좋은 질문은 학위 프로그램의 변경 사항이 더 나은지 확인하기 위해 어떤 메트릭을 사용하는 것입니까? 높은 졸업률이 좋은 척도라는 것을 모르겠습니다. 그리고 수년 후에 졸업생들이 보유한 직업에 대한 피드백을 너무 많이 지연시키는 것처럼 보입니다.

나는이 질문에 오랫동안 어려움을 겪었습니다. 주로 대답이 없다고 생각하기 때문입니다. 하지만 실제로 수행 된 연구에 대해 아는 사람이 있는지 물어 보겠다고 생각했습니다.

추가 : 최근에 저는 매우 현명한 교수에게 CS 학위를 취득한 모든 사람이 실제로 그 의미를 발견 한 후에는 풀 타임 프로그래머가되기를 원하지 않는다는 것을 상기시킵니다. 그러나 그들이받은 교육을 통해 훌륭한 프로젝트 관리자, 관리자, 시스템 관리자 등을 만들 수 있었을 것입니다. 저는 이것이 여기서 고려하지 않은 아주 좋은 시점이라고 생각합니다. 전공 분야에서 일을하지 않는 사람들의 비율은 매우 높으며, CS도 예외는 아닙니다. 여분의 사람들을 갖는 것은 학위 예산뿐만 아니라 프로그래머와 함께 일하기에 충분한 지식을 가진 비 프로그래머의 비율을 늘리는 데 도움이됩니다.


@ Job- 고마워요. 좋은 지적이어서 기분이 훨씬 나아졌습니다.
Beth Whitezel

2
@job : 이제 NMR 기계를 프로그래밍하는 심리학 전공으로 말하면 그 점을 증명할 수 있습니다.
매트 엘렌

답변:


33

좋아, 대중의 수요에 의해 ... 자유 시장이 알아 내자. 심리학 전공의 95 %가 다른 일을하게됩니다. CS 학위 / 소액을 가진 모든 사람이 프로그래밍을 끝내는 것은 아니지만 관리자, 분석가, 프로젝트 관리자가없는 사람보다 우수합니다. 어깨에 세상의 무게를 지르지 마십시오. CS 학위는 종이 일뿐입니다. 수학, 물리, 화학, 생물학 학위를 가진 사람들은 프로그래머가되고 CS 학위를 가진 사람이 모두 프로그래머가되는 것은 아닙니다. 최고의 야구 선수가되기를 갈망하는 수백만 명의 아이들이 없다면, 우리는 그런 위대한 별을 갖지 못할 것입니다. 시스템이 자체 조정됩니다.


나는 어느 정도 동의하지만 물리학, 수학 및 기계 공학 학위를 가진 사람들이 프로그래머라고 생각한 코드를 지원해야했습니다. 누군가가 자신의 일을 위해 무언가를한다고해서 그들이 잘하는 것은 아닙니다.
Joel C

7
CS 학생들이 작성한 많은 나쁜 코드를 보았습니다. 수학이나 물리학 등의 사람들이 작성한 놀라운 코드를 보았습니다. 정확히 공부 한 것과 코드의 품질 사이에는 거의 상관이 없습니다.
jhocking

1
또한 생물학으로 가십시오!
jhocking

11

욥의 대답이 명심하기 위해 중요하다고 생각하지만, 같은 대답이 학위 밀기에 적용될 수 있습니다. "저는 $ 199.95를 내 CS 학위를 줬습니다."

"실제 프로그래머"가 무엇인지에 대한 표준에 따라 학생의 몸을 아는 것은 실제로 당신의 일이 아닙니다. 학생들에게 프로그래밍 / 디자인 방법을 가르치는 것은 (아마도?) 대학에서 생각하는 방식을 바꾸지 않았다면 그곳에서 시간을 낭비하게됩니다. 당신의 목표는 프로그래머가되어 더 나은 사고 방식을 바꾸는 것에 관심을 보이는 학생을 보여주는 것입니다. 그것들을 보여줌으로써 간접적으로 그렇게합니다.

  1. 프로그래밍이 실제로 무엇인지 ...
  2. 그들이 할 수 있다고

우린 잘못 해

우리 대학 프로그램의 95 %가 프로그래밍 / CS를 가르치는 방식이 끔찍하다는 것을 보여주는 광범위한 연구가 있습니다. 평균 CS 프로그램은

  • C ++ / Java / C #의 기본 프로그래밍 학기는 16 주 동안 "이것은 for 루프"보다 몇 가지 고급 사항을 가르치는 데 사용됩니다. 물리학 부서에서 운동학을 시작하기 전에 한 학기 동안 그리스어 알파벳을 연구했다면 유추 할 수 있습니다.
  • 두 번째 신입생 학기는 기본 데이터 구조를 배우게되며 보통 학생들의 1/3에서 절반 정도를 완전히 떠나게됩니다.
  • 2 학년은 어셈블리, 데이터 구조, 알고리즘 분석, 윤리 과정 및 첫 번째 주제 과정의 조합에 사용됩니다. 올해는 신입생의 절반을 잃는 경향이 있습니다.
  • 주니어와 시니어는 "그래픽", "네트워킹 I 및 II", "운영 체제"와 같은 이름을 가진 수업에 참여하며 학생들이 처음 접하는 흥미로운 자료입니다.

거의 다른 것이 더 좋습니다

거의 모든 실험은 주제에 대한 학생의 이해와 프로그램 등록 및 졸업률 측면에서 측정 된 상황을 개선합니다. ACM CSE 의 저널 에서 본 몇 가지 실험 은 다음과 같습니다.

  • 매우 간단한 이론적 상태 머신에서 어셈블리 및 C에 이르기까지 구축하여 상급 연도에는 C # / Java로 끝납니다. 초점은 추상화 계층을 천천히 크롤링하는 것입니다.
  • 데이터 구조와 추상화에 학생들을 집중시키기 위해 매우 "간단한"언어를 선택합니다. 신입생 연도 말까지 복잡한 웹 응용 프로그램을 체계 변형으로 작성하는 학생들에게 좋은 결과를 얻었습니다. (그것은 표시하기 전에 체계를 통해 페이지 텍스트를 실행하는 수정 된 위키였습니다 ... 일종의 재미)
  • 학생들을 특정 영역 (네트워킹)에 초점을 맞추고 모든 Java 구조 / 문을 "옆으로"가르치십시오. 두 번째 주 학생들은 메일 서버를 핑하여 이메일 목록을 보았습니다. 최종 프로젝트는 간단한 IM 클라이언트입니다. 초점은 학생들이 프로그래머가 세계의 한 부분을 만드는 방법을 보여주는 데 있습니다.
  • 일부 프로그램은 로봇 공학에 중점을 둡니다. 신입생은 레고 마인드 스톰과 함께합니다 ... 2 학년은 C와 같은 API를 사용하고, 주니어와 시니어는 캠퍼스 간 협업을 통해 ME 및 EE와 협력하여 상당히 복잡한 시스템을 구축합니다.
  • 한 프로그램은 학생들이 전반 학기의 READING 코드에 중점을 둡니다. X11 시스템의 코드를 분석하여 코드 작성을 시작하기 전에 8 주 정도 동안 흐름 제어 및 기본 구문을 가르칩니다. 그들의 첫 번째 프로그램은 약간의 행동을 수정하기위한 작은 패치입니다.

이 실험들 각각은 학생의 초기 관심, 지식 이전 및 졸업까지의 보존에있어 크게 개선되었습니다. 일부는 다른 대학보다 특정 대학 환경에 더 적합하지만 위 단락에 설명 된 구조를 따르는 경우 스스로에게 "이 프로그램의 처음 2 년 동안 고집 하시겠습니까?"


우리는 그들에게 프로그래밍이 무엇인지, 그리고 나중에 어떻게하는지에 관계없이 사고 과정을 어떻게 바꿀 수 있는지에 초점을 두어야한다는 점에 동의합니다. 좋은 생각.
Beth Whitezel

2

프로그램하는 것은 원하는 결과를 얻기 위해 논리적으로 지시하는 것입니다. 다시 말해, 컴퓨터에 어떤 작업을 수행하도록 지시하는 것입니다. 앞으로 나아갈 수있는 유일한 방법은 연습하는 것입니다.

영어 나 다른 언어를 배우는 것처럼 구문 (알파벳)을 배우고 문법과 다른 구성으로 넘어 가야합니다. 필요한 시간은 언어의 복잡성에 따라 다릅니다. SQL과 같은 고급 언어로 코딩하는 Python은 영어를 쓰는 것과 거의 같습니다.


2

몇 가지 측면이 도움이 될 것입니다.

  • 현대의 현실 세계를 알고있는 교수 . 그들이 현재 기술에 대해 이야기하고 그것이 이론적 프레임 워크에 어떻게 적용되는지에 대해 이야기 할 수 있다면, 그것은 현재 기술을 참조하지 않고 VAXen의 해부보다 역사를 모르는 역사와 관련이 있습니다.

  • 부서 지원 인턴쉽. 해당 부서에서 기술 회사와의 2 년 이상의 유급 업무를 보장 할 수 있다면 큰 동기를 부여 할 수 있습니다.

솔직히 현대 컴퓨터 과학 학생들은 5-10 년 전에 살았던 사람들보다 훨씬 더 축복을 받았습니다. 저급 시스템을 구입 한 다음 VM을 설치하고 여러 언어, 운영 체제 등 을 무료 로 배우는 기능 은 이러한 인 에이 블러이므로 과장하기가 어렵습니다.

물론, 호퍼와 크 누스와 같은 중요한 사람들은 빛을 발하지 않고 스스로를 가르쳤다. 천재가 나옵니다.


이 아이디어는 훌륭하지만 두 여름의 보장 된 유료 인터 워킹 작업은 불행히도 현실적이지 않습니다. 그렇습니다. 유급 인턴쉽이 있지만 대부분의 대학원생들은 지금 한 번의 급여를받는 것이 운이 좋으며 종종 무급으로 정산해야합니다. 다른 주에서는 다를 수 있습니다. 나는 당신이 그들에게 더 많은 기능을 가지고 있다고 생각합니다. 그들은 더 많은 오픈 소스 프로젝트에 기여할 수 있었고 몇 년 전도있었습니다.
Beth Whitezel

@BitOff : CS 무급 인턴쉽에 대해 들어 본 적이 없습니다.
Paul Nathan

농담 없어요? 현지화 된 것이어야합니다.
Beth Whitezel

1

학위 프로그램 이외의 잠재적이고 성공적인 학생들을위한 준비 영역을 만들어 위험을 완화하십시오. 여기에는 지역 고등학교에서 AP CompSci 수업을 후원하여 밀과 왕겨를 사전에 분리하는 것이 포함될 수 있습니다. 이것이 너무 어려운 것으로 판명되면 고등학교 또는 대학 부서에서 CS 중심 프로그램으로 지역 DECA 장에 침투하거나 새 장을 만들어보십시오. 반대로, 당신은 경영 능력을 추구하는 기업가 학생들을 실현시킬 것입니다. 아마도 CS 잠재력을 통해 학업 매체를 통해 비즈니스 목표를 달성 할 수있는 새로운 길입니다.


그렇습니다. 저는 대학 초반에 CS를 소개하기 위해 더 많은 노력을 기울여야한다는 데 전적으로 동의합니다. 나는 대부분의 고등학교가 프로그래밍 언어로 들어갈 수있는 하나 또는 두 개의 고급 컴퓨터 수업을 제공한다는 것을 알고 있지만 충분하지 않다고 생각합니다. 나는 당신이 4-6 학년 학생들에게 단순하고 아이에게 친숙한 언어를 가르 칠 수 있다면 올바른 나이에 그들의 관심을 사로 잡을 것이라고 생각했습니다. 나는 8 살이나 9 살 때 처음으로 기본을 배웠는데, 실제로 10 년 정도 걸렸지 만 실제로는 "프로그래밍"이라는 큰 기억을 갖게되었습니다.
Beth Whitezel

1

핵심은 그러한 프로그램의 다른 수준을 이해하는 것입니다.

대학-이것은 공부를 위해서만 공부할 수있는 경향이 있습니다. 이 경우 프로그램을 만들고 조정하는 측면에서 매우 다른 표준이 존재할 수 있습니다.이 이론은 이론적 일 수 있습니다.

대학-이들은 직업 지향적 인 경향이있어 업계의 피드백과 회사와 대학을 연결하는 것이 핵심입니다. 졸업 후 6-12 개월 동안의 배정을 보는 것은 졸업 후 사람들이 얼마나 잘 지내는지를 보여주는 지표가 될 수 있습니다. 중요한 질문으로 누군가가 시간과 돈을 들여 그 교육을 가치있는 것으로 보았는지 여부입니다. 이 프로그램은 약간 짧을 수 있으므로 프로그램 업데이트가 더 빈번 할 수 있습니다. 예를 들어 대학 명예 학사 프로그램은 4 년, 대학 졸업장 프로그램은 18-24 개월입니다. 따라서이 부분을 회사와 연결하여 사람들이 업무에 노출되어 자신에게 효과가 있거나 효과가없는 것을 확인할 수있게하는 것이 더 큰 과제입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.