프로그래밍부터 알고리즘까지, 미래를 만드는 컴퓨터 과학의 세계
C는 1972년에 만들어진 컴퓨터 언어로, 순서대로 명령을 실행하는 간단한 방식입니다. C++는 1983년에 C를 발전시켜 만든 언어로, 더 복잡한 프로그램을 쉽게 만들 수 있게 했습니다. 이 두 언어는 컴퓨터 운영체제, 전자기기, 게임 프로그램 같은 걸 만들 때 많이 쓰입니다.
컴파일 언어로 실행 속도가 매우 빠르며, 메모리를 직접 제어할 수 있어 하드웨어 자원을 효율적으로 사용할 수 있습니다. 포인터를 통한 저수준 메모리 접근이 가능합니다.
C++는 STL(Standard Template Library)과 템플릿 시스템을 제공하며, 객체지향 프로그래밍, 제네릭 프로그래밍을 지원합니다. 수많은 라이브러리와 프레임워크가 존재합니다.
이 단원에서는 프로그래밍의 개념과 중요성에 대해 알아볼 수 있다. 또한, C 언어가 왜 프로그래밍의 시작으 로 선택되는지, 그 이유와 중요성에 대해 이해할 수 있다.
C 프로그램의 기본 문법과 데이터 유형, 연산자, 제어 구조 등을 다룬다. 여기서는 C 언어의 기본을 익히고 간단한 프로그램을 작성할 수 있는 기초를 다지고, 합수와 배열 등의 주제도 다루게 된다.
프로그램 설계와 구현프로그램을 설계하고 구현하는 방법에 대해 다룬다. 프로그래밍 과정에서 문제 해결 능력을 키우고, 프로그램을 효율적으로 작성하는 방법을 익혀 실제로 프로그램을 만들어보며 이론을 실전에 적용하는 경험을 쌓는다.
진로 선택 과목 + 교향 과목이 아닌 교과는 모두 5등급제
항목 | C / C++ | Python |
---|---|---|
언어 유형 | 컴파일 언어(실행 전에 전체 번역) | 인터프리터 언어(실행하면서 한 줄씩 번역) |
실행 속도 | 매우 빠름 | 상대적으로 느림 |
문법 복잡도 | 복잡하고 엄격함 | 간결하고 쉬움 |
메모리 관리 | 직접 관리 필요 | 자동 가비지 컬렉션 |
사용 분야 | 시스템, 임베디드, 게임엔진 | AI, 데이터분석, 웹 개발 |
C/C++는 성능이 중요할 때 사용되며, Python은 개발 속도와 생산성이 중요한 분야에 적합합니다.
예시를 통해 C/C++와 Python이 어떻게 다르게 코드를 작성하는지 알 수 있습니다.
1 #include <stdio.h> 2 3 int main() { 4 printf("hello world"); 5 return 0; 6 }
hello world
1 print("hello world") 2 3 4 5 6
hello world
// DHT11 센서 데이터 읽기 float humidity = dht.readHumidity(); float temperature = dht.readTemperature(); // LoRa 통신으로 데이터 전송 String data = String(temperature) + "@" + String(humidity); Serial2.println("AT+SEND=" + lora_RX_address + "," + String(data.length()) + "," + data); // 수신된 데이터 파싱 및 Google Sheets 업로드 if (Process_LoRa_Received_String(receivedString)) { sendtoSheets(); // 성공 시 클라우드 전송 }
// 플레이어 이동 함수 void movePlayer(int dx, int dy) { int newX = playerX + dx; int newY = playerY + dy; // 이동 가능성 검사 if (map[newY][newX] == ' ' || map[newY][newX] == 'E') { map[playerY][playerX] = ' '; // 이전 위치 비우기 playerX = newX; playerY = newY; if (map[newY][newX] != 'E') { map[playerY][playerX] = '@'; // 새 위치 표시 } } }
ESP32를 활용한 LoRa 무선통신 게이트웨이입니다. 여러 센서 노드로부터 온습도 데이터를 수신하고, WiFi를 통해 Google Sheets로 실시간 데이터를 전송합니다. OLED 디스플레이를 통해 수신 상태를 실시간으로 확인할 수 있습니다.
DHT11 센서를 이용한 온습도 측정 노드입니다. 측정된 데이터를 OLED 화면에 표시하고, LoRa 통신을 통해 게이트웨이로 전송합니다. 저전력 설계로 배터리 구동이 가능하며, 60초 간격으로 데이터를 전송합니다.
C언어로 구현된 콘솔 기반 미로 게임입니다. 101x83 크기의 복잡한 미로를 탐험하며 출구를 찾는 게임으로, 키보드 입력을 통해 플레이어를 조작합니다. 터미널 제어 기술과 게임 로직을 학습할 수 있습니다.
위의 세 프로젝트를 결합한 완전한 IoT 시스템입니다. 다수의 센서 노드가 LoRa 통신으로 데이터를 전송하고, 게이트웨이에서 클라우드로 업로드합니다. 실시간 모니터링과 데이터 분석이 가능한 종합 시스템입니다.
궁금한 점이 있으시면 언제든지 연락주세요!
더 자세한 정보는 진향옥 선생님과 이상옥 선생님께 문의하세요.