반응형
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주차 동안의 프로젝트를 통해 학습한 내용을 종합적으로 적용하고 실전 문제 해결 능력을 배양합니다.
반응형
'-----ETC2----- > 자료구조' 카테고리의 다른 글
[자료구조] 추가 자료 및 온라인 자료 추천 (0) | 2024.06.01 |
---|---|
[자료구조] Week 11: 탐색 알고리즘 - 선형 탐색과 이진 탐색 (0) | 2024.06.01 |
[자료구조] Week 10: 정렬 알고리즘 - 개념과 고급 알고리즘 (0) | 2024.06.01 |
[자료구조] Week 9: 그래프 II - 그래프 탐색과 최단 경로 알고리즘 (0) | 2024.06.01 |
[자료구조] Week 8: 그래프 I - 그래프의 개념과 표현 방법 (0) | 2024.06.01 |