한양대학교 ERICA 소프트웨어융합대학 신산업소프트웨어전공
교과목 개요
이 과목은 프로그래밍 경험이 없는 학생이 프로그램 작성 기본 원리를 배우는 과목이다. 수업은 문제풀이중심학습 방식으로 진행한다. 풀어야 할 프로그래밍 문제가 매 주 주어지고, 그 문제를 풀기 위한 원리를 2시간 강의를 통하여 배우고, 2시간 코딩 실습을 통하여 원리를 이해한다. 사용 언어는 Python 이다.
수업 목표
이 과목의 궁극적인 목표는 프로그램을 구성하는 가장 핵심 단위인 제어구조를 설계하고 작성하는 방법을 익히는 것 이다. 산술연산, 변수의 개념, 입출력, 함수만들기에서 시작하여, 조건 제어구조, 반복 제어구조인 제귀함수와 루프, 예외처리 구조를 차례로 학습한다.
교재
- 도경구, 코딩의 정석 : 파이썬, 생능출판사, 2020.
프로그래밍언어
수업 시간 및 장소
- 시간 : 월 17:00~19:00, 목 17:00~19:00
- 장소 : 온라인 강의 및 실습
주별 수업 계획
주 | 일 | 주제 | 실습 | 숙제 |
---|---|---|---|---|
1 | 9/3(목) | 수업 소개 | - | - |
2 | 9/7(월),10(목) | 식 | #1 | #1 |
3 | 9/14(월),17(목) | 변수와 함수 | #2 | #2 |
4 | 9/21(월),24(목),28(월) | 제어 구조 | #3 | #3 |
5 | 10/5(월),8(목) | 재귀와 반복 : 자연수 계산 | #4 | #4 |
6 | 10/12(월),15(목) | 재귀와 반복 : 정렬 | #5 | #5 |
7 | 10/19(월),22(목) | 재귀와 반복 : 검색 | #6 | #6 |
8 | 10/26(월) | (오프라인) 코딩시험1 | - | - |
10 | 11/2(월),5(목),9(월) | 표채워풀기 | #8 | #7 |
11 | 11/12(목),16(월) | 프로젝트 기반 학습 I - 퍼즐게임 스도쿠 | #9 | #8 |
12 | 11/19(목),23(월) | 프로젝트 기반 학습 II - 카드게임 블랙잭 | #10 | - |
13 | 11/26(목),30(월) | 프로젝트 기반 학습 II - 카드게임 블랙잭 (계속) | - | - |
14 | 12/3(목),7(월) | 예외 처리, 팀 프로젝트 | - | - |
15 | 12/10(목),12/14(월) | 팀 프로젝트 | - | - |
16 | 12/17(목) | (온라인) 코딩시험2 | - | - |
평가
항목 | 비율 | 세부 내용 |
---|---|---|
수업 | 10% | 1% x 10 |
실습 | 10% | 1% x 10 |
숙제 | 18% | 2% x 9 |
코딩시험 | 50% | 25% x 2 |
팀프로젝트 | 12% | 제안 3% + 시연 9% |
합계 | 100% |
수업 윤리
- 다른 학생의 해답을 그대로 베껴서 제출하면 부정행위로 간주되어 해당 학생 모두 0점 처리됩니다. 모여서 토론하며 공부하는 건 장려하지만 코드는 본인 스스로 작성해야 합니다.
- 시험에서 부정행위가 발견되면 즉시 F학점 처리됩니다.
연락처
- 교수: 도경구, doh@hanyang.ac.kr, 제4공학관 3층 320호
- 조교: 모지환, gugusny5758@gmail.com, 제4공학관 3층 319호 프로그래밍언어연구실
강의 비디오
- 코딩 첫걸음 = 1-1. 문자열, 1-2. 산술, 1-3. 변수와 지정, 실습: 문제풀이, 숙제: 문제풀이
- 함수 만들기 + 제어 구조 = 2-1. 함수, 2-2. 논리식, 2-3. 조건문, 2-4. 반복문, 2-5. 문자열 해부, 실습+숙제: 문제풀이
- 재귀와 반복 : 자연수 계산 = 3-1. 자연수, 3-2. 사례 : 초 읽기 출력, 3-3. 사례 : n까지 자연수 합, 3-4. 사례 : 거듭제곱
- 재귀와 반복 : 정렬 = 4-0. 정렬, 4-1. 시퀀스, 4-2. for 루프, 4-3. 리스트의 귀납 정의, 4-4. 선택정렬, 4-5. 삽입정렬, 4-6. 합병정렬, 4-7. 퀵정렬
- 재귀와 반복 : 검색 = 5-0. 검색, 5-1. 리스트 검색 : OX 문제, 5-2. 리스트 검색 : 주관식 문제, 5-3. 파일 처리, 5-4. 텍스트 파일에서 문자열 검색
- 재귀와 반복 : 트리 재귀 = 6-0. 트리 재귀, 6-1. 피보나치 수열, 6-2. 파스칼 삼각형, 6-3. 하노이의 타워, 숙제
- 문제 해결 I : Puzzle Game Sudoku = 7-0. Puzzle Game Sudoku, 7-1. 무작위 수 생성, 7-2. 집합, 7-3. Mini Sudoku 요구사항, 7-4. Mini Sudoku 알고리즘, 7-5. Mini Sudoku 구현 실습, 7-6. 실습 풀이 코딩
- 문제 해결 II : Card Game Blackjack = 8-0. Card Game Blackjack, 8-1. 사전, 8-2. 실습: 카드게임 API, 8-3. 실습 풀이 코딩, 8-4. 숙제: Card Game Blackjack, 8-5. 숙제 풀이 코딩
- 문제 해결 III : Card Game Blackjack 확장 = 9-0. Card Game Blackjack 확장, 9-1. 요구사항, 9-2. 파일처리: 데이터베이스 API, 9-3. 실습+숙제 코딩 가이드, 9-4. 실습+숙제 풀이 코딩
- 안전 코딩 및 예외 처리 = 10-0. 안전 코딩 및 예외 처리, 10-1. 붙박이 예외, 10-2. 예외 처리, 10-2-1. 예외 처리 : 사례 학습, 10-2-2. 예외 처리 : 문법과 의미, 10-2-3. 예외 처리 : 실습 #1, 10-3. Assert 문, 10-3-1. Assert 문 : 실습 #2, 10-4. 수제 예외, 10-4-1. 수제 예외 : 실습 #3, 10-4-2. 수제 예외 : 실습 #4