Dersin Amacı: |
Bu ders, bilgisayar, yazılım, program, programlama, algoritma ve problem çözme yöntemleri, programlama dili ile ilgili temel bilgilerin kazandırılması, karşılaşabilecekleri temel problemlerin çözümüne yönelik algoritma geliştirme, akış diyagramını tasarlayabilme, bu algoritmaları yapısal programlama dili üzerinde uygulama geliştirmeye yönelik temel yetkinliklerin kazandırılmasını amaçlamaktadır. Bu derste C programlama dili birincil programlama dili olarak kullanılır. |
Dersin İçeriği: |
Bilgisayarların çalışma prensipleri, donanım, sayı sistemleri, programlama dilleri, makine dili, bir programı makine diline dönüştürme aşamaları, problem çözme ve algoritma, akış şeması ve çözüm örnekleri, programlama araçları, programlamaya giriş, veri tipleri ve değişkenler, operatörler, temel giriş/çıkış fonksiyonları, karar yapıları/program akış kontrolü, döngüler, fonksiyonlar, standart kütüphane fonksiyonları, kullanıcı tanımlı fonksiyonlar, dizi kavramı, işaretçi kavramı, dosya işlemleri ve uygulamaları. |
Hafta |
Konu |
Ön Hazırlık |
1) |
Bilgisayar ve Programla İlgili Temel Kavramlar
Bilgisayar, donanım, sayı sistemleri, bellek ve bellek ölçü birim kavramı
Yazılım, programlama, programlama dilleri, dillerin tarihi ve soyağacı
Makine dili, bir programının makine diline dönüşüm evreleri,
Derleyici ve yorumlayıcı kavramı
Syntax error, Run time error kavramları |
|
2) |
Problem Çözme ve Algoritma Temel Kavramları
- Problem ve çözme kavramı, problem örnekleri
- Problem çözme yaklaşımları
- Bilgisayarla problem çözme
- Problem çözümünde izlenecek adımlar
- Algoritma tanım ve tarihi
- Akış diyagramı veya akış şeması kavramı
- Akış şeması şekilleri ve kullanım yerleri
- Algoritma ve akış şeması örnekleri
|
Konuya ilişkin paylaşılan sunum ve yardımcı kaynaklardan çalışma. |
3) |
Problem, Algoritma ve Akış Şeması Çalışmaları
- Problem, algoritma ve akış şeması örnek çalışmaların incelenmesi
- Farklı problem örnekleri üzerinden sınıf içi çalışmaları |
Konuya ilişkin paylaşılan sunum ve yardımcı kaynaklardan çalışma. |
4) |
Programlama Dilleri Temel Tanım ve Kavramları
- Programlama dilleri ve tarihi,
- Dillere ait soyağacı düşük ve orta seviyeli bilgisayar dilleri
- Makine dili ve devirici Dil (Assembly)
- Üst seviye programlama dilleri
- C Programlama Dili ve C Dilinin Aile Ağacı
- Bir C Program Kodunun Makine Diline Dönüşüm Evreleri
Derleyici ve Yorumlayıcı Diller
- C Programlama Dili, Yapısı ve Özellikleri,
- C Programlama Dilinde: Anahtar Sözcükler, değişken tipleri, değişken isim verme kuralları, geçerli/geçersiz değişken isim örnekleri, operatörler (atama, aritmetik, artırma/azaltma, ilişkisel, mantıksal vb.) kavramları
- Laboratuvar uygulama çalışmaları
|
Konuya ilişkin paylaşılan sunum ve yardımcı kaynaklardan çalışma. |
5) |
Program Akış Denetimi
- Program akış kavramı
- Blok yapısı
- Eğerli yapılar ( If ... else, else if yönlendirmeleri)
- Swich yönlendirme
- Koşullu yönlendirme ve bu yapılara ait örnekler,
- Sınıf içi çalışmalar |
Konuyla ilgili paylaşılan sunumlardan ve destekleyici kaynaklardan çalışma. Kodlama pratiği. |
6) |
Döngü Kavramı ve C programlama dilinde döngüler
- while döngüsü,
- do .... while döngüsü,
- for döngüsü
- Döngü problemleri,
- Döngülerin kullanımı ve program örnekleri |
Konuya ilişkin paylaşılan sunum ve yardımcı kaynaklardan çalışma. C Programlamanın Temelleri adlı yardımcı kitabın ilk iki bölümünün okunması. |
7) |
Döngü Uygulama Çalışmaları
- Döngüler üzerine farklı problem örneklerinin tartışılması
- Algoritmalarının, akış diyagramlarının ve C dilinde yazılmış program kodlarının incelenmesi Soru-cevap şeklinde sınıf içi çalışmalar
- Laboratuvar uygulama çalışmaları
Ara sınav öncesi konuların genel özet tekrarı, sınıf içi soru ve cevap çalışmaları. |
Konuyla ilgili paylaşılan sunumlardan ve destekleyici kaynaklardan çalışma. Kodlama pratiği. |
8) |
Ara sınav |
Konuya ilişkin paylaşılan ders sunum ve yardımcı kaynaklardan çalışma. |
9) |
İç içe geçmiş döngüler
- C dilinde örnek problemlerin kodlanması ve çözümleri
- Döngülerde ‘break’ ve ‘continue’ kullanımı
Konuya ilişkin laboratuvar kodlama çalışmaları. |
Konuyla ilgili paylaşılan sunumlardan ve destekleyici kaynaklardan çalışma. Kodlama pratiği. |
10) |
Fonksiyonlar
- Fonksiyon kavram ve örnekleri
- Programlama dili ve fonksiyonlar
- Global değişken, parametre, fonksiyon çağırma/kullanma
- C Programlama dili standart kütüphane fonksiyonları,
- Depo sınıfları, zaman ve rasgele sayılara ait temel fonksiyonlar
- Özyinelem (recursion)
Konuya ilişkin laboratuvar kodlama çalışmaları. |
Konuyla ilgili paylaşılan sunumlardan ve destekleyici kaynaklardan çalışma. Kodlama pratiği. |
11) |
Diziler
- Dizi(array) kavramı, türleri, tek boyutlu diziler,
- Dizi oluşturma, uzunluğu, bileşenleri, bileşenlere erişim, rasgele erişim
- Dizi bileşenlerinde işlemler, değer atama, döngü, dizi kopyalama
- Çok boyutlu diziler
- Matris ve dizi, matris çarpımı
Konuya ilişkin örnekler ve laboratuvar kodlama çalışmaları. |
Konuyla ilgili paylaşılan sunumlardan ve destekleyici kaynaklardan çalışma. Kodlama pratiği. |
12) |
İşaretçiler (pointers) ve bellek yönetimi
- İşaretçi kavramı, işaretçinin yararları, bellek adresleri, işaretçi ve adres,
- NULL işaretçi, * ve & operatörleri, operatörlerin öncelikleri
- Fonksiyonları referans ile çağırma,
- İşaretçi aritmetiği, dizi ve işaretçiler,
- Bellek yönetim kavramı, dinamik ve statik bellek yönetim teknikleri
Alıştırmalar ve laboratuvarda kodlama çalışmaları. |
Konuyla ilgili paylaşılan sunumlardan ve destekleyici kaynaklardan çalışma. Kodlama pratiği. |
13) |
Metin
- Metin kavramı, düz yazı, text karakter dizim(string) kavramı,
- Dizim oluşturma, kopyalama, başlıca dizim fonksiyonlar ve kullanımları,
- Program örnekleri
Konuya ilişkin laboratuvar kodlama çalışmaları. |
Konuyla ilgili paylaşılan sunumlardan ve destekleyici kaynaklardan çalışma. Kodlama pratiği. |
14) |
Dosyalar
- Dosya kavramı, dosya türleri, text dosyalar, dosya işaretçisi,
- Dosya fonksiyonları,
- Karakter giriş/çıkış işlemleri,
- İkili dosyalar, rasgele erişim fonksiyonları,
Program kod örnekleri ve laboratuvar çalışmaları.
Dönem Sonu sınav öncesi genel konuların özet tekrarı, sınıf içi soru ve cevap çalışmaları |
Konuyla ilgili paylaşılan sunumlardan ve destekleyici kaynaklardan çalışma. Kodlama pratiği. |
|
Dersin Program Kazanımlarına Etkisi |
Katkı Payı |
1) |
Matematik, hesaplama ve bilgisayar bilimleri konularında kuramsal ve uygulamalı bilgilere sahiptir. |
4 |
1) |
Bireysel olarak veya çok disiplinli takımlarda etkin çalışır. |
3 |
1) |
Sürekli mesleki gelişimin gerekliliği bilinci ile bilişim ve/veya bilgisayar bilimleri, bilgi ve iletişim teknolojileri ile ilgili güncel gelişmeleri izler. |
4 |
1) |
Sözlü ve yazılı iletişim kurar, en az bir yabancı dili en az Avrupa Dil Portföyü B1 Genel Düzeyinde kullanarak bilişim ve bilgisayar bilimleri alanındaki bilgileri izler ve meslektaşları ile iletişim kurar. |
2 |
2) |
Bilişim uygulamalarının bireysel, kurumsal, toplumsal ve evrensel boyutlardaki etkilerinin bilincindedir ve girişimcilik, yenilikçilik konuları hakkında farkındalığa sahiptir. |
5 |
2) |
Bilişim ve/veya bilgisayar bilimleri problemlerini saptar, tanımlar ve modeller; bu amaçla uygun analiz ve modelleme yöntemlerini seçer ve uygular. |
3 |
2) |
Bilişim ve/veya bilgisayar bilimleri problemlerinin tanımlarını ve ilk çözümlerini elde etmek amacı ile etkileşimli deneysel ortamlar tasarlar, uygular ve bu ortamları değerlendirir |
3 |
3) |
Mesleki ve etik sorumluluk bilinci ile bilişim uygulamalarının hukuksal sonuçları hakkında farkındalığa sahiptir. |
5 |
3) |
Bilgisayar tabanlı sistemlerde yaşam çevriminin tüm aşamalarını gerçekleştirir. |
2 |
4) |
Hesaplama, matematik ve kuramsal bilgisayar bilimleri bilgileri ile bilgi ve iletişim teknolojilerini, bilişim ve/ya bilgisayar bilimleri problemlerinin çözümleri için seçer ve kullanır. |
4 |