Advanced C Programming

고급 C 프로그래밍

INFO2104 • 2024년 2학기 • 한밭대학교

Schedule 강의일정

Date Lecture Content Logistics
9/6 slide thumbnail
Week #1:
01 프로그램과 C 언어
  • p.

9/13 slide thumbnail
Week #2:
02 C 언어로 만드는 첫 번째 프로그램
03 자료형
  • p.
[ 과제 ]

9/20 slide thumbnail
Week #3:
04 상수와 변수
05 함수
  • p.
[ 과제 ]

9/27 slide thumbnail
Week #4:
06 표준 출력 함수
07 연산자
  • p. 105-150
[ 과제 ]

10/4 slide thumbnail
Week #5:
08 조건문
  • p. 151-202
[ 과제 ]

10/11 slide thumbnail
Week #6:
09 반복문
10 시프트 연산자와 비트 연산자
  • p. 176-225
[ 과제 ]

10/18 slide thumbnail
Week #7:
11 지역 변수와 전역 변수
12 배열과 문자열
  • p. 226-288
[ 과제 ]

10/25 Midterm Test
11/1 slide thumbnail
Week #8:
12 배열과 문자열
13 포인터
  • p. 289-333
[ 과제 ]

11/8 slide thumbnail
Week #9:
14 표준 입력 함수
15 배열과 포인터
  • p. 334-383
[ 과제 ]

11/15 slide thumbnail
Week #10:
16 메모리 할당
  • p. 368-421
[ 과제 ]

11/22 slide thumbnail
Week #11:
17 다차원 포인터
  • p. 368-454
[ 과제 ]

11/29 slide thumbnail
Week #12:
18 구조체와 연결 리스트
  • p. 455-496
[ 과제 ]

12/6 slide thumbnail
Week #13:
19 파일 입출력
20 함수 포인터
  • p. 497-540
[ 과제 ]

박사 연구 설문조사

12/13 Final Test
퀴즈 | 실기
샘플 코드는 13주차 + 14주차에 있어요.
샘플 코드

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: Do it! C 언어 입문
  2. Author: 김성엽 저
  3. Publisher: 이지스퍼블리싱 | 2017년 01월 10일
  1. Supplementary: 초보자를 위한 C 언어 300제
  2. Author: 김은철 저
  3. Publisher: 정보문화사 | 2017년 02월 06일
  1. Supplementary: 실무자를 위한 C 언어 100제
  2. Author: 강병익 저
  3. Publisher: 정보문화사 | 2023년 03월 30일
  1. Supplementary: Effective C: 전문적인 C 프로그래밍 입문서
  2. Author: 로버트 C. 시코드 저/박정재, 장기식, 장준원 역
  3. Publisher: 에이콘출판사 | 2023년 06월 30일

Top


Logistics 수업운영

Course Information / 과정정보

시간이 지나도 변하지 않고 컴퓨팅 세계의 기반을 강화하는 데 도움이 되는 전문적이고 안전하며 이식 가능한 C 코드를 작성하는 방법을 알아본다.

Students will learn how to write professional, safe, and portable C code that doesn’t change over time and helps strengthen the foundations of the world of computing.

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


Resources 자료실

Computer Software / 소프트웨어

The software we will be using is listed below. 수업에서 사용할 소프트웨어가 다음과 같다.

Textbook Resources / 교재자료

Do it! 실습 파일과 PDF 전자책

Tutorials / 튜토리얼

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