본문 바로가기
-----ETC2-----/자료구조

[자료구조] Week 12: 종합 실습 및 프로젝트

by cogito21_python 2024. 6. 1.
반응형

Day 1: 종합 실습 준비

  • 강의 내용:
    • 종합 실습의 목표와 중요성
      • 종합 실습을 통한 학습 내용의 통합
      • 실전 문제 해결 능력 배양
    • 프로젝트 개요 소개
      • 데이터 구조와 알고리즘을 사용한 실전 문제
      • 프로젝트 주제와 목표 설정
  • 실습:
    • 프로젝트 팀 구성
    • 프로젝트 주제 및 계획 수립
### 프로젝트 주제 예시
1. 소셜 네트워크 분석 도구 개발
2. 파일 시스템 탐색기 구현
3. 영화 추천 시스템 개발
4. 데이터 시각화 도구 개발

 

Day 2: 프로젝트 설계

  • 강의 내용:
    • 프로젝트 요구사항 분석
      • 문제 정의 및 요구사항 수집
    • 시스템 설계
      • 시스템 아키텍처 설계
      • 주요 모듈 및 기능 설계
  • 실습:
    • 프로젝트 요구사항 분석 및 시스템 설계
### 요구사항 분석 예시
1. 소셜 네트워크 분석 도구:
   - 사용자 등록 및 로그인 기능
   - 친구 추가 및 삭제 기능
   - 네트워크 시각화 기능
   - 사용자 간의 최단 경로 탐색 기능

### 시스템 설계 예시
1. 소셜 네트워크 분석 도구:
   - 사용자 관리 모듈
   - 친구 관계 관리 모듈
   - 그래프 시각화 모듈
   - 최단 경로 탐색 모듈

 

Day 3: 데이터 구조 및 알고리즘 구현

  • 강의 내용:
    • 필요한 데이터 구조 및 알고리즘 식별
      • 프로젝트에 필요한 데이터 구조 및 알고리즘 정의
    • 모듈별 구현 계획 수립
  • 실습:
    • 데이터 구조 및 알고리즘 구현 시작
# 사용자 관리 모듈 예시
class User:
    def __init__(self, username):
        self.username = username
        self.friends = []

    def add_friend(self, friend):
        self.friends.append(friend)

    def remove_friend(self, friend):
        self.friends.remove(friend)

# 친구 관계 관리 모듈 예시
class SocialNetwork:
    def __init__(self):
        self.users = {}

    def add_user(self, username):
        if username not in self.users:
            self.users[username] = User(username)

    def add_friendship(self, user1, user2):
        if user1 in self.users and user2 in self.users:
            self.users[user1].add_friend(user2)
            self.users[user2].add_friend(user1)

    def remove_friendship(self, user1, user2):
        if user1 in self.users and user2 in self.users:
            self.users[user1].remove_friend(user2)
            self.users[user2].remove_friend(user1)

# 소셜 네트워크 사용 예제
network = SocialNetwork()
network.add_user("Alice")
network.add_user("Bob")
network.add_friendship("Alice", "Bob")

 

Day 4: 모듈 통합 및 테스트

  • 강의 내용:
    • 모듈 통합
      • 각 모듈의 통합 및 연동
    • 테스트 계획 수립
      • 각 모듈 및 통합 시스템 테스트 계획 수립
  • 실습:
    • 모듈 통합 및 기본 기능 테스트
# 시스템 통합 예제
network.add_user("Charlie")
network.add_friendship("Alice", "Charlie")
network.add_friendship("Bob", "Charlie")

# 친구 목록 출력
for user in network.users:
    print(f"{user}'s friends: {network.users[user].friends}")

# 예상 출력:
# Alice's friends: ['Bob', 'Charlie']
# Bob's friends: ['Alice', 'Charlie']
# Charlie's friends: ['Alice', 'Bob']

 

Day 5: 프로젝트 마무리 및 최종 테스트

  • 강의 내용:
    • 프로젝트 마무리
      • 최종 기능 구현 및 버그 수정
    • 최종 테스트
      • 통합 시스템 최종 테스트
  • 실습:
    • 최종 기능 구현 및 버그 수정
    • 최종 테스트 및 결과 확인
# 최종 테스트 예제
def test_social_network():
    network = SocialNetwork()
    network.add_user("Alice")
    network.add_user("Bob")
    network.add_user("Charlie")
    network.add_friendship("Alice", "Bob")
    network.add_friendship("Alice", "Charlie")
    network.add_friendship("Bob", "Charlie")

    assert "Bob" in network.users["Alice"].friends
    assert "Charlie" in network.users["Alice"].friends
    assert "Alice" in network.users["Bob"].friends
    assert "Charlie" in network.users["Bob"].friends
    assert "Alice" in network.users["Charlie"].friends
    assert "Bob" in network.users["Charlie"].friends
    print("All tests passed.")

# 테스트 실행
test_social_network()

 

Day 6: 프로젝트 발표 준비

  • 강의 내용:
    • 프로젝트 발표 자료 준비
      • 프로젝트 소개 및 주요 기능 설명
      • 시스템 설계 및 구현 과정 설명
      • 주요 코드 및 시연 준비
  • 실습:
    • 프로젝트 발표 자료 준비
    • 발표 연습
### 프로젝트 발표 자료 예시
1. 프로젝트 개요
   - 소셜 네트워크 분석 도구
   - 주요 기능: 사용자 관리, 친구 관계 관리, 네트워크 시각화, 최단 경로 탐색

2. 시스템 설계
   - 모듈 구조: 사용자 관리 모듈, 친구 관계 관리 모듈, 그래프 시각화 모듈, 최단 경로 탐색 모듈
   - 데이터 구조: User 클래스, SocialNetwork 클래스

3. 구현 과정
   - 주요 코드 설명
   - 기능 구현 및 통합 과정 설명

4. 시연
   - 주요 기능 시연
   - 질문 및 답변

 

Day 7: 프로젝트 발표 및 평가

  • 강의 내용:
    • 프로젝트 발표
      • 각 팀의 프로젝트 발표
      • 주요 기능 시연 및 설명
    • 프로젝트 평가
      • 발표 내용 평가
      • 프로젝트 완성도 및 창의성 평가
  • 실습:
    • 프로젝트 발표
    • Q&A 세션 및 피드백
### 발표 및 평가
- 각 팀은 프로젝트 발표 자료를 활용하여 프로젝트를 발표합니다.
- 발표 후 Q&A 세션을 통해 질문에 답변하고 피드백을 받습니다.

### 평가 기준
1. 프로젝트 완성도 (50%)
2. 발표 내용의 명확성 및 전달력 (30%)
3. 창의성 및 문제 해결 능력 (20%)

 

이 강의는 파이썬의 데이터 구조와 알고리즘을 종합적으로 활용하여 프로젝트를 완성하는 것을 목표로 하며, 각 강의는 이론과 실습을 포함합니다. 12주차 동안의 프로젝트를 통해 학습한 내용을 종합적으로 적용하고 실전 문제 해결 능력을 배양합니다.

반응형