Datastructure

이번 Sprint의 학습 목표

  • 프로그래밍에 사용되는 다양한 자료구조(data structure)가 무엇들이 있는지 배운다
  • 각각의 자료구조가 동작되는 원리를 이해하고 장단점을 파악하여 어느 상황에 사용해야 유리한지 파악한다
  • 다양한 데이터 구조를 자바스크립트 언어를 이용하여 스스로 구현해(흉내내) 본다
  • 객체지향프로그래밍(OOP) 의 개념과 특징을 자바스크립트 프로토타입 객체지향을 사용하여 익히고 적용해 본다
  • JS object 를 만드는 방법을 배우고 만든 object를 위한 method 를 만드는 다양한 방법들(instantiation patterns)을 배운다
  • 각각의 데이터구조 안에서 각 액션의 시간 복잡도를 계산할 줄 안다

Sprint를 시작하기 전 알고있어야 하는 것들

  • Pre Course에서 배운 Javascript 지식들

Pair programming을 시작하기 전 혼자서 해볼 것들

  • 다양한 Datastructure에 대해 스스로 공부하고, sudo code를 작성해봅니다.

Pair programming에서 해볼 것들

  • Stack 과 Queue 를 functional, functional shared, prototypal, pseudoclassical 4가지 방법으로 구현합니다.
  • Linked List 를 functional style로 구현합니다.
  • Tree 를 functional shared methods style로 구현합니다.
  • Graph 를 pseudoclassical style로 구현합니다.
  • Hash Tabled 을 pseudoclassical style로 구현합니다.
  • Binary Search Tree 를 functional style로 구현합니다.

Advanced 한 과제들

  • ES6 class 문법에 관하여 공부합니다.
  • 구현한 자료구조들을 ES6 class 문법을 사용하여 다시 구현해 봅니다.
  • Learnco Advanced에 도전해봅니다.

Sprint Office Hour 시간에 발표해볼 과제들

  • Stack
  • Queue
  • Linked list
  • Tree
  • Hash table
  • Graph
  • Binary Search Tree

Sprint 진행 방법

  1. 현재 repo를 자신의 Github으로 fork 합니다.
  2. fork된 repo를 git clone 명령어로 자신의 local 환경으로 다운로드합니다.
  3. terminal에 npm install을 입력해 dependecy들을 설치합니다.
  4. Leanco에서 Pair Programming 전에 혼자서 진행할 부분을 확인합니다.
  5. Pair분과 함께 Programming을 하며 재밌게 coding합니다.

제출 방법

  1. student.json 파일에 필요한 정보를 입력합니다.
  2. REVIEW.md 파일에 이번 Sprint를 마무리하며 review를 작성합니다.
  3. 자신의 remote repo로 push 합니다.
  4. Upstream repo에서 pull request를 만듭니다.