C++ Programming

INFO2118 • 2025년 1학기 • 한밭대학교

Schedule 강의일정

Date Lecture Content Logistics
3/7 slide thumbnail
Week #1:
수업 소개
  • Accelerated C++, 0장 pp. 26-34

3/14 slide thumbnail
Week #2:
CHAPTER 0 C++ 시작하기
CHAPTER 1 문자열 사용
  • Accelerated C++, 1-2장 pp. 26-48

3/21 slide thumbnail
Week #3:
CHAPTER 2 반복문과 카운팅
  • Accelerated C++, 3-4장 pp. 48-128

3/28 slide thumbnail
Week #4:
CHAPTER 3 데이터 일괄 처리
  • Accelerated C++, 3-4장 pp. 48-128

4/4 slide thumbnail
Week #5:
CHAPTER 4 프로그램 및 데이터 구조화
  • Accelerated C++, 3-4장 pp. 48-128

4/11 slide thumbnail
Week #6:
CHAPTER 5 순차 컨테이너와 문자열 분석
  • Accelerated C++, 5장 pp. 131-164

4/18 slide thumbnail
Week #7:
CHAPTER 6 라이브러리 알고리즘
  • Accelerated C++, 6장 pp. 170-198
    중간고사 가이드

4/25 Midterm Test
5/2 slide thumbnail
Week #8:
CHAPTER 7 연관 컨테이너
  • Accelerated C++, 7장 pp. 202-222

5/9 slide thumbnail
Week #9:
CHAPTER 8 제네릭 함수
CHAPTER 9 새로운 타입 정의
  • Accelerated C++, 8장 pp. 225-248
    Accelerated C++, 9장 pp. 251-271

5/16 slide thumbnail
Week #10:
CHAPTER 10 메모리 관리 및 저수준 데이터 구조
  • Accelerated C++, 10장 pp. 274-299

5/23 slide thumbnail
Week #11:
CHAPTER 11 추상 데이터 타입
  • Accelerated C++, 11장 pp. 302-335

5/30 slide thumbnail
Week #12:
CHAPTER 12 값처럼 동작하는 클래스 객체
  • Accelerated C++, 12장 pp. 338-359

6/6 [ slides ] Week #13:
No Class 현충일

6/13 slide thumbnail
Week #14:
CHAPTER 13 상속과 동적 바인딩
  • Accelerated C++, 13장 pp. 362-398

6/20 Final Test | 실기
[스터디 가이드]

Top


Overview 개요

라이브러리 중심으로 배우는 C++ 핵심
Core C++ learning with a focus on libraries

C++는 기존 C에서 좀 더 발전한 프로그래밍 언어입니다. 하지만 C를 처음 배웠던 사람은 자칫 C++에서 제시하는 프로그래밍 방법이 아닌 C 프로그래밍을 하던 습관대로 프로그램을 만들려고 할지도 모릅니다.

이 책은 16개 장과 부록 2개를 통해 초중급 프로그래머가 C++를 C++답게 코딩하는 방법을 제대로 알려줍니다. C++ 표준 라이브러리를 이용해 함수, 데이터 구조, 클래스, 상속 등 객체지향 프로그래밍 개념으로 C++ 프로그래밍을 하는 방법을 순서대로 소개합니다.

또한 특정 문제를 해결하는 프로그램을 작성하는 과정 각각에 도움이 되는 C++ 및 표준 라이브러리의 기능을 소개하는 독특한 방식을 취합니다. 단순한 문법 파악이 아닌 프로그래밍하는 원리를 알 수 있는 학습 구조로 이루어져 있습니다. 프로그래밍 언어를 한 번이라도 학습한 적 있는 분, STL을 사용하여 C++ 프로그래밍의 속도를 높이고 싶은 분이라면 이 책으로 C++ 프로그래밍을 제대로 배우기 바랍니다.

  1. 핵심 개념을 적용하면서 발전시키는 학생 성적 관리 프로그램 만들기
  2. 핵심 정리로 배운 내용 다지기
  3. 연습문제를 풀면서 다지는 응용 기술 습득

C++ is a programming language that is more advanced than existing C. However, people who learned C for the first time may try to create programs according to their C programming habits rather than the programming method suggested by C++.

Through 16 chapters and two appendices, this book teaches beginner and intermediate programmers how to code C++ like C++. We sequentially introduce how to do C++ programming using object-oriented programming concepts such as functions, data structures, classes, and inheritance using the C++ standard library.

It also takes a unique approach to introducing features of C++ and the standard library, each of which helps in the process of writing a program that solves a specific problem. It has a learning structure that allows you to understand programming principles rather than simply understanding grammar. If you have ever learned a programming language or want to speed up C++ programming using STL, I recommend learning C++ programming properly with this book.

  1. Create a student grade management program that develops while applying core concepts
  2. Consolidate what you have learned by organizing key points
  3. Acquire application skills by solving practice problems

Textbook 교재

  1. Text: Accelerated C++: C++를 C++답게 배우는 16가지 방법
  2. Author: 앤드루 쾨니히, 바버라 E. 무 저 / 류태호 역
  3. Publisher: 한빛미디어 | 2018년 11월 05일
  1. Supplementary: 초보자를 위한 C++ 200제
  2. Author: 박준태 저
  3. Publisher: 정보문화사 | 2018년 04월 30일

Top


Policies 규정

Grading 평가방법

Most of my courses are graded based on the following components. Please note that the weights of each component may vary depending on the course. The grading policy will be announced in the first class and will be available on the course website.
대부분의 강의는 다음 구성요소에 따라 평가됩니다. 각 구성요소의 가중치는 강의에 따라 다를 수 있습니다. 평가 방법은 첫 강의에서 발표되며 강의 웹사이트에서 확인할 수 있습니다.


Attendance (& Participation) 출석 (& 참여도)

This may be the most important part of the class. Please pay careful attention to the following.
이것은 수업의 가장 중요한 부분일 수 있습니다. 다음 사항에 주의 깊게 주목해 주세요.

I appreciate everyone being actively involved in the class! Students who will succeed are those who are actively involved.
저는 수업에 적극적으로 참여해 주시는 모든 분들을 감사하게 생각합니다! 성공할 학생들은 적극적으로 참여하는 학생들입니다.

Assignments & Practice Exercises 과제 (연습문제) 및 실습 (수업 활동 결과)

Projects (or Research Paper & Presentation) 프로젝트 (또는 논문과 발표)

The following types of projects may be assigned in my courses:
다음 유형의 프로젝트가 강의에서 할당될 수 있습니다:

Tests

There will be two tests in this class: a midterm and a final. Both tests may include both written and programming questions. The written questions will be similar to the homework questions, and the programming questions will be similar to the programming assignments. Written questions will be closed-book, and programming questions will be open-book (i.e., you can use any resources you want, including the Internet).

Top


Collaboration Policy

Homework assignments must be done individually: each student must hand in their own answers. However, it is acceptable to collaborate when figuring out answers and to help each other solve the problems. We will be assuming that you will be taking the responsibility to make sure you personally understand the solution arising from such collaboration. You also must indicate on each homework with whom you have collaborated.

Late Policy

You will be allowed 6 total homework late days without penalty for the entire semester. You may be late by up to 6 days on any homework assignment. Once those days are used, you will be penalized according to the following policy:

You must turn in 75% of the practices and assignments, even if for zero credit, in order to pass the course.

Regrade Policy

If you feel that we have made a mistake in grading your homework, please submit a regrading request via email and I will consider your request. Please note that regrading of a homework may cause your grade to go either up or down.

Top


Instructor 강사소개

Aaron Snowberger earned his Ph.D. in Information and Communications Engineering from Hanbat National University in South Korea in 2024. He also holds degrees in Computer Science and Media Design. He has taught technology courses for over 8 years, English for over 15 years, and has freelanced as a web developer and magazine designer for over 5 years. His current research interests include computer vision, natural language processing, image processing, signal processing, and machine learning.

Aaron Snowberger는 2024년 한국 한밭대학교에서 정보통신공학 박사 학위를 취득했습니다. 그는 또한 컴퓨터 과학 및 미디어 디자인 학위를 취득했습니다. 그는 8년 이상 기술 과정을 가르쳤고, 15년 이상 영어를 가르쳤으며, 5년 이상 웹 개발자 및 잡지 디자이너로 프리랜서로 일했습니다. 그의 현재 연구 관심사는 컴퓨터 비전, 자연어 처리, 이미지 처리, 신호 처리 및 머신 러닝입니다.

Top