Search
moon
sun
🤔

문제해결형프로그래밍 교과목 설계(’23)

사업 신청서, 보고서

•
주요 내용
교과목교재개발 사업신청서_문제해결형프로그래밍_221230.pdf
828.3KB

사업보고서 내용 공유

벤치마킹

국내

•
성균관대학교, 문제해결과알고리즘(교양)
강의계획서_문제해결과알고리즘.pdf
211.5KB
•
POSTECH 컴퓨터공학과, 프로그래밍과문제해결(기초필수) (link)
•
동덕여대 컴퓨터학과, 문제해결기법(2-1) (link)
•
강원대(춘천) 컴퓨터공학과, 문제해결프로그래밍(2-2) (link)
◦
자료 구조 및 실습의 연계 과목으로 기본적인 자료 구조를 바탕으로 응용 문제를 해결하기 위한 심층적인 자료 구조를 학습하며, 실습 및 과제를 통하여 고급 프로그래밍 능력을 배양한다.
•
경희대 컴퓨터공학과, 문제해결(3-2)

해외

•
Programming as Problem Solving, Australian National University (link)
◦
주요 내용: 자료구조와 알고리즘 기초
•
Problem Solving and Programming, Open Universities Australia (link)
◦
주요 내용: 파이썬 프로그래밍 기초
•
Problem Solving with Computer Programming Syllabus, City University of New York
◦
주요 내용: 파이썬 프로그래밍 기초
nse-8435164119114118493-CST1101_Problem Solving with Computer Programming _221217_150807.pdf.pdf
117.6KB
•
PROBLEM-SOLVING FOR PROGRAMMING, Birkbeck University of London (link)
◦
주요 내용: 알고리즘 기초

결론

•
우리 학교의 경우, SW융합학부와 컴퓨터공학부의 프로그래밍 기초 교과목을 다르게 운영
◦
SW융합학부: C언어(1학기), C++언어(2학기)
◦
컴퓨터공학부: C언어(1, 2학기)
•
두 학부의 상이한 교과목 운영 방안에 대해 합의가 어렵다고 가정할 때, 언어에 종속되지 않은 프로그래밍 기초 교과목을 설계하는 것이 하나의 방안이라 생각되어 문제해결형 프로그래밍을 제안
•
그러나, 국내 대학의 경우, 많은 경우 문제해결 관련 과목들이 2, 3학년에 개설됨: 자료구조 및 알고리즘 교과목과 유사
•
해외 대학의 경우, 1학년에게 적합한 파이썬 프로그래밍 기초를 가르치거나(OUA, CUNY), 2,3학년 학생에게 적합한 자료구조 및 알고리즘을 가르치는 사례(ANU, Birkbeck)로 나뉨
•
결론적으로, 타학교 사례와 독립적으로 우리 학교 실정에 맞는 교과목 설계가 필요함

프로그래밍 기초 영역별 실습 문제 개발

•
프로그래밍 기초 교육용 언어(C, Python)에서 공통적으로 다루는 기초 영역 선별
번호
프로그래밍 영역 (공통, C, Python)
프로그래밍 영역(eng)
세부 교육 내용
1
자료형
Data types
(1.1) 정수형 (1.2) 실수형 (1.3) 문자형
2
연산자
Operators
(2.1) 산술 연산자 (2.2) 관계 연산자 (2.3) 논리 연산자 (2.4) 비트 연산자
3
제어문
Control statements
(3.1) 조건문 (3.2) 반복문
4
함수
Functions
(4.1) 함수 정의 (4.2) 재귀 호출
5
배열 리스트
Arrays Lists
(5.1) 1차원 배열 | 리스트 (5.2) 다차원 배열 | 리스트
6
문자열 처리
String manipulation
(6.1) 문자열 복사 및 추가 (6.2) 문자열 비교 및 검색 (6.3) 문자열 분리 (6.4) 문자열-숫자 변환
7
구조체 클래스와 객체
Structure type Class and object
(7.1) 구초체 | 클래스 정의
8
알고리즘 기초
Algorithm basics
(8.1) 탐색 (8.2) 정렬

강의계획서

•
핵심역량(전공능력)과 교과목 간 연계성
💡
이 교과목을 이수하면 프로그래밍 언어 기본 영역과 관련된 문제들에 대해 체계적으로 접근하고, 적합한 해결책을 도출 할 수 있다. 또한, 문제해결 중심 프로그래밍에 요구되는 개발 환경 및 프로그래밍 연습 플랫폼 등의 학습 도구들을 적절히 활용할 수 있다.
•
수업개요
💡
SW 관련 전공자들에게 가장 중요한 것은 프로그래밍을 이용하여 실세계의 다양한 문제들을 창의적으로 해결하는 역량이다. 본 교과목에서는 프로그래밍을 이용한 문제해결 경험과 흥미를 키우기 위한 수업을 진행한다. 수업은 프로그래밍 기초 영역 별 이론 수업과 관련 프로그래밍 문제들을 해결하는 실습 과정으로 진행된다. 교육 도구로서 프로그래밍 연습 플랫폼(예: 백준, 프로그래머스)을 적극 활용하여 프로그래밍에 대한 흥미와 문제해결 역량을 학부 과정 동안 지속적으로 향상 시킬 수 있게 유도한다.
•
수업 목표 및 내용
💡
본 수업의 목표는 문제해결 중심의 프로그래밍을 통해 SW 전공에 대한 흥미를 키우고, 게이미피케이션 요소를 포함하는 최신 프로그래밍 연습 플랫폼의 활용 방법을 소개함으로써, 수강생들의 프로그래밍 학습 활동을 지속적으로 유도하는 것을 목표로 한다. 주차 별 수업에서는 프로그래밍 언어 기초 영역 별 문법에 대한 강의와 해당 영역 관련 프로그래밍 문제들을 해결하는 실습을 진행한다.
•
수업운영방식 및 평가지침: 이론(문법 강의 1시간)과 실습(문제 해결 프로그래밍 2시간)을 병행
•
평가방식: 출석 20%, 중간평가 20%, 기말평가 40%, 과제 20%
◦
결석 -2점, 지각 -0.5점
◦
중간평가: 중간시험 대체 프로그래밍 과제
◦
기말평가: 프로그래밍 시험
◦
과제 미제출 -2점, 지연 제출 -1점, 내용 부실 -1점
•
수강권장요건: 본 수업은 Python 언어로 진행되므로, 해당 언어에 대한 기본적인 프로그래밍 경험이 권장됩니다.
•
함께 들으면 좋은 수업:
•
과제: 주차 별 해당 영역 관련 프로그래밍 문제
•
수업 참고도서(교재포함):
•
수업진행계획:
주차
학습목표
교재명 및 학습목표 / 과제 및 평가 마감 정보
1
[강의 소개] - 수업 내용 및 진행 방식 안내 - 문제해결형 프로그래밍 소개 - 프로그래밍 연습 플랫폼 소개
2
[컴퓨팅 사고] - 컴퓨팅 사고력 - 알고리즘 설계 방법
3
[프로그래밍 영역: 입출력] - 입출력 함수 - 입출력 포맷팅
실습 문제: 강아지 출력(10172), 별 찍기 - 1(2438) 등 * 괄호 안의 숫자는 백준 사이트에서 제공하는 문제의 번호를 나타냄
4
[프로그래밍 영역: 연산자] - 기본 자료형 - 주요 연산자
실습 문제: 사칙연산(10869), 두 수 비교하기(1330), 1998년생인 내가 태국에서는 2541년생?!(18108)
5
[프로그래밍 영역: 제어문1] - 순차적 제어 구조 - 선택적 제어 구조
실습 문제: 시험 성적(9498), 사분면 고르기(14681), 알람 시계(2884) 등
6
[프로그래밍 영역: 제어문2] - 반복적 제어 구조 - 기타 제어문
실습 문제: 구구단(2739), 별 찍기 - 2(2439), 더하기 사이클(1110) 등
7
[프로그래밍 영역: 배열] - 1차원 배열 - 다차원 배열 - 배열 조작
실습 문제: 개수 세기(10807), 과제 안 내신 분..?(5597), 색종이(2563) 등
8
전반기 리뷰 및 중간시험
중간고사 대체 프로그래밍 과제
9
[프로그래밍 영역: 함수] - 함수 정의 - 매개변수, 인자 - 함수 호출 방식 - 재귀 호출
실습 문제: 정수 N개의 합(15596), 한수(1065), 팩토리얼(10872) 등
10
[프로그래밍 영역: 문자열] - 문자열 조작 - 문자열 비교 및 탐색
실습 문제: ??!(10926), 킹/퀸/룩/비숍/나이트/폰(3003), 다이얼(6522) 등
11
[프로그래밍 영역: 알고리즘 기초] - 탐색 알고리즘 - 정렬 알고리즘
실습 문제: 수찾기(1920), 커트라인(25305), 단어 정렬(1181) 등
12
[문제해결 기법 입문: 구현] - 문제 요구사항 파악 및 솔루션 설계 - 관련 문제 실습
실습 문제: 벌집(2292), 달팽이는 올라가고 싶다(2869), ACM 호텔(10250) 등
13
[문제해결 기법 입문: 그리디 알고리즘] - 그리디 알고리즘 개념 - 관련 문제 실습
실습 문제: 전자레인지(10162), 캠핑(4796), 거스름돈(14916) 등
14
[문제해결 기법 입문: 브루트포스 알고리즘] - 브루트포스 알고리즘 개념 - 관련 문제 실습
실습 문제: 약수 구하기(2501), 백설 공주와 일곱 난쟁이(3040), 유레카 이론(10448) 등
15
후반기 리뷰 및 기말시험

참고 자료

•
Problem Solving with Algorithms and Data Structures using Python, peythonds (link)
•
IT 융합형 프로그래머블 창의 로봇 설계 교과목 개발, 홍익대학교
IT융합형프로그래머블창의로봇설계교과목개발.pdf
1337.2KB
•
SLI 모형 교과목 개발 보고서 작성 가이드, 연세대학교
SLI_모형_교과목_개발_보고서_작성_가이드.pdf
1396.9KB
•
나동빈, 이것이 취업을 위한 코딩 테스트다 with 파이썬, 한빛미디어 (link)
•
코딩테스트 플랫폼 전격 비교: 백준 vs 프로그래머스 vs Leetcode vs SWEA 그 외, 티스토리 (link)
•
김수환, 박정흠, 좌경룡. "학부 문제해결기법 교과목의 운영 사례" 정보과학회지  25.7 (2007): 21-25.
nse-8338132345637130155-학부 문제해결기법 교과목의 운영 사례_221228_173635.pdf.pdf
372.7KB

문제 뱅크

•
Python Programming Exercises, Gently Explained, Invent with Python (link)
◦
실습 문제 탬플릿 참고