Data Structures

데이터 구조

2024년 2학기 • 전북대학교

Schedule 강의일정

Date Lecture Content Logistics
9/2 slide thumbnail
Week #1:
Introduction
Chapter 1: Information in Memory
  • p. 1-12

9/9 slide thumbnail
Week #2:
Chapter 2: Binary Search
Chapter 3: Dynamic Data Structures
  • p. 13-42
[ 과제 ]

GitHub File Repository

9/16 No Class Chuseok
9/23 slide thumbnail
Week #4:
Chapter 4: Stacks and Queues
  • p. 43-54

9/30 slide thumbnail
Week #5:
Chapter 4: Breadth-First Search, Depth-First Search
  • p. 55-74

10/7 slide thumbnail
Week #6:
Chapter 5: Binary Search Trees
No Class Hangul Day
  • p. 75-92

10/14 slide thumbnail
Week #7:
Linked List coding
Midterm Study Guide
  • p. 93-138

10/21 Midterm Test
10/28 slide thumbnail
Week #9:
Chapter 6: Tries and Adapting Data Structures
Chapter 7: Priority Queues and Heaps
  • p. 75-112

11/4 slide thumbnail
Week #10:
Chapter 8: Grids
Chapter 9: Spatial Trees
  • p. 112-170

11/11 slide thumbnail
Week #11:
Chapter 10: Hash Tables
  • p. 171-186

11/18 slide thumbnail
Week #12:
Chapter 11: Caches
  • p. 187-198
[ 과제 ]

Coding with Stacks & Queues

11/25 slide thumbnail
Week #13:
Chapter 12: B-Trees
  • p. 199-224

12/2 slide thumbnail
Week #14:
Chapter 13: Bloom Filters
  • p. 225-246

12/9 slide thumbnail
Week #15:
Chapter 14: Skip Lists
Chapter 15: Graphs
Conclusion
  • p. 247-270

12/16 Final Test
Study Guide

Top


Assignments 과제

Assignment Files:


Overview 개요

Data Structures the Fun Way No Starch Link

This accessible and entertaining book provides an in-depth introduction to computational thinking through the lens of data structures — a critical component in any programming endeavor. Through diagrams, pseudocode, and humorous analogies, you’ll learn how the structure of data drives algorithmic operations, gaining insight into not just how to build data structures, but precisely how and when to use them.

This book will give you a strong background in implementing and working with more than 15 key data structures, from stacks, queues, and caches to bloom filters, skip lists, and graphs. Master linked lists by standing in line at a cafe, hash tables by cataloging the history of the summer Olympics, and Quadtrees by neatly organizing your kitchen cabinets. Along with basic computer science concepts like recursion and iteration, you’ll learn:

Data Structures the Fun Way shows how to efficiently apply these ideas to real-world problems—a surprising number of which focus on procuring a decent cup of coffee. At any level, fully understanding data structures will teach you core skills that apply across multiple programming languages, taking your career to the next level.

Textbook 교재

  1. Text: Data Structures the Fun Way: An Amusing Adventure with Coffee-Filled Examples
  2. Author: Kubica, Jeremy
  3. Publisher: No Starch Press | 2022년 11월 08일

Top


Logistics 수업운영

Course Information / 과정정보

시간이 지나도 변하지 않고 컴퓨팅 세계의 기반을 강화하는 데 도움이 되는 전문적이고 안전하며 이식 가능한 C 코드를 작성하는 방법을 알아본다.

Students will learn how to write professional, safe, and portable C code that doesn’t change over time and helps strengthen the foundations of the world of computing.

Top


Policies 규정

Grading 평가방법

Most of my courses are graded based on the following components. Please note that the weights of each component may vary depending on the course. The grading policy will be announced in the first class and will be available on the course website.
대부분의 강의는 다음 구성요소에 따라 평가됩니다. 각 구성요소의 가중치는 강의에 따라 다를 수 있습니다. 평가 방법은 첫 강의에서 발표되며 강의 웹사이트에서 확인할 수 있습니다.


Attendance (& Participation) 출석 (& 참여도)

This may be the most important part of the class. Please pay careful attention to the following.
이것은 수업의 가장 중요한 부분일 수 있습니다. 다음 사항에 주의 깊게 주목해 주세요.

I appreciate everyone being actively involved in the class! Students who will succeed are those who are actively involved.
저는 수업에 적극적으로 참여해 주시는 모든 분들을 감사하게 생각합니다! 성공할 학생들은 적극적으로 참여하는 학생들입니다.

Assignments & Practice Exercises 과제 (연습문제) 및 실습 (수업 활동 결과)

Projects (or Research Paper & Presentation) 프로젝트 (또는 논문과 발표)

The following types of projects may be assigned in my courses:
다음 유형의 프로젝트가 강의에서 할당될 수 있습니다:

Tests

There will be two tests in this class: a midterm and a final. Both tests may include both written and programming questions. The written questions will be similar to the homework questions, and the programming questions will be similar to the programming assignments. Written questions will be closed-book, and programming questions will be open-book (i.e., you can use any resources you want, including the Internet).

Top


Collaboration Policy

Homework assignments must be done individually: each student must hand in their own answers. However, it is acceptable to collaborate when figuring out answers and to help each other solve the problems. We will be assuming that you will be taking the responsibility to make sure you personally understand the solution arising from such collaboration. You also must indicate on each homework with whom you have collaborated.

Late Policy

You will be allowed 6 total homework late days without penalty for the entire semester. You may be late by up to 6 days on any homework assignment. Once those days are used, you will be penalized according to the following policy:

You must turn in 75% of the practices and assignments, even if for zero credit, in order to pass the course.

Regrade Policy

If you feel that we have made a mistake in grading your homework, please submit a regrading request via email and I will consider your request. Please note that regrading of a homework may cause your grade to go either up or down.

Top


Resources 자료실

Computer Software / 소프트웨어

The software we will be using is listed below. 수업에서 사용할 소프트웨어가 다음과 같다.

Textbook Resources / 교재자료

Do it! 실습 파일과 PDF 전자책

Tutorials / 튜토리얼

Top


Instructor 강사소개

Aaron Snowberger earned his Ph.D. in Information and Communications Engineering from Hanbat National University in South Korea in 2024. He also holds degrees in Computer Science and Media Design. He has taught technology courses for over 8 years, English for over 15 years, and has freelanced as a web developer and magazine designer for over 5 years. His current research interests include computer vision, natural language processing, image processing, signal processing, and machine learning.

Aaron Snowberger는 2024년 한국 한밭대학교에서 정보통신공학 박사 학위를 취득했습니다. 그는 또한 컴퓨터 과학 및 미디어 디자인 학위를 취득했습니다. 그는 8년 이상 기술 과정을 가르쳤고, 15년 이상 영어를 가르쳤으며, 5년 이상 웹 개발자 및 잡지 디자이너로 프리랜서로 일했습니다. 그의 현재 연구 관심사는 컴퓨터 비전, 자연어 처리, 이미지 처리, 신호 처리 및 머신 러닝입니다.

Top