• 검색 결과가 없습니다.

과학과학고 공동AP 학사관리시스템

N/A
N/A
Protected

Academic year: 2021

Share "과학과학고 공동AP 학사관리시스템"

Copied!
14
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

프로그래밍과 문제해결

1 성격

영재학교 및 과학고등학교 학생들을 대상으로 대학 수준의 컴퓨터 기초

과목에 대한 지식을 습득할 수 있는 기회를 제공한다.

2 목표

1. 총괄목표

‣ 컴퓨터에 대한 기초를 소개하고, 문제 해결을 위해서 컴퓨터 프로그

램을 설계하고 구현하는 방법에 대해서 배운다.

2. 세부목표

‣ 컴퓨터 프로그램의 작성, 실행 및 디버깅을 통해서 주어진 계산 문제

를 해결하는 법을 배운다.

‣ 기본적인 알고리즘 및 자료구조를 구현하고 사용할 수 있다.

‣ 적절한 알고리즘 및 자료구조를 선택하고 구현하여 주어진 계산 문

제를 해결한다.

‣ 객체지향 프로그램을 능숙하게 작성할 수 있다.

(2)

3 내용 체계

Knowledge areas

Topics covered

Hours

(최소운영시간)

Programming

Design

- The concept and properties of

algorithms

- The role of algorithms in the

problem-solving process

- Problem-solving strategies

- Fundamental design concepts and

principles

4

Fundamental

Programming

Concepts

- Basic syntax and semantics of a

programming language

- Variables and primitive data types

- Expressions and assignments

- Simple I/O including file I/O

- Conditional and iterative control

structures

- Functions and parameter passing

8

Fundamental

Data Structures

- Arrays

- String and string processing

- Lists

(3)

Development

Methods

- Program correctness: Types of

errors (syntax, logic, run-time)

- Programming using library

components and their APIs

- Debugging strategies

2

Object-Oriented

Programming

- Object-oriented design

- Definition of classes: fields, methods,

and constructors

2

Basic Type

Systems

- Primitive types and Compound types

- Type safety and errors

2

Fundamental

Data Structures

and Algorithms

- Simple numerical algorithms

- Sequential and binary search

algorithms

-

Sorting

algorithms:

selection,

insertion and quicksort/mergesort

(4)

4 추천 교재

‣ Practical Programming: An Introduction to Computer Science Using

Python by Jennifer Campbell, Paul Gries, Jason Montojo, and Greg

Wilson. Pragmatic Programmers, 2009.

‣ Introduction to Programming Using Java Version 7.0, by David J.

Eck, 2014.

‣ C++ Primer by Stanley Lippman, 2012.

‣ The C Programming Language by Brian Kernighan and Dennis

Ritchie, 1988.

※ 위 교재의 판본 및 발행년도는 2014년을 기준으로 한 것이며, 실제 교육

학기 기준으로 최신 교재를 사용하는 것을 권장함. 내용이 동일할 경우

international version 사용 가능.

5 교수·학습 방법

‣ 프로그래밍 기초는 이론보다 실습을 통해 프로그램을 작성/실행/디버

그 하는 과정이 중요하므로, 실습에 많은 수업 시간 및 평가 비중을

반영해야 한다.

‣ 특정 프로그래밍 언어에만 특화된 내용에 치우지는 것을 지양하고,

알고리즘 및 프로그래밍을 통한 문제해결 능력을 학습시키는 데에

초점을 맞추는 것이 중요하다.

‣ 관련하여, 학생들이 프로그래밍에 쉽게 다가갈 수 있도록, 다루는 프

로그래밍 언어의 핵심적인 라이브러리를 제공하여 학생들이 스스로

문제를 해결할 수 있게 하는 것이 필요하다 예, 미국 AP Computer

Science Java Subset (Appendix C).

(5)

6 유의 사항

‣ 내용 체계 상의 시간은 해당 내용의 최소 수업운영시간을 의미함

‣ 본 교과는 연습시간을 포함해서 최소 4운영 시수로 운영되어야 함

(한 학기에 운영이 어려운 경우 2학점씩 2학기에 걸쳐 운영할 수도

있음)

‣ 본 교과는 연습시간을 포함해서 최소 4운영 시수로 운영되어야 함(한

학기에 운영이 어려운 경우 2학점씩 2학기에 걸쳐 운영할 수도 있

음)

‣ 평가 시 주요 용어는 영어로 사용 (과기대 입학 후 상위 교과목의 이

수에 무리가 없도록)

‣ 교재는 위의 추천 교재 외에, 한국어 교재나 학교 자체 제작 교재를

사용할 수 있음

‣ 학교 자체 제작 교재를 사용할 경우, 인증 검수 시 이 자료도 제출하

여 검토를 받아야 함

‣ 2개 이상의 교과목이 본 AP 교과목으로 대응될 경우, 상위 교과목

인증 검수시 이전 교과목의 강의계획서, 과제(내용 및 문제), 시험문

제, 실습운영계획을 같이 제출하여야 함.

‣ AP 교과목 평가 검수 시 대응교과목들의 강의계획서, 평가계획, 시

험문제, 과제로 낸 내용, 실습운영계획과 더불어 최종 이수교과목의

학생성적 분포도를 제출하여야 함. 대학학점인정 기준은 최종 이수교

과목의 학생성적 분포도를 검토한 후 대학학점인정 기준을 제시함.

‣ 교사는 관련 전공 석사 학위 이상 소지자를 원칙으로 하나, 과학고

의 경우 2018년까지는 60시간 이상의 연수를 이수한 경우, 학위에 의

한 제한을 받지 않음(교사 자격 기준은, 2개 이상의 교과목이 본 교

과목으로 대응될 경우, 최종 이수 교과목에만 적용됨)

(6)

7 Appendix

Appendix A - ACM/IEEE Computing Society, Computer

Science Curricula 2013.

This is an extracted summary of a computer science curricula guideline published by ACM/IEEE [1]. In this appendix, SDF, PL and AL respectively denote Software Development Fundamentals (SDF), Programming Languages (PL) and Algorithms and Complexity (AL).

Introduction to Computer Science

Knowledge areas Topics covered Hours

SDF/Algorithms and Design

- The concept and properties of algorithms - The role of algorithms in the problem-solving process

- Problem-solving strategies

- Fundamental design concepts and principles

4

SDF/Fundamental Programming Concepts

- Basic syntax and semantics of a programming language

- Variables and primitive data types - Expressions and assignments - Simple I/O including file I/O

- Conditional and iterative control structures - Functions and parameter passing

8

SDF/Fundamental Data Structures

- Arrays

- String and string processing - Lists

4

SDF/Development Methods

- Program correctness: Types of errors (syntax, logic, run-time)

- Programming using library components and

(7)

SDF/Algorithms and Design (4 hour)

Topics:

Ÿ The concept and properties of algorithms

Ÿ The role of algorithms in the problem-solving process

Ÿ Problem-solving strategies: Iterative and recursive mathematical functions; Divide-and-conquer strategies

Ÿ Fundamental design concepts and principles: Abstraction; Program decomposition; Encapsulation and information hiding

Learning Outcomes:

Ÿ Discuss the importance of algorithms in the problem-solving process.

Ÿ Discuss how a problem may be solved by multiple algorithms, each with different properties.

Ÿ Create algorithms for solving simple problems.

Ÿ Use a programming language to implement, test, and debug algorithms for solving simple problems.

Ÿ Implement, test, and debug simple recursive functions and procedures. Ÿ Implement a divide-and-conquer algorithm for solving a problem.

Ÿ Determine whether a recursive or iterative solution is most appropriate for a problem. their APIs - Debugging strategies PL/Object-Oriente d Programming - Object-oriented design

- Definition of classes: fields, methods, and constructors

2

PL/Basic Type Systems

- Primitive types and Compound types

- Type safety and errors 2

AL/Fundamental Data Structures and Algorithms

- Simple numerical algorithms

- Sequential and binary search algorithms

- Sorting algorithms: selection, insertion and quicksort/mergesort

(8)

SDF/Fundamental Programming Concepts (8 hour)

Topics:

Ÿ Basic syntax and semantics of a higher-level language

Ÿ Variables and primitive data types (e.g., numbers, characters, Booleans) Ÿ Expressions and assignments

Ÿ Simple I/O including file I/O

Ÿ Conditional and iterative control structures Ÿ Functions and parameter passing

Learning Outcomes:

Ÿ Analyze and explain the behavior of simple programs involving the fundamental programming constructs variables, expressions, assignments, I/O, control constructs, functions, parameter passing, and recursion.

Ÿ Identify and describe uses of primitive data types. Ÿ Write programs that use primitive data types.

Ÿ Modify and expand short programs that use standard conditional and iterative control structures and functions.

Ÿ Design, implement, test, and debug a program that uses each of the following fundamental programming constructs: basic computation, simple I/O, standard conditional and iterative structures, the definition of functions, and parameter passing.

Ÿ Write a program that uses file I/O to provide persistence across multiple executions.

Ÿ Choose appropriate conditional and iteration constructs for a given programming task.

SDF/Fundamental Data Structures (4 hour)

Topics: Ÿ Arrays

(9)

Ÿ String and string processing Ÿ Lists

Learning Outcomes:

Ÿ Discuss the appropriate use of built-in data structures.

Ÿ Write programs that use each of the following data structures: arrays, strings, lists.

SDF/Development Methods (2 hour)

Topics:

Ÿ Program correctness: Types of errors (syntax, logic, run-time); The concept of a specification

Ÿ Modern programming environments: Programming using library components and their APIs

Ÿ Debugging strategies Learning Outcomes:

Ÿ Explain why the creation of correct program components is important in the production of high-quality software.

Ÿ Identify common coding errors that lead to insecure programs (e.g., buffer overflows, memory leaks, malicious code) and apply strategies for avoiding such errors.

Ÿ Construct, execute and debug programs using a modern IDE and associated tools such as unit testing tools and visual debuggers.

Ÿ

Construct and debug programs using the standard libraries available with a chosen programming language.

PL/Object-Oriented Programming (2 hour)

Topics:

Ÿ Object-oriented design: decomposition into objects carrying state and behavior, class-hierarchy design for modeling

(10)

Ÿ Definition of classes: fields, methods, and constructors

Learning outcomes:

Ÿ Design and implement a class

Ÿ Use subclassing to design simple class hierarchies that allow code to be reused for distinct subclasses

PL/Basic Type Systems (2 hour)

Topics:

Ÿ A type as a set of values together with a set of operations: primitive types (e.g., numbers, Booleans); Compound types built from other types (e.g., arrays, lists, functions)

Ÿ Type safety and errors caused by using values inconsistently given their intended types

Learning outcomes:

Ÿ For both a primitive and a compound type, informally describe the values that have that type

Ÿ For programming languages, identify program properties checked statistically and program properties checked dynamically

Ÿ Use types and type-error messages to write and debug programs.

AL/Fundamental Data Structures and Algorithms (4 hour)

Topics:

Ÿ Simple numerical algorithms, such as computing the average of a list of numbers, finding the min, max, and mode in a list, approximating the square root of a number, or finding the greatest common divisor

Ÿ Sequential and binary search algorithms

(11)

Learning Outcomes:

Ÿ Implement basic numerical algorithms.

Ÿ Implement simple search algorithms and explain the differences in their time complexities.

(12)

Appendix B - Python is Now the Most Popular Introductory

Teaching Language at Top U.S. Universities

A recent article reveals that Python is the most popular programming languages taught at top U.S. universities.

(13)

Appendix C - Standard Java Library Methods Required for

AP CS A [3]

(14)

8 References

‣ Associate for Computing Machinery (ACM)/IEEE Computer Society,

Computer Science Curricula 2013: Curriculum Guidelines for

Undergraduate Degree Programs in Computer Science, 2013.

‣ Philip Guo, Python is Now the Most Popular Introductory Teaching

Language at Top U.S. Universities, BLOG, Communications of the

ACM, July 7, 2014.

참조

관련 문서

The significance of this study is that a robot programming language has been developed that addresses the concepts of both procedure and reactivity in such

This document describes how to use the MPLAB ® PICkit™ 4 In-Circuit Debugger as a development tool to emulate and debug firmware on a target board, as well as how to

Basic aspects of AUTOSAR architecture and methodology Safety mechanisms supported by AUTOSAR.. Technical safety concepts supported by AUTOSAR Relationship to ISO

GDP impact of COVID-19 spread, public health response, and economic policies. Virus spread and public

So, we proposed a novel method for video event analysis and description on the fundamental of the Domain Knowledge object ontology, the MPEG-7 standard is extended

Changes in the composition and structure of Mediterranean rokey-shore communities following a gradient of nutrient enrichment: Descriptive study and test

Scheme of the 3-point flexure test (the dimension of the test configuration are given by lc=8mm, dm=0.5mm, dc=1mm).... Means and standard deviations

2. The finite element is calculating using tension test of uni-direction 0° and 90°, compression test of uni-direction 0° and 90° and shear test results and, the results