Bilgisayar Mühendisliği


Yazan : Şadi Evren ŞEKER

Bu yazının amacı genel olarak bilgisayar mühendisliğini ve terimsel bazı problemleri açıklamaktır. Bu yazı, içinde bulunulan bilgisayarkavramlari.com sitesinin amacı olan akademik ve bilimsel açıklamaların dışına çıkmaktadır. Ancak bu yazı ile tartışılmakta olan bazı konulara açıklık getirilmek amaçlanmış ve sitenin genel okuyucu kitlesinin bilgilendirilmesi amaçlanmıştır. Her zaman olduğu gibi buradaki konularda yanlış veya eksik olduğunu düşündüğünüz konular için iletişime geçebilirsiniz.

Bilgisayar Mühendisliği mi / Bilimleri mi?

Bilgisayar mühendisliği yabancı bir dilden giren hemen her kelime (ya da kelime grubu) gibi sancılı bir terimdir. Kavram olarak gerek bilgisayarları gerekse bilgisayar mühendisiliğini ithal etmiş ülkemizde, ingilizcedeki “computer science” ve “computer engineering” kavramlarını karşılayan ne yazık ki tek terim bulunmaktadır. Her ne kadar Bilgisayar Bilimleri gibi sonradan bazı terimler denenmiş olsa da içerik karmaşası sayesinde bu yazının yazıldığı tarih itibariyle Türkiyedeki “bilgisayar mühendislikleri” hala iki terimi de karşılayan eğitimler vermeye çalışmaktadır.

Bu iki bölüm (computer science / Engineering) arasındaki temel fark mühendisliğin özellikle Amerika’daki üniversitelerde Elektronik fakültesine bağlı olması ve daha çok donanım, işlemci programlama, elektronik ağırlıklı çalışmasıdır. Bilgisayar bilimleri ise daha çok algoritma analizi, dil tasarımı, yapay zeka gibi nispeten soyut (mücerret) konular üzerinde çalışmaktadır. Her ne kadar iki disiplinin de ortak noktaları olarak kabul edilebilecek bilgisayar ağları, işletim sistemleri gibi konular olsa da aslında iki disiplin birbirinden ayrılmaktadır.

Türkiyede ise bu durum tek bir isimle (Bilgisayar Mühendisliği) karşılanmakta olup bu bölümlerin içeriği ağırlıklı olarak bilgisayar bilimleri olarak şekillenmektedir. Her ne kadar çeşitli üniversitelerde Bilgisayar Bilimleri, Yazılım Mühendisliği, Bilişim Teknolojileri gibi bilgisayar mühendisliğine yakın bölümler açılmış olsa da genelde aynı üniversitelerin bilgisayar mühendisliği bölümü de bulunmakta ve genelde içeriği yukarıda da anlatıldığı üzere şekillenmektedir.

Bir disiplin olarak bilgisayar mühendisliği

Her disiplinin var olabilmesi için bilimsel bazı dayanaklarının olması gerekir. Özellikle de sayısal çalışmalarda bir disiplinin varlığı, matematiksel bir dayanağa bağlıdır.

Aslında bilimlerin sınıflandırılması uzun ve tartışmalı bir konudur ancak bilgisayar mühendisliğinin bir uygulamalı bilim (applied science) olduğu konusunda uzlaşma vardır. Yani daha çok matematiksel kavram ve kuramların uygulandığı bir alan olarak görülebilir.

Bilimleri şayet doğal bilimleri (fennî ilimler) ve beşerî ilimler (insana dayalı bilimler) olarka sınıflandırırsanız, bilgisayar mühendisliğinin insana bağlı biri bilim olduğu kesindir. Bu sınıflandırmada temel rol, doğadan öğrenilen veya insan tarafından üretilen bilim olmasına göre yapıldığına göre, bilgisayar bilimlerinin büyük çoğunluğu fizik, biyoloji, kimya gibi doğadan öğrenilen bilimlerden oluşmamakta bunun yerine felsefe, matematik gibi insan tarafından koyulan kurallar ve uygulamalardan oluşmaktadır.

Bilgisayar mühendisliğinin(bilimlerinin) en çekirdeğinde algoritma kavramının ve algoritma analizinin olduğunu söylemek doğru olur.  Her ne kadar bu disiplinin temeline ayrık matematiği (Discrete mathmetics) oturtan yorumlar olsa da günün birinde sürekli çalışan (continous) bir bilgisayar hakim olabilir ve bu olduğunda bu bilgisayarlar ve üzerlerindeki çalışmalar da bilgisayar mühendisliğinin konusu olacağı ve bu durumda sürekli matematikten bahsedileceği için bu ayrım çok doğru değildir.

Ancak algoritma analizi, yani bir işin nasıl yapılacağının adım adım akışının çıkarılması ve bu adımların ve akışın iyileştirilmesi (optimize) her zaman ve her problem için geçerli olacak bir durumdur.

Aslında bu açıdan bakıldığında bilgisayarların olmadığı zamanlarda da bilgisayar mühendisliğinin var olması gerektiği ortaya çıkabilir. Bunun sebebi biraz daha ingilizce terimin içerisindeki anlamdan kaynaklanmaktadır. Computer terimini Türkçeye çevirirsek yönetici, idare edici, hükmedici anlamlarının yanında hesaplayıcı, işleyici, işlem yapıcı gibi terimlerle karşılayabiliriz. Buradaki anlam, örneğin bir robotun bir üretim bandını kontrol etmesindeki anlamı da taşımaktadır. Elbette bilgisayarlardan önce de üretim veya yönetim yapılmaktaydı, bu yönetimin düşük veya üst seviye olmasına bakılmadan insanlar tarafında yapılıyordu. Ancak günümüzde bu bilgisayarlar ile yer değiştirmiş ve hızla da değiştirmeye devam etmektedir. Yine bir örnek üzerinden bakılacak olursa, trafiği günümüzde bilgisayarlar kontrol ediyor ve teknolojimiz tamamen trafiği izleyip öğrenerek en verimli şekilde örneğin bir kavşağı yönetecek bilgisayar yapmaya yeterli (ve örnekleri var) ancak bilgisayarlardan önceki dönemlerde bu iş kavşağa yerleştirilen bir polis memuru ile yapılıyor veya kavşaktakiler kaderlerine bırakılarak sürücülerin problemi çözmesi bekleniyordu.

Bu durumda bilgisayarlardan önceki zamanlarda da aslında insanlar tarafından yapılan işin bir algoritma üretilmesi ve bu algoritmanın daha iyi hale getirilmesi olarak yorumlanması yanlış olmaz.

Bilgisayarlar ve İnsanlar

Bilgisayarlar insanların yerine geçebilir mi veya bilgisayarlar insanların işlerinin sonu olur mu gibi tartışmalara bir iki farklı açıdan bakmam mümkün.

Birincisi bilgisayarlar daha çok anamalcı (kapitalist, capitaist) bir yaklaşımın ürünüdür. Burada amaç insandan bağımsız olarak para ile kontrol edilmesi, üretilmesi ve yönetilmesi kolay bir sistem kurmaktır. Burada teknolojiyi anamal yoğun (capital intensive) ve emek yoğun (labour intensive) olarak ikiye ayırmak mümkün. Seçilen teknoloji insan gücüne daha çok ihtiyaç duyuyorsa emek yoğun, para ve sermaye birikimine daha çok ihtiyaç duyuyorsa anamal yoğun olarak isimlendirilebilir.

Bilgisayarların ağırlığının artması ise hiç şüphesiz emek yoğun sistemlerden anamal yoğun sistemlere geçişin bir göstergesidir. Örneğin bin kişilik bir fabrikayı artık on kişi ile işletebiliyorsanız daha çok paraya daha az insana ihtiyacınız vardır.

Bu durum hemen bilgisayarların, insanların işlerine ve gelirlerine son verdiği olarak yorumlanmamalıdır. Bu görüşü savunan pekçokkişiye karşılık bu görüşün tersini savunan kişiler yeni açılan iş sahalarını ve gelişen teknoloji ile insanların daha az çalışmalarına (ve dolayısıyla geçinmek için daha az gelire ) artık ihtiyaç duymalarını göstermektedir.

İnsan ve makine çizgisi

Yukarıda bilgisayarların giderek daha hakim olduğu bir dünya çizilirken buradaki insan ve makineler arasındaki sınırdan bahsetmek gerekir.

Bu noktada sıkça sorulan ve kurgu bilim filimlerine de sıkça konu olan “birgün insan gibi düşünen bilgisayarlar olabilecek mi?” ve tabi bunun bir adım sonrasındaki soru “bilgisayarlar birgün dünyayı ele geçirecek mi” gibi sorular bilgisayarların güncel hayata girmesinden çok önce çeşitli tartışmalara konu olmuş ve değişik kriterler ortaya konulmuştur.

bu kriterlerin en meşhurlarından birisi de Turing Testi olarak geçen testtir. Basitçe bir odadaki iki monitörün birisinin arkasında bir bilgisayar, diğerinin arkasında da bir insan oturmaktadır. Sorulan sorular ile hangi monitörün arkasında insan oturduğu anlaşılamıyorsa, söz konusu bilgisayar Turing Testini geçmiş sayılır. Şayet soruların hepsine insan gibi cevap verebilen bir bilgisayar yapılabilirse (ki bu soruların büyük kısmı insan gibi düşünmeyi gerektirir) bu durumda evet bir gün insanları tamamen ikame edebilecek (insanların yerine geçebilecek) bilgisayarlar yapmak mümkündür.

Ancak her konuda olduğu gibi bu konuda da Turing testine inananlar ve inanmayanlar olarak bilim dünyası ikiye ayrılmıştır. Kişisel olarak bu testin geçilebileceğine inanmamamla birlikte yapılan çalışmaların, bu testteki sorulara her geçen gün daha başarılı yanıtlar vermek yolunda ilerlediğini kabul etmek gerekir.

İşte bu noktada insa ve makine çizgisi devreye girmekte ve bir sistemde makinelerin yapacağı işler ile insanların yapacağı işler arasında bir sınır çizmektedir. En azından şimdilik bilgisayarlar herşeyi yapamadığına göre her sistemde insana ihtiyaç vardır. İnsanın devreye girdiği noktada ise arada bir sınır oluşmaktadır.

Bu sınırda ise bilgisayarlar ile iletişim kurulan bir arayüze ihtiyaç duyulur. Pekçok kere görsel sanatlarında konusu olan bu sınırda çeşitli ekranlar veya donanımlar vasıtasıyla insanın bilgisayarlar ile iletişim kurması üzerinde çalışılmıştır.

Bilgisayar mühendisliğinin bir kısım çalışmaları da bu noktada yoğunlaşmaktadır. Örneğin tasarım ve göresel öğelerin üretilmesi konuları, veya bilgisayarlar tarafından üretilen verilerin görüntülenmesi gibi konularda çalışma alanları hızla artmaktadır.

Bilgisayar Mühendisliği Eğitim İçeriği

Üniversitedeki bir bilgisayar mühendisliği bölümünde olabilecek anabilim dallarını sıralamak istersek aşağıda yapılan listeye benzer bir liste elde edilebilir:

şekliden saymak mümkündür. Bu listeye ekleme ve çıkarmalar yapılabilir. Ayrıca bu listede bulunmayan ancak bu listedeki gruplardan birkaçına birden giren pekçok çalışma alanı vardır. Örneğin Internet programlama konusunu hem veri iletişimine hemde algoritmalara koymak hatta bu konuyu bir proje yönetimi olarak ele alırsak yazılım mühendisliğine de dahil etmek mümkündür. Veya uzman sistemler, yapay sinir ağları veya  doğal dil işleme  gibi konuları yapay zekanın bir alt dalı olarak incelemek veya tamamen ayırmak da mümkündür.

Aslında bilgisayar mühendisliği eğitimi de bu anabilim dallarının hepsinden en az birer giriş ders alarak hepsi hakkında bir fikir sahibi olmaktır. Bu konuların tam olarak ne oldukları ve işe yarar seviyede bilgi alınması ancak yüksek lisans ve sonrasında mümkün olmaktadır.

Ne yazık ki bilgisayar mühendisliği bölümleri, piyasadaki eleman ihtiyacı ve buna bağlı istihdam olanaklarından dolayı akademide yeterli öğretim görevlisinin bulunmadığı ve pekçok üniversitede yukarıdaki konuların hepsinde çalışan hocanın bulunmasının istisna olduğu bölümlerdir. Dolayısıyla pek çok bilgisayar mühendisi yukarıdaki bu ana konuların çoğunu görme şansı olmadan mezun olmaktadır.

Türkiyede Bilgisayar Mühendislerinin Çalışma Alanları

Bir ülkenin teknoloji üretim ve kullanım seviyesi olmak üzere iki farklı seviyesinden bahsetmek mümkündür. Türkiyedeki teknoloji üretim seviyesi ne yazık ki kullanılan seviyeye oranla düşüktür. Yani kullandığımız teknolojik gelişmelerin bir kısmını üretmek yeirne hazır almaktayız. Bu durumda teknolojik üretimin gerektirdiği ve bir önceki başlıkda sayılan bazı anabilim dallarında insan istihdam edilememesi anlamına gelmektedir.

Genel bir bakışla Türkiyedeki bilgisayar mühendisleri şu alanlarda çalışmaktadır:

Yukarıdaki liste ağırlıklı olarak bilgisayar mühendisliği veya benzeri bölümlerden mezun olan kişilerin Türkiyede çalıştığı alanlardır. Ağırlıklı olarak pazarlama ve yazılım geliştirme konularında istihdam edilmelerine karşılık göreceli olarak çok az da olsa yukarıdaki listeye girmeyen bilgisayar mühendisliği alanlarında da çalışan kişiler vardır.


« Çıkarıcı Devre (Subtractor Circuit)   |   Belirli Sonlu Otomat (Deterministic Finite Automat, DFA) »



Yorumlar

Giriş yaparak yorum yazabilirsiniz.

Bu Yazı Hakkında

Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'Bilgisayar Mühendisliği' isimli yazı 10 Nov 2008 tarihinde, saat: 07:56 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 160 defa okunmuştur.

Benzer yazıları Bilgisayar Kavramları, bilgisayar felsefesi kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.


Eklenen Son Yazılar
Yapılan Son Yorumlar
Yakın Yazılar
Bağlantılar