Bilgisayar mühendisleri ne yapar?
Bilgisayar mühendisliği, bilgisayar ve bilgisayar tabanlı sistemlerin yazılım ve donanımlarının tasarımı, gerçekleştirimi ve yönetimi ile ilgilenen bir bilim dalıdır. Bu kapsamda karmaşık sistem ve süreçlerin problem ve eksikliklerini anlayabilme, analiz edebilme, en doğru çözüm yolunu saptayabilme ve bu çözümü bilişim teknolojilerinin sunduğu olanakları kullanarak en uygun şekilde çözebilme becerileri üzerine kuruludur. Günümüzde bilgisayar mühendisleri toplumsal hayatın ve iş dünyasının hemen her alanında kullanılan bilişim teknolojilerine hâkim, bu teknolojileri ve araçları kullanarak farklı problemlere özgün ve yeni çözümler tasarlayan, var olan çözümleri hızlandıran ve kolaylaştıran yeni teknolojiler geliştirerek bilişim dünyasına sunan bireyler olarak görülebilirler.
Bilgisayar mühendisliği, en genç mühendislik dallarından biridir. Köken olarak elektrik ve elektronik mühendisliği ve matematik ile yakından ilgili olmasına rağmen, yaşanan teorik ve teknolojik gelişmeler sayesinde son kırk yılda ayrı bir disiplin olarak gelişti. Geldiğimiz noktada yazılım mühendisliği, yapay zekâ mühendisliği ve veri mühendisliği gibi yeni mühendislik dallarının doğmasına da neden oldu. Bilgisayar mühendisliği, bilişim teknolojileri, matematik, bilim ve mühendislik teorileri ve ilkelerine dayanır ve bu teorileri ve ilkeleri, bilgisayar donanımı, bilgisayar yazılımı, bilgisayar ağları ve ilgili süreçlerin tasarımı yoluyla teknik sorunları çözmek için uygular.
Bu anlamda, bilgisayar mühendisleri, yaratılan en karmaşık ürünler olarak bilgisayar sistemlerini ve programlarını derinlemesine anlayan ve çok çeşitli amaçlar doğrultusunda bunları tasarlayabilen bireylerdir. Bu amaçlar, farklı biçimdeki verilerin işlenmesi, yapılandırılması ve yönetilmesi olabildiği gibi bilgisayar sistemlerinin akıllıca davranmasını sağlamak; iletişim ve çoğul ortam verilerini oluşturmak ve bunların kullanılmasını sağlamak da olabilir. Herhangi bir özel amaç ile ilgili bilgileri ortaya çıkartmak ve toplamak, farklı problemler için olası çözümler arasından en etkin çözümü bulmak da bu amaçlar arasındadır.
Bilişim teknolojileri alanının çok hızlı bir şekilde ilerlediği dikkate alınırsa bilgisayar mühendislerinin kariyerleri boyunca sürekli öğrenmeye açık mühendisler olmaları da olmazsa olmaz bir şarttır. Bu yeteneklerini geliştirmek için bilgisayar mühendislerine, eğitimleri boyunca birden fazla programlama dili, araç, paradigma ve teknoloji öğretilir ve bunlar arasındaki ilişkileri görmeleri sağlanır. Böylece bilgisayar mühendisleri kendi kendilerine yeni beceriler ve yetenekler kazanabilme noktasında donanımlı, kariyer gelişimlerini planlayan ve yönetebilen bireyler olurlar.
Bilgisayar mühendisleri, edindikleri teorik ve pratik bilgileri harmanlar. Bir başka deyişle, bilgisayar mühendisliği öğrencilerine, eğitimleri boyunca sadece iyi kod yazmaları öğretilmez, gerekli düzeyde teorik bilgiler de aktarılır. Böylece, onlar gerçek dünya problemlerini; bu teorik bilgileri özümsemiş, teori ile pratik arasındaki temel bağlantıları anlamış olarak çözerler. Bu doğrultuda kurgulanan lisans müfredatı, barındırdığı farklı laboratuvar dersleri ve ders projeleri ile bu becerileri mühendis adaylarına henüz eğitim aşamasında aktarmaya çalışır.
Burada önem verilen bir diğer konu, mezunlara sistem düzeyinde, en alt seviyeden en üst seviyeye bütüncül bir bakış açısı kazandırmaktır. Bilgisayar sistemlerinin tasarımı ve analizi, alt düzey donanım bileşenlerinden yazılım uygulamalarına kadar birden çok soyutlama düzeyinde düşünülmesini, bunlar arasındaki bağların iyi anlaşılmasını gerektirir. Bilgisayar mühendisleri, tüm bu farklı ayrıntı seviyelerine hâkimdirler.
Bilgisayar bilimi ve mühendisliğinin gelişmesinde kadınlar geçmişten günümüze önemli roller üstlendiler. Her yıl Ekim ayının ikinci Salı günü tüm dünyada kadınların bilim, teknoloji, mühendislik ve matematik alanlarındaki başarılarının kutlandığı gün adını dünyanın ilk bilgisayar programcısı Lady Ada Lovelace’dan alır. Bilgisayar programlama dilleri için ilk derleyiciyi ve ilk yüksek seviye programlama dillerinden biri olan Cobol’u Grace Hopper geliştirdi. NASA tarafından ay yüzeyine yapılan insanlı ilk uzay uçuşunun yapıldığı Apollo 11’in kritik uçuş sistemi yazılımını geliştirilen ekibin başında Margaret Hamilton vardı. 2019’un en heyecan verici haberlerinden biri olan Olay Ufku Teleskobu ile M87 galaksisinin merkezindeki karadeliğin görüntülenmesi Katie Bouman adlı genç bir bilgisayar bilimcinin de önemli parçası olduğu ekibin geliştirdiği algoritma sayesinde mümkün oldu. Bu örnekler daha da uzatılabilir. Bununla birlikte, günümüzde; bilgisayar mühendisleri arasında kadınların oranının toplumsal cinsiyet temsili açısından adil seviyeye ulaşması için elbette atılacak adımlar var. Bu durumun iyileştirilmesine yönelik farkındalık ve ilgiyi arttırmaya yönelik burs ve mentörlük programlarının sayısında son yıllarda ciddi bir artış görülüyor.
ODTU Bilgisayar Mühendisliği Bölümü öğretim üyesi Erol Şahin’in hazırladığı “Bilgisayar Mühendisleri ne yapar?” (İzinle kullanılmıştır.)
Bilgisayar mühendisleri ne okur, hangi konularda uzmanlaşırlar?
Teorik bilgisayar bilimi, hesaplamanın matematiksel yönleriyle ilgilidir. Bilgi işlemeyi olanaklı kılan matematiksel teoriler ve ilkeler başta olmak üzere hesaplama modellerinin sınırlarını, algoritma tasarımı ve analizini konu edinir. Burada yaşanan gelişmeler, diğer uzmanlık alanlarında önemli atılımların yapılmasına ve mühendislik açısından problemlere daha etkin ve daha iyi çözümlerin keşfedilmesine yardımcı olur. Programlama dillerinin tasarımı, uygulaması ve analizi yine bu uzmanlık alanının uğraşları arasındadır.
Bilgisayar mimarisi, bilgisayar donanımlarının altında yatan kavramlarla ilgilenir ve gelişmiş bilgisayar sistemlerinin tasarımında kullanılan yaklaşımları ve teknikleri ele alır. Bu amaçla işlemci, bellek gibi alt seviye işlevsel bileşenlerin özellikleri ve performanslarını, birbirleri ile olan etkileşimlerini ve mimarilerin yüksek seviye yazılım katmanlarına sağladıkları etkileşimleri konu edinir.
Bilgisayar sistemleri, basit anlamda belirli bir biçimdeki veriyi girdi olarak alıp işleyen ve ürettikleri çıktıyı saklayabilen tümleşik aygıtlardır. Günümüzde bu tarz sistemler, akıllı sensörlerden akıllı telefonlara, masaüstü ve dizüstü bilgisayarlardan otomatik pilotlara ve devasa bulut bilişim sistemlerine kadar geniş yelpazede ve farklı ölçeklerde karşımıza çıkarlar. Bu sistemlerden yüksek başarım alınması adına ölçeklenebilir yani işlem yükünden bağımsız etkin çalışan araçların geliştirilmesi hedeflenir.
Bilgisayar ağları ve ağ güvenliği, İnternet ve bilgisayar ağlarının gelişmesi ve yaygınlaşmasıyla giderek önem kazanan bir uzmanlık alanıdır. Herkesin herkesle, bir cihazın bir diğeriyle (Nesnelerin İnterneti) bağlı olabildiği bir dünyada yaşadığımız ve böylece hem sabit hem de mobil ağlar üzerinde gerçekleşen bilgi işleme faaliyetlerindeki artış göz önüne alındığında bu ağların sorunsuz ve kararlı bir yapıda çalıştırılması hedeflenir. Bununla birlikte, bireyler veya kurumlara yönelik artan siber saldırı tehditleri ağ üzerindeki iletişimin güvenliliğini önemli bir çalışma konusu haline getirmiştir. Günümüzde ön plana çıkan bir diğer konu ise bu işlemlerin enerji verimli bir şekilde gerçekleştirilmesidir.
Bkz.: (Silikon) Vadim Ne Kadar Yeşil?, Mahremiyet, sosyal medya, demokrasi ve Cambridge Analytica
Paralel ve dağıtık hesaplama, bir ağ üzerindeki ve belli bir amaç doğrultusunda birbirleriyle etkileşim içerisinde olan bilgisayarların veya tek bir bilgisayar içindeki çoklu işlemci çekirdeklerinin iletişimini inceler. Bir problemin etkin çözümünde işlemleri farklı bilgi işleme birimlerine yayan paralel ve dağıtık hesaplama yöntemleri kullanılır. Eldeki problem birden fazla alt parçaya bölünür, her parçanın farklı bir bilgisayar tarafından çözülmesi sağlanır ve sonra bu alt parçaların çözümleri uygun biçimde birleştirilerek nihai çözüm bulunur.
Bkz.: Bilişim Devrimi Işığında Kripto Para
Bilgisayar grafiği, bilgisayar oyunları, bilgisayar destekli tasarım, çoğulortam uygulamaları gibi pek çok farklı yazılım uygulamasında kullanılan iki veya üç boyutlu görüntülerin üretilmesi üzerinde çalışır. Burada fiziksel açıdan gerçekçi görüntülerin oluşturulması, bunu gerçekleştirebilen modellerin oluşturulması kadar çalışılan bilgisayarların donanımsal kısıtlarını dikkate alan en iyi ve en etkin çözümlerin geliştirilmesi de hedeflenir.
Bkz.: Yüksek dinamik aralıklı görüntüleme, Yapay zekâ ile gerçekliğin üretimi
Yapay zekâ, insanların veya hayvanların sahip olduğu bazı kendi kendine öğrenme, kendi kararlarını verebilme gibi yetileri bilgisayarlara kazandırmak ile ilgilenir. Bilgi temsili ve mantıksal akıl yürütme, robotik, yapay öğrenme, doğal dil işleme, bilgisayarla görme gibi alt alanları içerir. Derin öğrenme sayesinde geçtiğimiz son on yılda yaşanan ilerlemeler yapay zekâ uygulamalarının sıradan kullanıcılara kadar inmesini sağlamıştır. Yapay Zekânın vücuda bürünmüş uygulamasını ise yeni nesil robotik sistemlerinde görmek mümkündür. Bilgisayarla görme, ögrenme, ve planlama konularında yapılan çalışmalar otonom araçlardan insansı robotlara, insansız araçlardan fabrikalardaki işbirlikci robot sistemlerine kadar değisen robotik sistemlerin en yenilikçi yönlerini oluşturur.
Bkz.: Bilgisayarlar Düşünebilir mi?, Yapay zekâ ve yapay öğrenme, Yapay öğrenme ve adalet, Otonom Arabalar ve Ahlak
Veri bilimi, eldeki büyük miktarlardaki verileri işleyerek özünü kavrama, modeller kurma, neden sonuç ilişkilerini anlama ve tahminler yapabilmeyi sağlar. Bu amaçlarla çeşitli farklı veri madenciliği ve görselleştirme yöntemlerini kullanır. Günümüzde sayısal veri miktarının ulaştığı nokta düşünüldüğünde, bu büyük, karmaşık ve çoğunlukla yapılandırılmamış bilgileri işleyen ve onlar üzerinde kıymetlendirmeler yapabilen uygulamalar veri biliminden fazlasıyla yararlanır.
Bkz.: Cep telefonları ve büyük veri COVID-19’a karşı
Biyoenformatik, biyolojik ve tıbbi bilişim uygulama alanlarındaki hesaplama zorluklarına ve çözümlere odaklanan bilgisayar mühendislerinin de ciddi katkı sağladığı disiplinler arası bir uzmanlıktır. Alana özel algoritma ve modellerin geliştirilmesi, ilgili büyük ölçekli veri tabanlarının tasarımı ve yönetimi gibi konular üzerinde çalışılır. Örneğin, gen dizilerinin hastalıklarla ilişkilendirilmesi.
Bkz.: Yapay zekâ ve protein katlanması
İnsan makine etkileşimi, insanlar ve bilgisayar sistemleri arasındaki etkileşimlerin tasarlanması, bu etkileşimlerin etkin bir şekilde sağlanması için ilgili arayüzlerin oluşturulması ve bunların kullanışlılığının değerlendirilmesini kapsar. Çok disiplinli yapısı itibariyle web sitesi tasarımından, cep telefonlarındaki sesli uyarılar ve dokunmatik ara yüzlere kadar ve hatta sanal ve arttırılmış gerçekliğe gibi alternatif etkileşim yollarının geliştirilmesini hedefler. Örneğin, sağırlar için kullanılan işaret dilinin algılanıp konuşma işaretine çevrilmesi.
Bkz: Sanal Gerçeklik ve Artırılmış Gerçeklik Nedir?
Yazılım mühendisliği, müşterilerin ve kullanıcıların gereksinimlerini karşılayan güvenilir yazılım sistemlerini etkin ve verimli bir şekilde oluşturulmasını konu edinir. Bu kapsamda geliştirilen teoriler ve pratikler, küçük, orta ve büyük ölçekli sistemlere uygulanabildiği gibi bir problemin çözümü için gereklilikleri derlemekten, tasarım ve geliştirmeye, doğrulamadan bakıma kadar bir yazılım sisteminin yaşam döngüsünün tüm aşamalarını kapsar..
Bkz: Hayatımızı Emanet Ettiğimiz Bilişim Sistemleri Nasıl Doğrulanır?
Bilgi yönetimi ve analitiği, modern veri tabanı ve bilgi yönetim sistemlerinin tasarımı, bu sistemler için raporlama ve analiz uygulamaları geliştirilmesi üzerine çalışır. Bir kuruluşun bilgi ve veri kaynaklarını oluşturmayı, bu kaynakları etkili biçimde kontrol etmeyi, yönetmeyi ve kullanmayı amaçlar. Veri miktarında yaşanan üssel artış düşünüldüğünde dağıtık sistemler, bilgisayar ağları ve güvenlik, veri madenciliği gibi alanlar ile yakından ilişkilidir.
Bilgisayar mühendisleri hangi işlerde çalışır?
Tasarlama becerisine sahip olmak tüm mühendisler için aranan ortak bir özelliktir. Tasarımdan ne kastedildiği tabi ki her mühendislik dalı için farklılaşır. Bir bilgisayar mühendisi için tasarım, modern bilgi işlem sistemlerinin ve bilgisayar kontrollü cihazların yazılım ve kısmen donanım bileşenlerinin oluşturulması ve bütünleştirilmesi anlamına gelir. Günümüzde neredeyse herkesin bilgisayarları günlük yaşamında kullandığı, bilgisayar sistemlerinin bilim, mühendislik, işletme, eğitim gibi birçok alanı önemli ölçüde etkilediği düşünülecek olursa bilgisayar mühendislerinin önlerinde çok farklı kariyer fırsatı bulunur.
Bilgisayar mühendisleri çoğunlukla endüstride; bilişim, finans, otomobil, havacılık, telekomünikasyon ve savunma gibi sektörlerde çalışırlar. Özellikle son yıllarda girişimcilik faaliyetleri kapsamında finansal destekler alarak fikirlerini gerçeğe dönüştürmek için kendi şirketlerini kuran mezunların sayısında da ciddi bir artış mevcuttur.
Bilgisayar mühendislerin büyük bir çoğunluğu yazılım alanında istihdam edilirler. Çalışma alanları aşağıda sadece bir kısmı sıralanan pek çok farklı özelleşmiş iş tanımını kapsayabilir:
- Yazılım geliştiricisi
- Donanım mühendisi
- Sistem yöneticisi
- Yazılım mühendisi
- Web geliştiricisi
- Veri tabanı yöneticisi
- Bilgi teknolojileri mimarı
- Ağ yöneticisi
- Sistem analisti
- Güvenlik analisti
- Yönetsel sistemler analisti
- Yapay zekâ mühendisi
- Mobil uygulama geliştiricisi
- Bulut bilişim mühendisi
- Bilgisayar oyunu geliştiricisi
- Veri bilimci ve mühendisi
Aykut Erdem (Koç Üniversitesi, Bilgisayar Mühendisliği Bölümü)
Erkut Erdem (Hacettepe Üniversitesi, Bilgisayar Mühendisliği Bölümü)
Farklı mühendislik alanlarını anlatan Sarkaç yazılarına ulaşmak için tıklayınız.
Bu eser Creative Commons Atıf-GayriTicari 4.0 Uluslararası Lisansı ile lisanslanmıştır. Görseller Wikimedia Commons’dan temin edilmiştir. İçerik kullanım koşulları için tıklayınız.
Kaynaklar
- Top careers in computer science, https://www.computerscience.org/careers/
- What can you do with a computer science degree, https://www.usnews.com/education/best-graduate-schools/articles/2019-05-02/what-can-you-do-with-a-computer-science-degree
- Women in computer science, https://www.computerscience.org/resources/women-in-computer-science/