Temel C Programlama Dersleri -1- Giriş

Daha önceki yazıda bahsettiğimiz üzere C programlama eğitimini üç ana başlıkta sizlere anlatacağız. Bu eğitimlerden ilki giriş seviyesi olup hiç bilmeyen birinin C dilini anlaması ve rahatça kullanmasına yönelik temel C dersleri olacak. Bu temel C derslerinin sadece fonksiyonları ve döngüler gibi basit konulardan ibaret olacağını düşünmemek gerekir. Piyasadaki C kitapları ve C eğitimi her zaman dilin temelini ve dili anlatmaktadır. Biz de dili anlattığımız ve diğer kitaplarda olduğu gibi öğretici konsol uygulamaları yaptığımız eğitime “Temel C” adını veriyoruz. Kısacası bu seriyi C dilini öğreneceğiniz bir kitap yerine koyabilirsiniz. Bu seride ileri seviye kavramlardan çok fazla söz ederek başlangıçta sizi sıkmak istemiyoruz. İleri seviye kavramları öğrenmeniz gerekse de bunu daha ileri konularda anlatacağız. Bu seri “Bilgisayar okur-yazarlığı” edinmiş herkese yönelik olacaktır. Bilgisayar okur yazarlığını programlamaya ve mühendislik uygulamalarına başlamadan önce edinmeniz gereklidir. Çoğu zaman mühendislik öğrencilerinin bilgisayar okur yazarlığı edinmeden 32-bit mikrodenetleyicileri bile programlamaya başladığını görebiliriz. Fakat bilgisayar okur yazarlığı edinmeyen birisi programlama aşamasında oldukça zorlanacaktır. O yüzden bilgisayar okur yazarlığı bu alanda çalışmak isteyenlerin ilk edinmesi gereken deneyimdir. Biz de bilgisayar okur yazarlarına göre bu yazıları yazacağız. Yani basacağınız her düğmeyi, kuracağınız her programı “next tuşuna basın, ok deyin” diye anlatarak kaliteyi düşürmeyeceğiz.

Müfredat konusunda genellikle İngilizce eğitim kitaplarını ve referansları kaynak olarak alsak da bazen konunun dışına çıkarak ilginç noktaları sizinle paylaşacağız. Herhangi bir Türkçe kaynaktan istifade etmeyeceğiz ve ayrıca internetteki yabancı tutorial içerikleri gibi değil kitap kalitesinde bir seri ortaya koyacağız. Yazacağımız programlar konsol tabanlı olacak ve bilgisayar üzerinde çalışacak. Bu noktada öğrenciyi uğraştırmama ve kafasını karıştırmama adına doğrudan dile odaklanma gereği duyduk ve bunu da böyle sağlayacağız. Pek çok öğrencinin temel C bilgilerinden yoksun olduğunu görüyoruz bunları gömülü C ile başlatmakla zorluk çektirmek istemiyoruz.

Temel C derslerimizin prensibini ve sebebini anlattığımıza göre şimdi müfredattan kısaca bahsedelim. Bu müfredat dersler devam ederken zamanla ilave ve çıkarmalara maruz kalacak olsa da fikir edinmeniz açısından bir liste oluşturalım.

Temel Bilgisayar Konuları 

Burada bilgisayar bilginizi bir adım ileriye götürmek adına bilgisayar mimarisinden ve bilişim dünyasından önemli gördüğümüz başlıkları sizlere anlatacağız. Bilgisayar ile 1998’de tanıştığım için biraz da nostalji yapacağız. 🙂

C Diline ve Programlamaya Giriş 

Burada algoritma mantığını, program akışını ve bilgisayarın programı nasıl anladığını sizlere açıklayacağız. Programlama dilleri seviyeleri ve bu dillerin kullanım alanlarından bahsedeceğiz. C dilinin tarihini ve günümüzde kullanım alanlarını inceleyeceğiz ve C dilinin temel mantığını sizlere anlatacağız.

Temel Program Bileşenleri

Burada örnek programları inceleyerek temel program mantığını sizlere anlatacağız. Program akışını, operatörleri ve çalışma mantığını örnek program üzerinde göstereceğiz ve yapısal programlamaya giriş yapacağız.

Program Akışı Denetimi (Döngüler ve Kararlar)

C programlamada büyük bir adım olan döngü ve kararları size bütün ayrıntısıyla açıklayacağız. Gömülü sistemlerde program yazarken en çok kullandığımız yapı olmasının yanında bilgisayar programlamanın ve hatta yapay zekanın temelini de döngü ve kararlar oluşturmaktadır. O yüzden bu konu üzerinde uzun süre duracağız.

C Dilinde Veri Tipleri ve Giriş/Çıkış

Veri tipleri, tipler arası dönüşüm, veri formatları ve bunları temel çıkış fonksiyonları ile nasıl kullanacağınızı anlatacağız. Gömülü C kullanırken printf fonksiyonunu pek kullanmasak da aynı mantığı sprintf’de yine kullanmak gereklidir. Burada anlatılan bütün derslerin gömülü C’de rahatça kullanılabilir olmasına dikkat edeceğiz.

Fonksiyonlar

Fonksiyonlar ileri seviye programlamaya atılan ilk adım olarak değerlendirilebilir. C dilinin kuvvetini de fonksiyon kullanmakla anlayabiliriz. Kütüphane fonksiyonlarını kullanmak ve fonksiyonların mantığını kavramak çok önemlidir. Fonksiyonların mantığını kavrayan biri kendi kütüphanesini yazarken sıkıntı çekmez ve başka kütüphane fonksiyonlarını da rahatça kavrayabilir.

Diziler

Dizi değişkenleri ileri seviye veri işlemenin ilk adımıdır. C dilinde karakter dizisi olarak “String” yer almadığı için string işlemleri dizi olarak yerine getirilir. Bu yönden dizi konusunda karakter dizilerini de yoğun olarak anlatacağız.

Karakter Dizisi Fonksiyonları ve Metin İşleme

Bu alanda programcılık yeteneğimizi geliştirme adına uygulamalar yapacağız ve C dilinin standart kütüphanesinde yer alan karakter dizisi fonksiyonlarını kullanmayı anlatacağız.

İşaretçiler 

İşaretçileri anlamak için donanım bilgisinin gerektiğinin farkına vardım. Çünkü donanım bilmeden önce işaretçileri tam anlamıyla anlayamıyordum. Ne zaman bellek adreslerini, bilgisayar mimarisini yani gömülü sistemleri öğrenmeye başladıysam işaretçilerin ne kadar kolay olduğunun farkına vardım. O yüzden işaretçileri farklı bir açıdan sizlere aktarmaya çalışacağım.

Yapılar, Birlikler ve Operatörler

Operatör konusunda bitwise operatörleri mümkün olduğu kadar ayrıntılı anlatacağız. Çünkü Gömülü C’nin en önemli konularından biri bitwise operatörlerdir. Bütün yazmaç ve bit işlemleri bu operatörler vasıtasıyla yapılır ve bunlar olmadan gömülü sistem üzerinde çalışma imkansız gibidir. Yapı değişkenleri basit seviyede karşımıza çıkmasa da STM32’nin HAL kütüphanesi gibi gelişmiş yazılımlarda karşımıza çıkmaktadır. Burada basit olarak temeli öğrenmemiz Gömülü C’de işimizi kolaylaştıracaktır.

Derleyici Direktifleri ve Kütüphane Oluşturma

Gömülü C programlamada sürekli karşımıza çıkan bu konuyu eksik bırakmamaya çalışacağız. Aynı zamanda basit kütüphanelerin nasıl oluşturulduğunu anlatarak uygulama aşamasında işinizi kolaylaştıracağız.

Diğer C konuları

Önemli gördüğüm diğer C konularını anlatarak derslere devam edeceğim. Ayrıca açık kaynak olarak bulduğum örnekleri AVR derslerinde olduğu gibi imkan bulursam satır satır inceleyeceğim.

C programlama hakkında pek çok kaynak olduğu için bu alanda farklı, orjinal ve en iyi kaynağı ortaya koymaya çalışıyorum. Ayrıca zamanım kısıtlı olduğu için kısa sürede yeteri kadar ayrıntıya giremiyorum. O yüzden bu eğitimi uzun bir sürece yaymak gerekiyor. Bu konuda okuyucularımızın gecikmeleri anlayışla karşılamasını umuyoruz.

Bizi Facebook grubumuzda takip etmeyi unutmayın. Bilgili ve öğrenmeye hevesli bir topluluk oluşturmak istiyoruz.

https://www.facebook.com/groups/1233336523490761/

UYARI!!

Gökhan Dökmetaş

"Arduino Eğitim Kitabı" ve "Arduino ve Raspberry PI ile Nesnelerin İnterneti" kitaplarının yazarı. Başkent Teknoloji ve Dedektör Merkezi'nde Ar-ge Sorumlusu. Araştırmacı-Yazar.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.