사용자 삽입 이미지
1. 강좌 소개

이 강좌에서는 자료구조를 이론적으로 배우고, 요즘 웹 프로그래밍에 자주 쓰이는 JAVA 라는 언어로 실제로 이들을 구현하는 방법에 대해서 다루게 될 것이다. JAVA는 오로지 클래스로만 이루어진 언어로써 C++ 보다는 더욱 완벽한 객체지향 언어라고들 말한다.

이런 클래스들을 이용하여 여러 메소드 들을 만들어보고, 또 자신이 만들은 클래스들을 구성하는 방법, 이를 정렬하는 방법들에 대해서 배우게 된다면, 어디서든 자신이 원하는 방법대로 많은양의 Data를 효율적으로 관리할 수가 있게 될 것이다.

처음 이런 웹에 강좌를 올리는 것이라서 설레임도 있고 ‘잘 못하면 어떡하지’ 하는 두려움도 있다. 하지만 이런 경험을 통해서 나 역시 한 단계 거듭 발전할 수 있는 계기가 될수 있으리라 본다. 독자만이 이득을 보는 강좌가 아닌 필자역시 많은것을 얻을수 있는 강좌가 되었으면 한다.

  • 참고 사이트 :http://java.freehosting.co.kr/tutorial/
  • 참고 서적 : 프로그래머를 위한 JAVA 2 (홍릉과학출판사)
                        Data Structures & Other Objects Using JAVA

    2. 전체 목차

    1회 : Introduction

    자료구조는 data, item 등을 정해진 기술로써 저장하고 관리하는 것이다. 실제로 어느 부분에 쓰이는지에 대해서 간단히 소개하는 내용으로 할 것이다.

    2회 : Introduce JAVA

    자바에 대한 간략한 소개를 할 것이다. 만들어진 배경, 만든사람, 활용 범위(?) 등등의 전반적인 내용을 다루게 될 것이다.

    3회 : Class

    자바는 오로지 클래스로만 이루어진 언어이다. 그러기에 클래스를 모른다면 자바를 배울수 없다는 것과도 같은 말이 될 수 있기 때문에, 클래스의 전체적인 틀과, 어떤일을 하고, 어떻게 쓰이는지, 그리고 String 같은 이미 API로 존재하는 클래스 같은 것들을 그림과 코드를 통해서 설명하게 될 것이다.

    4회 : Array

    많은 자료를 한번에 저장할수 있는 가장 단순한 방법인 배열에 대하여 설명할 것이다. 또 이를 트리로 구성하는 방법이나, array[] 클래스에 대해서도 설명을 하게 될 것이다.

    5회 : Linked List

    쉬우면서도 한번 꼬이면 정신이 혼미해지는 링크드 리스트. 포인터와 구조체의 동시 사용으로써 포인터를 확실히 이해하지 못했다면 힘들어지는 단계. 이 강좌에서 고생하지 않으려면 포인터 쪽을 중점적으로 해야 할 것이다. 실제 활용 범위와. 간단한 작성방법에 대해서 얘기 하게 될 것이다. (추가, 삭제, 치환, 검색 등의 함수구현 방법은 간단하게 Pseudo code 로만 설명하게 될 것이다.)

    6회 : Stack

    스택.. LIFO개념을 설명하며, 직접 포토샵 노가다로 최대한 이해가 쉽도록 설명해야 할 것이다. 이론 설명을 최대한 쉽게 한 후에. 이를 배열과 링크드 리스트로 구현하는 방법에 대해서 얘기 할 것이다.

    7회 : Queue

    큐 FIFO개념을 설명하고 이것 역시 위의 Stack 처럼 비슷한 강좌로 나가게 될 것이다.

    8회 : Tree

    트리. 이 다음에 나올 Hash 나 Sort 에 중요하게 쓰이는 단계로써 트리를 그림으로 보기쉽게 표현하고, 이를 직접 링크드 리스트로 구현하는 방법에 대해서 쓰게 될 것이다.

    9회 : Recursion

    재귀. 여러 알고리즘에 자주 쓰이는 개념으로써 잘못해서 꼬이게 되면 정신이 없어지는 부분이다. 그림으로 설명이 필요하다.

    10회 : Search

    배열과, 링크드 리스트를 이용한 구조에서 어떤 값을 찾기 위한 방법이다. 여러 가지 서칭 방법이 있으며 그에대해서 얘기하게 될 것이다.

    11회 : Hashing

    Hashing 은 각각의 리스트들을 검색하기 쉽게 어떤 일련 번호나 코드 같은것들을 붙여주는 기법이다. 이를 응용하면 검색 알고리즘을 더욱 효과적으로 짤수 있게 되므로 검색쪽과 연결지어서 얘기해야 할 것이다.

    12회 : Sorting

    정렬. 리스트를 이용한 정렬과 배열을 이용한 여러 가지 정렬 방법에 대해서 설명하게 될 것이다. 제일 쉬운 버블소트부터 고급 소팅 방법까지에 대해서 전반적으로 다루게 될 것이다.

    13회 : B-Tree(1)  (비 프러스 트리) (Heap 포함)

    실제로 트리를 쓰게 되면 발생하는 한쪽 편중현상이라던지 하는 기현상이 발생하게 된다. 이런 트리를 더 효율적으로 구성해주는 것이 위의 B-Tree 인데 이에 대해서 얘기해본다.

    14회 : B-Tree(2)

    위 강좌의 연장선이 될 것이다.

    15회 : Graph

    그래프 역시 리스트로 관리되어야 할 것이다. 이런 그래프들을 구현하고, 그래프를 이용한 여러 가지 알고리즘에 대한 소개도 있어야 할 것이다.(ex) Shortest Path Algorithm)



  • Posted by 영웅기삼
    ,