μ•„λž˜ λͺ¨λ“  λ‚ μ§œλŠ” μ‹œκ°„λŒ€ μž…λ‹ˆλ‹€.
   열리는 날    닫히는 날
수강기간
2025-01-06 00:00:00 GMT
2025-04-20 23:59:59 GMT
수강신청기간
2024-12-23 00:00:00 GMT
2025-01-05 23:59:59 GMT

CλŠ” κ°€μž₯ 널리 μ‚¬μš©λ˜λŠ” μ–Έλ§€λ‹ˆμ§€λ“œ μ–Έμ–΄λ“€ 쀑 ν•˜λ‚˜μ΄λ©°, 2019λ…„ 7μ›” κΈ°μ€€ μ „ μ„Έκ³„μ—μ„œ 2번째둜 많이 μ‚¬μš©λ˜λŠ” μ–Έμ–΄μž…λ‹ˆλ‹€. (좜처: https://www.tiobe.com/tiobe-index/)

ν˜„μ‘΄ν•˜λŠ” ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λŠ” 크게 λ§€λ‹ˆμ§€λ“œ(Managed) 언어와 μ–Έλ§€λ‹ˆμ§€λ“œ(Unmanaged) μ–Έμ–΄λ‘œ λ‚˜λˆ μ§€λ©°, 이 λ‘˜μ˜ μ°¨μ΄λŠ” ν”„λ‘œκ·Έλž˜λ¨Έκ°€ 컴퓨터 ν•˜λ“œμ›¨μ–΄λ₯Ό 직접 μ œμ–΄ν•  수 μžˆλŠ”μ§€μ˜ μ—¬λΆ€μž…λ‹ˆλ‹€. (예: ν”„λ‘œκ·Έλž˜λ¨Έκ°€ 직접 λ©”λͺ¨λ¦¬λ₯Ό κ΄€λ¦¬ν•˜λŠ”κ°€?) λŒ€ν‘œμ μΈ μ–Έλ§€λ‹ˆμ§€λ“œ 언어인 CλŠ” ν•˜λ“œμ›¨μ–΄μ™€ 맀우 κ°€κΉλ‹€λŠ”μž₯점으둜 40년이 λ„˜λŠ” μ„Έμ›” λ™μ•ˆ μ‚΄μ•„λ‚¨μ•˜μ„ 뿐만 μ•„λ‹ˆλΌ 아직도 컴파일러, 운영체제, μž„λ² λ””λ“œ μ‹œμŠ€ν…œ λ“± μ €μˆ˜μ€€μ˜ μ œμ–΄ 및 λ©”λͺ¨λ¦¬ μ ˆμ•½μ΄ μš”κ΅¬λ˜λŠ” 곳에 μ™•μ„±ν•˜κ²Œ μ‚¬μš©λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 그리고 이런 νŠΈλ Œλ“œλŠ” ν•œ λ™μ•ˆ λ°”λ€Œμ§€ μ•Šμ„ μ „λ§μž…λ‹ˆλ‹€.

ν”„λ‘œκ·Έλž˜λ¨Έμ˜ 지속적인 μ„±μž₯에 λ°˜λ“œμ‹œ ν•„μš”ν•œ 지식 쀑 ν•˜λ‚˜λŠ” 컴퓨터 ν•˜λ“œμ›¨μ–΄μ— λŒ€ν•œ μ΄ν•΄μž…λ‹ˆλ‹€. CλŠ” λŒ€λΆ€λΆ„μ˜ λ§€λ‹ˆμ§€λ“œ 언어와 달리 μ–Έλ§€λ‹ˆμ§€λ“œ μ–Έμ–΄ 특유의 κΈ°λŠ₯ (예: λ©”λͺ¨λ¦¬ 관리) 듀을 ν¬ν•¨ν•˜κ³  있기 λ•Œλ¬Έμ—, ν•˜λ“œμ›¨μ–΄μ˜ λ™μž‘ 원리λ₯Ό κ³΅λΆ€ν•˜κ³  싢은 λΆ„ λ“€, ν˜Ήμ€ 컴퓨터λ₯Ό 더 잘 μ΄ν•΄ν•˜κ³  싢은 λΆ„λ“€μ—κ²Œ 쒋은 μž…λ¬Έμš© μ–Έλ§€λ‹ˆμ§€λ“œ 언어라고 ν•  수 μžˆκ² μŠ΅λ‹ˆλ‹€.

이 κ°•μ’ŒλŠ” μ„ μˆ˜ κ³Όλͺ©μΈ 'ν”„λ‘œκ·Έλž˜λ° μž…λ¬Έ'μ—μ„œ 배운 절차적 ν”„λ‘œκ·Έλž˜λ° 지식을 기반으둜 Cμ–Έμ–΄κ°€ μ–Έλ§€λ‹ˆμ§€λ“œ μ–Έμ–΄λ‘œμ„œ κ°€μ§€λŠ” κΈ°λŠ₯듀에 λŒ€ν•΄μ„œ μ•Œ μ•„λ΄…λ‹ˆλ‹€. 이 μ½”μŠ€λ₯Ό μ„±κ³΅μ μœΌλ‘œ λ§ˆλ¬΄λ¦¬ν•œ 뢄듀은 ν•˜λ“œμ›¨μ–΄μ— λŒ€ν•œ 더 넓은 μ‹œμ•Όλ₯Ό κ°–μΆœ 수 μžˆμ„ κ²ƒμž…λ‹ˆλ‹€.

λ³Έ κ°•μ’ŒλŠ” 첫 주에 'ν”„λ‘œκ·Έλž˜λ° μž…λ¬Έ'κ³Όλͺ©μ—μ„œ 배운 기초 ν”„λ‘œκ·Έλž˜λ° κ°œλ…λ“€μ΄ C에 μ–΄λ–»κ²Œ μ μš©λ˜λŠ”μ§€ μ‚΄νŽ΄ λ³Έ λ’€ λ‹€μŒκ³Ό 같이 크게 μ„Έ λΆ€λΆ„μœΌλ‘œ λ‚˜λ‰˜λ©°, κ°•μ˜ 진행도 이 μˆœμ„œλ₯Ό λ”°λ¦…λ‹ˆλ‹€.

  1. ANSI C/C89: C의 기본이 λ˜λŠ” λ‚΄μš©κ³Ό C둜 κ΅¬ν˜„ν•˜λŠ” 자료 ꡬ쑰듀. (~11μ£Ό μ°¨)
  2. C99: C99 ν‘œμ€€μ—μ„œ μΆ”κ°€λœ κΈ°λŠ₯λ“€ (12μ£Ό μ°¨ ~ 13μ£Ό μ°¨)
  3. C++1x: C11/18 ν‘œμ€€μ—μ„œ μΆ”κ°€λœ μ΅œμ‹  κΈ°λŠ₯λ“€ (14μ£Ό μ°¨~)

μœ„μ™€ 같이 κ°•μ˜λ₯Ό μ„Έ λΆ€λΆ„μœΌλ‘œ λ‚˜λˆˆ μ΄μœ λŠ” 아직도 λ§Žμ€ C ν”„λ‘œμ νŠΈλ“€μ΄ 89λ…„λ„μ˜ ν‘œμ€€μ„ μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ΄λ©°, 이런 νŠΈλ Œλ“œλŠ” λ°”λ€Œμ§€ μ•Šμ„ 전망이기 λ•Œλ¬Έμž…λ‹ˆλ‹€. λ”°λΌμ„œ λͺ¨λ“  ν”„λ‘œμ νŠΈμ—μ„œ μ“Έ 수 μžˆλŠ” C의 지식을 μ€‘μ‹¬μœΌλ‘œ 배우되 κ°€λŠ₯ν•  경우 μƒˆλ‘œ μΆ”κ°€λœ κΈ°λŠ₯을 μ‚¬μš©ν•  수 μžˆλŠ” μ‹€λ ₯을 κ°–μΆ”κ²Œ ν•˜λŠ” 것이 κ°•μ’Œμ˜ λͺ©ν‘œμž…λ‹ˆλ‹€.

수강 시작 날짜 : 2025-01-06 00:00:00 GMT

수업 내용
  • κ³Όλͺ© μ„€λͺ…
  • ν—¬λ‘œ μ›”λ“œ(Hello World)
  • κΈ°λ³Έ μžλ£Œν˜•(primitive type)
  • μ—΄κ±°(enum)ν˜•
  • 관계 μ—°μ‚°μž, 논리 μ—°μ‚°μž, 쑰건 μ—°μ‚°μž
  • sizeof ν‚€μ›Œλ“œ
  • 쑰건문
  • 반볡문
  • ν•¨μˆ˜μ™€ λ²”μœ„(scope)
  • μ „μ—­ λ³€μˆ˜
  • const ν‚€μ›Œλ“œ

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 4μ‹œκ°„ 56λΆ„): 이 κ³Όλͺ©μ—μ„œ μ‚¬μš©ν•˜λŠ” μ„œλΉ„μŠ€ 및 도ꡬ ~ 볡슡 ν€΄μ¦ˆ

과제 및 실습
  • 실습 1

  • 과제 1  (제출 마감: 2025-01-26 22:00:00 GMT)

수업 내용
  • goto ν‚€μ›Œλ“œ
  • λ°°μ—΄(array)
  • μŠ€νƒ λ©”λͺ¨λ¦¬
  • 닀차원 λ°°μ—΄(multi-dimensional array)
  • C ν”„λ‘œκ·Έλž¨μ˜ λΉŒλ“œ κ³Όμ •
  • extern/static ν‚€μ›Œλ“œ

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 4μ‹œκ°„ 07λΆ„): goto λ¬Έ ~ 정리

과제 및 실습
  • 실습 2

  • 과제 1  (제출 마감: 2025-01-26 22:00:00 GMT)

수업 내용
  • 포인터
  • μ£Όμ†Œ μ—°μ‚°μž(address operator)
  • 포인터와 ν•¨μˆ˜ λ°˜ν™˜ κ°’
  • 널(null) 포인터
  • assert ν•¨μˆ˜
  • 포인터 μ—°μ‚°
  • 포인터와 const
  • 포인터 λ°°μ—΄

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 3μ‹œκ°„ 30λΆ„): 포인터 (pointer) ~ 정리

과제 및 실습
  • 실습 3

  • 과제 1  (제출 마감: 2025-01-26 22:00:00 GMT)

수업 내용
  • C μŠ€νƒ€μΌ λ¬Έμžμ—΄
  • λ¬Έμžμ—΄ μ‘°μž‘(string manipulation)
  • μ½˜μ†” 좜λ ₯

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 3μ‹œκ°„ 06λΆ„): λ¬Έμžμ—΄μ˜ ν‘œν˜„κ³Ό 길이 ~ 정리

과제 및 실습
  • 실습 4

  • 과제 2  (제출 마감: 2025-02-16 22:00:00 GMT)

수업 내용
  • μ½˜μ†” μž…λ ₯
  • 파일 μž…μΆœλ ₯
  • μ»€λ§¨λ“œ 라인 인자(command line argument)

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 3μ‹œκ°„ 12λΆ„): μž…λ ₯ ~ 정리

과제 및 실습
  • 실습 5

  • 과제 2  (제출 마감: 2025-02-16 22:00:00 GMT)

수업 내용
  • ꡬ쑰체(struct)
  • typedef ν‚€μ›Œλ“œ
  • λΉ„νŠΈ ν•„λ“œ(bit field)
  • 곡용체(union)
  • ν•¨μˆ˜ 포인터
  • 였λ₯Έμͺ½-μ™Όμͺ½ κ·œμΉ™(right-left rule)
  • void 포인터

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 3μ‹œκ°„ 46λΆ„): ꡬ쑰체, ꡬ쑰체의 ν•„μš”μ„± ~ 정리

과제 및 실습
  • 실습 6

  • 과제 2  (제출 마감: 2025-02-16 22:00:00 GMT)

수업 내용
  • κ°€λ³€ 인자 ν•¨μˆ˜(variadic function)
  • 였λ₯˜ 처리

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 1μ‹œκ°„ 39λΆ„): κ°€λ³€ 인자 ν•¨μˆ˜ ~ 정리

과제 및 실습
  • 과제 3  (제출 마감: 2025-03-16 22:00:00 GMT)

수업 내용
  • μˆ˜μ—… 및 μ‹€μŠ΅/과제 제좜 μ—†μŒ (이유: 쀑간고사 μ£Όκ°„)
과제 및 실습
  • 과제 3  (제출 마감: 2025-03-16 22:00:00 GMT)

수업 내용
  • λ ˆμ§€μŠ€ν„°(register), μŠ€νƒ(stack)κ³Ό νž™(heap)
  • 동적 λ©”λͺ¨λ¦¬
  • 이쀑 포인터(ν¬μΈν„°μ˜ 포인터)
  • 닀쀑 포인터

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 2μ‹œκ°„ 55λΆ„): λ©”λͺ¨λ¦¬μ˜ μ’…λ₯˜ ~ 정리

과제 및 실습
  • 실습 7

  • 과제 3  (제출 마감: 2025-03-16 22:00:00 GMT)

수업 내용
  • 자료 ꡬ쑰
  • λ°°μ—΄
  • μŠ€νƒ(stack)
  • 큐(queue)
  • μ—°κ²° 리슀트(linked list)

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 2μ‹œκ°„ 14λΆ„): 자료ꡬ쑰 기초 ~ 볡슡 ν€΄μ¦ˆ 3

과제 및 실습
  • 실습 8

  • 과제 3  (제출 마감: 2025-03-16 22:00:00 GMT)

수업 내용
  • ν•΄μ‹œ 맡(hashmap)
  • μ „μ²˜λ¦¬κΈ°(preprocessor)
  • 맀크둜(macro)
    • 맀크둜의 λ§€κ°œλ³€μˆ˜
  • 맀크둜 ν•¨μˆ˜μ˜ ν™œμš©

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 2μ‹œκ°„ 32λΆ„): ν•΄μ‹œ ν…Œμ΄λΈ” ~ 정리

과제 및 실습
  • 실습 9

  • 과제 4  (제출 마감: 2025-04-06 22:00:00 GMT)

수업 내용
  • λ‚˜λ§Œμ˜ 라이브러리 λ§Œλ“€κΈ°
  • C99
  • inline ν‚€μ›Œλ“œ
  • restrict ν‚€μ›Œλ“œ
  • ν•œ 쀄 주석
  • μƒˆλ‘œμš΄ λ³€μˆ˜ 선언법
  • va_copy()
  • snprintf()
  • μƒˆλ‘œμš΄ μžλ£Œν˜•(뢈, long long, κ³ μ • 폭 μ •μˆ˜ν˜•, λ³΅μ†Œμˆ˜ ν˜•)
  • κ°œμ„ λœ IEEE754 뢀동 μ†Œμˆ˜μ  μžλ£Œν˜•

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 2μ‹œκ°„ 06λΆ„): λ‚˜λ§Œμ˜ 라이브러리 λ§Œλ“€κΈ° ~ 정리

과제 및 실습
  • 실습 10

  • 과제 4  (제출 마감: 2025-04-06 22:00:00 GMT)

수업 내용
  • 뢀동 μ†Œμˆ˜μ  μ˜ˆμ™Έ
  • type-generic μˆ˜ν•™
  • κ°€λ³€ 길이 λ°°μ—΄
  • λ°°μ—΄ 색인 μ•ˆμ˜ static ν‚€μ›Œλ“œ
  • 볡합 λ¦¬ν„°λŸ΄(compound literal)
  • κ°€λ³€ 인자 맀크둜
  • μœ λ‹ˆλ²„μ„€ 문자 이름(UCN, universal character name)
  • C11
  • μœ λ‹ˆμ½”λ“œ 지원
  • μƒˆλ‘œμš΄ μ•ˆμ „ν•œ(?) ν•¨μˆ˜λ“€

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 2μ‹œκ°„ 27λΆ„): λΆ€λ™μ†Œμˆ˜μ  μ˜ˆμ™Έ ~ _s ν•¨μˆ˜λ₯Ό κ³Όμ—° 써야 ν• κΉŒ?

과제 및 실습
  • 실습 11

  • 과제 4  (제출 마감: 2025-04-06 22:00:00 GMT)

수업 내용
  • Type-Generic ν•¨μˆ˜ λ§Œλ“€κΈ°
  • 정적 μ–΄μ„œνŠΈ
  • λ©”λͺ¨λ¦¬ μ •λ ¬
  • ꡬ쑰체 μ •λ ¬
  • λ©€ν‹° μŠ€λ ˆλ”©

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 1μ‹œκ°„ 20λΆ„): Type-Generic ν•¨μˆ˜ λ§Œλ“€κΈ° ~ μ—ν•„λ‘œκ·Έ

과제 및 실습
  • 없음

수업 내용
  • μˆ˜μ—… 및 μ‹€μŠ΅/과제 제좜 μ—†μŒ (이유: 기말고사 μ£Όκ°„)
과제 및 실습
  • 없음

제목   공지일   제출 마감  
실습 1
2025-01-06 00:00:00 GMT (1주 차) 2025-01-12 22:00:00 GMT
실습 2
2025-01-13 00:00:00 GMT (2주 차) 2025-01-19 22:00:00 GMT
실습 3
2025-01-20 00:00:00 GMT (3주 차) 2025-01-26 22:00:00 GMT
실습 4
2025-01-27 00:00:00 GMT (4주 차) 2025-02-02 22:00:00 GMT
실습 5
2025-02-03 00:00:00 GMT (5주 차) 2025-02-09 22:00:00 GMT
실습 6
2025-02-10 00:00:00 GMT (6주 차) 2025-02-16 22:00:00 GMT
실습 7
2025-03-03 00:00:00 GMT (9주 차) 2025-03-09 22:00:00 GMT
실습 8
2025-03-10 00:00:00 GMT (10주 차) 2025-03-16 22:00:00 GMT
실습 9
2025-03-17 00:00:00 GMT (11주 차) 2025-03-23 22:00:00 GMT
실습 10
2025-03-24 00:00:00 GMT (12주 차) 2025-03-30 22:00:00 GMT
실습 11
2025-03-31 00:00:00 GMT (13주 차) 2025-04-06 22:00:00 GMT
과제 1
2025-01-06 00:00:00 GMT (1주 차) 2025-01-26 22:00:00 GMT
과제 2
2025-01-27 00:00:00 GMT (4주 차) 2025-02-16 22:00:00 GMT
과제 3
2025-02-17 00:00:00 GMT (7주 차) 2025-03-16 22:00:00 GMT
과제 4
2025-03-17 00:00:00 GMT (11주 차) 2025-04-06 22:00:00 GMT
2025-01-19 23:59:59 GMT 환불 신청 마감
  • 성적표에 기록되지 않음
  • 전액 환불 (처리 수수료 US$ 100 공제)
2025-03-09 23:59:59 GMT 수강 철회 신청 마감
  • 성적표에 "W"로 표시
수료하지 않은 선수과목에 대한 자가평가 질문
  1. COMP1500: 나는 C#에서 재귀함수를 이용하여 하노이의 탑 문제를 풀 수 있다.
  2. COMP1500: 나는 C#을 이용하여 .csv 파일 하나를 읽어 2D 문자열 배열로 만들 수 있다.
  3. COMP1000: 나는 어떤 unsigned int 값이 2의 승수인지 O(1) 시간 안에 판단하는 함수를 작성할 수 있다.
권장 소프트웨어
  1. μœˆλ„μš° 운영체제
  2. Clang 16.0.6
  3. ν…μŠ€νŠΈ 에디터
시험 응시 준비물
  1. 반드시 PC에서(모바일은 응시 불가) 크롬(Chrome) 브라우저를 사용해야 합니다.

  2. 시험을 볼 때 시험 감독 서비스를 사용하며, 서비스를 이용하기 위한 시스템 최소 사양은 다음과 같습니다.

윈도우 리눅스 크롬 운영체제
운영체제 윈도우 7+ 맥 OSX 10.9+ 우분투 18.04+ 크롬 58+
프로세서 인텔 펜티엄 이상 인텔 또는 ARM 인텔 펜티엄 이상 인텔 또는 ARM
사용 가능한 디스크 공간 250 MB 250 MB 250 MB 250 MB
램(메모리) 4 GB1 4 GB1 4 GB1 4 GB1
업로드 속도 0.092 Mbps - 0.244 Mbps
마이크 내장형 또는 독립형
웹캠 VGA 해상도 320x240 이상, 내장형 또는 독립형
1   메모리의 적어도 25%는 다른 응용 프로그램에서 사용되지 않는다고 가정할 때의 최소 용량입니다. 시험 도중에 시스템 크래시가 나는 일이 생기지 않도록 최소 용량의 50%를 확보해 두길 권장합니다.

통과 점수: 85%

  • 실습 1 (1.00 %)

  • 실습 2 (2.40 %)

  • 실습 3 (2.40 %)

  • 실습 4 (2.40 %)

  • 실습 5 (2.40 %)

  • 실습 6 (2.40 %)

  • 실습 7 (2.40 %)

  • 실습 8 (2.40 %)

  • 실습 9 (2.40 %)

  • 실습 10 (2.40 %)

  • 실습 11 (2.40 %)

  • 과제 1 (6.25 %)

  • 과제 2 (6.25 %)

  • 과제 3 (6.25 %)

  • 과제 4 (6.25 %)

  • 중간고사 (25.0%)

  • 기말고사 (25.0%)

학생 비율 점수
   열리는 날    닫히는 날
수강기간
2025-05-05 00:00:00 GMT
2025-08-17 23:59:59 GMT
수강신청기간
2025-04-21 00:00:00 GMT
2025-05-04 23:59:59 GMT

CλŠ” κ°€μž₯ 널리 μ‚¬μš©λ˜λŠ” μ–Έλ§€λ‹ˆμ§€λ“œ μ–Έμ–΄λ“€ 쀑 ν•˜λ‚˜μ΄λ©°, 2019λ…„ 7μ›” κΈ°μ€€ μ „ μ„Έκ³„μ—μ„œ 2번째둜 많이 μ‚¬μš©λ˜λŠ” μ–Έμ–΄μž…λ‹ˆλ‹€. (좜처: https://www.tiobe.com/tiobe-index/)

ν˜„μ‘΄ν•˜λŠ” ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λŠ” 크게 λ§€λ‹ˆμ§€λ“œ(Managed) 언어와 μ–Έλ§€λ‹ˆμ§€λ“œ(Unmanaged) μ–Έμ–΄λ‘œ λ‚˜λˆ μ§€λ©°, 이 λ‘˜μ˜ μ°¨μ΄λŠ” ν”„λ‘œκ·Έλž˜λ¨Έκ°€ 컴퓨터 ν•˜λ“œμ›¨μ–΄λ₯Ό 직접 μ œμ–΄ν•  수 μžˆλŠ”μ§€μ˜ μ—¬λΆ€μž…λ‹ˆλ‹€. (예: ν”„λ‘œκ·Έλž˜λ¨Έκ°€ 직접 λ©”λͺ¨λ¦¬λ₯Ό κ΄€λ¦¬ν•˜λŠ”κ°€?) λŒ€ν‘œμ μΈ μ–Έλ§€λ‹ˆμ§€λ“œ 언어인 CλŠ” ν•˜λ“œμ›¨μ–΄μ™€ 맀우 κ°€κΉλ‹€λŠ”μž₯점으둜 40년이 λ„˜λŠ” μ„Έμ›” λ™μ•ˆ μ‚΄μ•„λ‚¨μ•˜μ„ 뿐만 μ•„λ‹ˆλΌ 아직도 컴파일러, 운영체제, μž„λ² λ””λ“œ μ‹œμŠ€ν…œ λ“± μ €μˆ˜μ€€μ˜ μ œμ–΄ 및 λ©”λͺ¨λ¦¬ μ ˆμ•½μ΄ μš”κ΅¬λ˜λŠ” 곳에 μ™•μ„±ν•˜κ²Œ μ‚¬μš©λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 그리고 이런 νŠΈλ Œλ“œλŠ” ν•œ λ™μ•ˆ λ°”λ€Œμ§€ μ•Šμ„ μ „λ§μž…λ‹ˆλ‹€.

ν”„λ‘œκ·Έλž˜λ¨Έμ˜ 지속적인 μ„±μž₯에 λ°˜λ“œμ‹œ ν•„μš”ν•œ 지식 쀑 ν•˜λ‚˜λŠ” 컴퓨터 ν•˜λ“œμ›¨μ–΄μ— λŒ€ν•œ μ΄ν•΄μž…λ‹ˆλ‹€. CλŠ” λŒ€λΆ€λΆ„μ˜ λ§€λ‹ˆμ§€λ“œ 언어와 달리 μ–Έλ§€λ‹ˆμ§€λ“œ μ–Έμ–΄ 특유의 κΈ°λŠ₯ (예: λ©”λͺ¨λ¦¬ 관리) 듀을 ν¬ν•¨ν•˜κ³  있기 λ•Œλ¬Έμ—, ν•˜λ“œμ›¨μ–΄μ˜ λ™μž‘ 원리λ₯Ό κ³΅λΆ€ν•˜κ³  싢은 λΆ„ λ“€, ν˜Ήμ€ 컴퓨터λ₯Ό 더 잘 μ΄ν•΄ν•˜κ³  싢은 λΆ„λ“€μ—κ²Œ 쒋은 μž…λ¬Έμš© μ–Έλ§€λ‹ˆμ§€λ“œ 언어라고 ν•  수 μžˆκ² μŠ΅λ‹ˆλ‹€.

이 κ°•μ’ŒλŠ” μ„ μˆ˜ κ³Όλͺ©μΈ 'ν”„λ‘œκ·Έλž˜λ° μž…λ¬Έ'μ—μ„œ 배운 절차적 ν”„λ‘œκ·Έλž˜λ° 지식을 기반으둜 Cμ–Έμ–΄κ°€ μ–Έλ§€λ‹ˆμ§€λ“œ μ–Έμ–΄λ‘œμ„œ κ°€μ§€λŠ” κΈ°λŠ₯듀에 λŒ€ν•΄μ„œ μ•Œ μ•„λ΄…λ‹ˆλ‹€. 이 μ½”μŠ€λ₯Ό μ„±κ³΅μ μœΌλ‘œ λ§ˆλ¬΄λ¦¬ν•œ 뢄듀은 ν•˜λ“œμ›¨μ–΄μ— λŒ€ν•œ 더 넓은 μ‹œμ•Όλ₯Ό κ°–μΆœ 수 μžˆμ„ κ²ƒμž…λ‹ˆλ‹€.

λ³Έ κ°•μ’ŒλŠ” 첫 주에 'ν”„λ‘œκ·Έλž˜λ° μž…λ¬Έ'κ³Όλͺ©μ—μ„œ 배운 기초 ν”„λ‘œκ·Έλž˜λ° κ°œλ…λ“€μ΄ C에 μ–΄λ–»κ²Œ μ μš©λ˜λŠ”μ§€ μ‚΄νŽ΄ λ³Έ λ’€ λ‹€μŒκ³Ό 같이 크게 μ„Έ λΆ€λΆ„μœΌλ‘œ λ‚˜λ‰˜λ©°, κ°•μ˜ 진행도 이 μˆœμ„œλ₯Ό λ”°λ¦…λ‹ˆλ‹€.

  1. ANSI C/C89: C의 기본이 λ˜λŠ” λ‚΄μš©κ³Ό C둜 κ΅¬ν˜„ν•˜λŠ” 자료 ꡬ쑰듀. (~11μ£Ό μ°¨)
  2. C99: C99 ν‘œμ€€μ—μ„œ μΆ”κ°€λœ κΈ°λŠ₯λ“€ (12μ£Ό μ°¨ ~ 13μ£Ό μ°¨)
  3. C++1x: C11/18 ν‘œμ€€μ—μ„œ μΆ”κ°€λœ μ΅œμ‹  κΈ°λŠ₯λ“€ (14μ£Ό μ°¨~)

μœ„μ™€ 같이 κ°•μ˜λ₯Ό μ„Έ λΆ€λΆ„μœΌλ‘œ λ‚˜λˆˆ μ΄μœ λŠ” 아직도 λ§Žμ€ C ν”„λ‘œμ νŠΈλ“€μ΄ 89λ…„λ„μ˜ ν‘œμ€€μ„ μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ΄λ©°, 이런 νŠΈλ Œλ“œλŠ” λ°”λ€Œμ§€ μ•Šμ„ 전망이기 λ•Œλ¬Έμž…λ‹ˆλ‹€. λ”°λΌμ„œ λͺ¨λ“  ν”„λ‘œμ νŠΈμ—μ„œ μ“Έ 수 μžˆλŠ” C의 지식을 μ€‘μ‹¬μœΌλ‘œ 배우되 κ°€λŠ₯ν•  경우 μƒˆλ‘œ μΆ”κ°€λœ κΈ°λŠ₯을 μ‚¬μš©ν•  수 μžˆλŠ” μ‹€λ ₯을 κ°–μΆ”κ²Œ ν•˜λŠ” 것이 κ°•μ’Œμ˜ λͺ©ν‘œμž…λ‹ˆλ‹€.

수강 시작 날짜 : 2025-05-05 00:00:00 GMT

수업 내용
  • κ³Όλͺ© μ„€λͺ…
  • ν—¬λ‘œ μ›”λ“œ(Hello World)
  • κΈ°λ³Έ μžλ£Œν˜•(primitive type)
  • μ—΄κ±°(enum)ν˜•
  • 관계 μ—°μ‚°μž, 논리 μ—°μ‚°μž, 쑰건 μ—°μ‚°μž
  • sizeof ν‚€μ›Œλ“œ
  • 쑰건문
  • 반볡문
  • ν•¨μˆ˜μ™€ λ²”μœ„(scope)
  • μ „μ—­ λ³€μˆ˜
  • const ν‚€μ›Œλ“œ

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 4μ‹œκ°„ 56λΆ„): 이 κ³Όλͺ©μ—μ„œ μ‚¬μš©ν•˜λŠ” μ„œλΉ„μŠ€ 및 도ꡬ ~ 볡슡 ν€΄μ¦ˆ

과제 및 실습
  • 실습 1

  • 과제 1  (제출 마감: 2025-05-25 22:00:00 GMT)

수업 내용
  • goto ν‚€μ›Œλ“œ
  • λ°°μ—΄(array)
  • μŠ€νƒ λ©”λͺ¨λ¦¬
  • 닀차원 λ°°μ—΄(multi-dimensional array)
  • C ν”„λ‘œκ·Έλž¨μ˜ λΉŒλ“œ κ³Όμ •
  • extern/static ν‚€μ›Œλ“œ

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 4μ‹œκ°„ 07λΆ„): goto λ¬Έ ~ 정리

과제 및 실습
  • 실습 2

  • 과제 1  (제출 마감: 2025-05-25 22:00:00 GMT)

수업 내용
  • 포인터
  • μ£Όμ†Œ μ—°μ‚°μž(address operator)
  • 포인터와 ν•¨μˆ˜ λ°˜ν™˜ κ°’
  • 널(null) 포인터
  • assert ν•¨μˆ˜
  • 포인터 μ—°μ‚°
  • 포인터와 const
  • 포인터 λ°°μ—΄

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 3μ‹œκ°„ 30λΆ„): 포인터 (pointer) ~ 정리

과제 및 실습
  • 실습 3

  • 과제 1  (제출 마감: 2025-05-25 22:00:00 GMT)

수업 내용
  • C μŠ€νƒ€μΌ λ¬Έμžμ—΄
  • λ¬Έμžμ—΄ μ‘°μž‘(string manipulation)
  • μ½˜μ†” 좜λ ₯

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 3μ‹œκ°„ 06λΆ„): λ¬Έμžμ—΄μ˜ ν‘œν˜„κ³Ό 길이 ~ 정리

과제 및 실습
  • 실습 4

  • 과제 2  (제출 마감: 2025-06-15 22:00:00 GMT)

수업 내용
  • μ½˜μ†” μž…λ ₯
  • 파일 μž…μΆœλ ₯
  • μ»€λ§¨λ“œ 라인 인자(command line argument)

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 3μ‹œκ°„ 12λΆ„): μž…λ ₯ ~ 정리

과제 및 실습
  • 실습 5

  • 과제 2  (제출 마감: 2025-06-15 22:00:00 GMT)

수업 내용
  • ꡬ쑰체(struct)
  • typedef ν‚€μ›Œλ“œ
  • λΉ„νŠΈ ν•„λ“œ(bit field)
  • 곡용체(union)
  • ν•¨μˆ˜ 포인터
  • 였λ₯Έμͺ½-μ™Όμͺ½ κ·œμΉ™(right-left rule)
  • void 포인터

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 3μ‹œκ°„ 46λΆ„): ꡬ쑰체, ꡬ쑰체의 ν•„μš”μ„± ~ 정리

과제 및 실습
  • 실습 6

  • 과제 2  (제출 마감: 2025-06-15 22:00:00 GMT)

수업 내용
  • κ°€λ³€ 인자 ν•¨μˆ˜(variadic function)
  • 였λ₯˜ 처리

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 1μ‹œκ°„ 39λΆ„): κ°€λ³€ 인자 ν•¨μˆ˜ ~ 정리

과제 및 실습
  • 과제 3  (제출 마감: 2025-07-13 22:00:00 GMT)

수업 내용
  • μˆ˜μ—… 및 μ‹€μŠ΅/과제 제좜 μ—†μŒ (이유: 쀑간고사 μ£Όκ°„)
과제 및 실습
  • 과제 3  (제출 마감: 2025-07-13 22:00:00 GMT)

수업 내용
  • λ ˆμ§€μŠ€ν„°(register), μŠ€νƒ(stack)κ³Ό νž™(heap)
  • 동적 λ©”λͺ¨λ¦¬
  • 이쀑 포인터(ν¬μΈν„°μ˜ 포인터)
  • 닀쀑 포인터

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 2μ‹œκ°„ 55λΆ„): λ©”λͺ¨λ¦¬μ˜ μ’…λ₯˜ ~ 정리

과제 및 실습
  • 실습 7

  • 과제 3  (제출 마감: 2025-07-13 22:00:00 GMT)

수업 내용
  • 자료 ꡬ쑰
  • λ°°μ—΄
  • μŠ€νƒ(stack)
  • 큐(queue)
  • μ—°κ²° 리슀트(linked list)

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 2μ‹œκ°„ 14λΆ„): 자료ꡬ쑰 기초 ~ 볡슡 ν€΄μ¦ˆ 3

과제 및 실습
  • 실습 8

  • 과제 3  (제출 마감: 2025-07-13 22:00:00 GMT)

수업 내용
  • ν•΄μ‹œ 맡(hashmap)
  • μ „μ²˜λ¦¬κΈ°(preprocessor)
  • 맀크둜(macro)
    • 맀크둜의 λ§€κ°œλ³€μˆ˜
  • 맀크둜 ν•¨μˆ˜μ˜ ν™œμš©

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 2μ‹œκ°„ 32λΆ„): ν•΄μ‹œ ν…Œμ΄λΈ” ~ 정리

과제 및 실습
  • 실습 9

  • 과제 4  (제출 마감: 2025-08-03 22:00:00 GMT)

수업 내용
  • λ‚˜λ§Œμ˜ 라이브러리 λ§Œλ“€κΈ°
  • C99
  • inline ν‚€μ›Œλ“œ
  • restrict ν‚€μ›Œλ“œ
  • ν•œ 쀄 주석
  • μƒˆλ‘œμš΄ λ³€μˆ˜ 선언법
  • va_copy()
  • snprintf()
  • μƒˆλ‘œμš΄ μžλ£Œν˜•(뢈, long long, κ³ μ • 폭 μ •μˆ˜ν˜•, λ³΅μ†Œμˆ˜ ν˜•)
  • κ°œμ„ λœ IEEE754 뢀동 μ†Œμˆ˜μ  μžλ£Œν˜•

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 2μ‹œκ°„ 06λΆ„): λ‚˜λ§Œμ˜ 라이브러리 λ§Œλ“€κΈ° ~ 정리

과제 및 실습
  • 실습 10

  • 과제 4  (제출 마감: 2025-08-03 22:00:00 GMT)

수업 내용
  • 뢀동 μ†Œμˆ˜μ  μ˜ˆμ™Έ
  • type-generic μˆ˜ν•™
  • κ°€λ³€ 길이 λ°°μ—΄
  • λ°°μ—΄ 색인 μ•ˆμ˜ static ν‚€μ›Œλ“œ
  • 볡합 λ¦¬ν„°λŸ΄(compound literal)
  • κ°€λ³€ 인자 맀크둜
  • μœ λ‹ˆλ²„μ„€ 문자 이름(UCN, universal character name)
  • C11
  • μœ λ‹ˆμ½”λ“œ 지원
  • μƒˆλ‘œμš΄ μ•ˆμ „ν•œ(?) ν•¨μˆ˜λ“€

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 2μ‹œκ°„ 27λΆ„): λΆ€λ™μ†Œμˆ˜μ  μ˜ˆμ™Έ ~ _s ν•¨μˆ˜λ₯Ό κ³Όμ—° 써야 ν• κΉŒ?

과제 및 실습
  • 실습 11

  • 과제 4  (제출 마감: 2025-08-03 22:00:00 GMT)

수업 내용
  • Type-Generic ν•¨μˆ˜ λ§Œλ“€κΈ°
  • 정적 μ–΄μ„œνŠΈ
  • λ©”λͺ¨λ¦¬ μ •λ ¬
  • ꡬ쑰체 μ •λ ¬
  • λ©€ν‹° μŠ€λ ˆλ”©

λ™μ˜μƒ κ°•μ˜ λ²”μœ„(총 1μ‹œκ°„ 20λΆ„): Type-Generic ν•¨μˆ˜ λ§Œλ“€κΈ° ~ μ—ν•„λ‘œκ·Έ

과제 및 실습
  • 없음

수업 내용
  • μˆ˜μ—… 및 μ‹€μŠ΅/과제 제좜 μ—†μŒ (이유: 기말고사 μ£Όκ°„)
과제 및 실습
  • 없음

제목   공지일   제출 마감  
실습 1
2025-05-05 00:00:00 GMT (1주 차) 2025-05-11 22:00:00 GMT
실습 2
2025-05-12 00:00:00 GMT (2주 차) 2025-05-18 22:00:00 GMT
실습 3
2025-05-19 00:00:00 GMT (3주 차) 2025-05-25 22:00:00 GMT
실습 4
2025-05-26 00:00:00 GMT (4주 차) 2025-06-01 22:00:00 GMT
실습 5
2025-06-02 00:00:00 GMT (5주 차) 2025-06-08 22:00:00 GMT
실습 6
2025-06-09 00:00:00 GMT (6주 차) 2025-06-15 22:00:00 GMT
실습 7
2025-06-30 00:00:00 GMT (9주 차) 2025-07-06 22:00:00 GMT
실습 8
2025-07-07 00:00:00 GMT (10주 차) 2025-07-13 22:00:00 GMT
실습 9
2025-07-14 00:00:00 GMT (11주 차) 2025-07-20 22:00:00 GMT
실습 10
2025-07-21 00:00:00 GMT (12주 차) 2025-07-27 22:00:00 GMT
실습 11
2025-07-28 00:00:00 GMT (13주 차) 2025-08-03 22:00:00 GMT
과제 1
2025-05-05 00:00:00 GMT (1주 차) 2025-05-25 22:00:00 GMT
과제 2
2025-05-26 00:00:00 GMT (4주 차) 2025-06-15 22:00:00 GMT
과제 3
2025-06-16 00:00:00 GMT (7주 차) 2025-07-13 22:00:00 GMT
과제 4
2025-07-14 00:00:00 GMT (11주 차) 2025-08-03 22:00:00 GMT
2025-05-18 23:59:59 GMT 환불 신청 마감
  • 성적표에 기록되지 않음
  • 전액 환불 (처리 수수료 US$ 100 공제)
2025-07-06 23:59:59 GMT 수강 철회 신청 마감
  • 성적표에 "W"로 표시
수료하지 않은 선수과목에 대한 자가평가 질문
  1. COMP1500: 나는 C#에서 재귀함수를 이용하여 하노이의 탑 문제를 풀 수 있다.
  2. COMP1500: 나는 C#을 이용하여 .csv 파일 하나를 읽어 2D 문자열 배열로 만들 수 있다.
  3. COMP1000: 나는 어떤 unsigned int 값이 2의 승수인지 O(1) 시간 안에 판단하는 함수를 작성할 수 있다.
권장 소프트웨어
  1. μœˆλ„μš° 운영체제
  2. Clang 16.0.6
  3. ν…μŠ€νŠΈ 에디터
시험 응시 준비물
  1. 반드시 PC에서(모바일은 응시 불가) 크롬(Chrome) 브라우저를 사용해야 합니다.

  2. 시험을 볼 때 시험 감독 서비스를 사용하며, 서비스를 이용하기 위한 시스템 최소 사양은 다음과 같습니다.

윈도우 리눅스 크롬 운영체제
운영체제 윈도우 7+ 맥 OSX 10.9+ 우분투 18.04+ 크롬 58+
프로세서 인텔 펜티엄 이상 인텔 또는 ARM 인텔 펜티엄 이상 인텔 또는 ARM
사용 가능한 디스크 공간 250 MB 250 MB 250 MB 250 MB
램(메모리) 4 GB1 4 GB1 4 GB1 4 GB1
업로드 속도 0.092 Mbps - 0.244 Mbps
마이크 내장형 또는 독립형
웹캠 VGA 해상도 320x240 이상, 내장형 또는 독립형
1   메모리의 적어도 25%는 다른 응용 프로그램에서 사용되지 않는다고 가정할 때의 최소 용량입니다. 시험 도중에 시스템 크래시가 나는 일이 생기지 않도록 최소 용량의 50%를 확보해 두길 권장합니다.

통과 점수: 85%

  • 실습 1 (1.00 %)

  • 실습 2 (2.40 %)

  • 실습 3 (2.40 %)

  • 실습 4 (2.40 %)

  • 실습 5 (2.40 %)

  • 실습 6 (2.40 %)

  • 실습 7 (2.40 %)

  • 실습 8 (2.40 %)

  • 실습 9 (2.40 %)

  • 실습 10 (2.40 %)

  • 실습 11 (2.40 %)

  • 과제 1 (6.25 %)

  • 과제 2 (6.25 %)

  • 과제 3 (6.25 %)

  • 과제 4 (6.25 %)

  • 중간고사 (25.0%)

  • 기말고사 (25.0%)

학생 비율 점수