한양대학교 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. 문자열, 1-2. 산술, 1-3. 변수와 지정, 실습: 문제풀이, 숙제: 문제풀이
  2. 함수 만들기 + 제어 구조 = 2-1. 함수, 2-2. 논리식, 2-3. 조건문, 2-4. 반복문, 2-5. 문자열 해부, 실습+숙제: 문제풀이
  3. 재귀와 반복 : 자연수 계산 = 3-1. 자연수, 3-2. 사례 : 초 읽기 출력, 3-3. 사례 : n까지 자연수 합, 3-4. 사례 : 거듭제곱
  4. 재귀와 반복 : 정렬 = 4-0. 정렬, 4-1. 시퀀스, 4-2. for 루프, 4-3. 리스트의 귀납 정의, 4-4. 선택정렬, 4-5. 삽입정렬, 4-6. 합병정렬, 4-7. 퀵정렬
  5. 재귀와 반복 : 검색 = 5-0. 검색, 5-1. 리스트 검색 : OX 문제, 5-2. 리스트 검색 : 주관식 문제, 5-3. 파일 처리, 5-4. 텍스트 파일에서 문자열 검색
  6. 재귀와 반복 : 트리 재귀 = 6-0. 트리 재귀, 6-1. 피보나치 수열, 6-2. 파스칼 삼각형, 6-3. 하노이의 타워, 숙제
  7. 문제 해결 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. 실습 풀이 코딩
  8. 문제 해결 II : Card Game Blackjack = 8-0. Card Game Blackjack, 8-1. 사전, 8-2. 실습: 카드게임 API, 8-3. 실습 풀이 코딩, 8-4. 숙제: Card Game Blackjack, 8-5. 숙제 풀이 코딩
  9. 문제 해결 III : Card Game Blackjack 확장 = 9-0. Card Game Blackjack 확장, 9-1. 요구사항, 9-2. 파일처리: 데이터베이스 API, 9-3. 실습+숙제 코딩 가이드, 9-4. 실습+숙제 풀이 코딩
  10. 안전 코딩 및 예외 처리 = 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