Bilkent CS Hayatta Kalma Rehberi 2/4

Emre Tolga Ayan
10 min readOct 12, 2020

Tekrardan merhabalar!

Bu yazıda hayatta kalma rehberi serimizin ikinci yazısında 2. sınıftaki dersleri inceleyeceğiz. Keyifli okumalar :)

Bu yazı Bilkent CS Hayatta kalma rehberi serisinin ikinci yazısıdır.

2. Sene 1. Dönem

Bu dönemde mühendislik/yazılımcılık hayatınız boyunca ihtiyacınız olacak temel bilgileri CS 201 dersi ile oluşturmaya başlayacak ve bir sonraki dönemde CS 202 dersi ile devam edeceksiniz. Aynı zamanda, bilgisayarlarların nasıl çalıştığını öğrenmeye başlayacak, bilgisayar donanımının derinlerine dalacaksınız. HIST dersinde tarihi araştırma yapmayı öğrenecek, HUM dersinde insanlığın en eski yazıtlarını okuyacaksınız.

Asıl mühendislik eğitimini üçüncü ve dördüncü sınıfta alacak olsanız da bu iki dönem boyunca önemli konseptlerle tanışacaksınız.

Hadi başlayalım.

CS 201: Fundamental Structures of Computer Science I

Bilgisayar mühendisliği eğitimindeki en önemli derslerden biri olabilir. Bir bilgisayar mühensinin kesinlikle bilmesi gereken veri yapılarını öğrenmeye başlayacaksınız. Genellikle iş görüşmelerinde de sık sık veri yapıları ile alakalı sorular gelir, çünkü gerçekten önemlidir.

Bilgisayar mühendisi, belirli problemlere bilgisayar yardımıyla çözümler üreten kişidir. Bu süreçte veri ile çalışır, ve bu verinin nasıl kullanılacağı, bu veriye ne kadar sürede erişileceği, verileri saklamak için en fazla ne kadar hafıza harcanabileceği gibi sorular çok büyük bir önem arz eder. Farklı veri yapıları farklı sorunları çözmekte idealdir, siz de bu veri yapılarını öğreneceksiniz.

Derste C++ kullanılır çünkü pointerlar ile çalışma imkanı vermesi ve obje tabanlı bir dil olması gibi sebeplerle veri yapılarını kodlamak, öğrenmek ve anlamak için çok ideal bir dildir, fakat öğrenmesi ve yazması çok da kolay değildir.

CS 101 dersinde olduğu gibi bu dersin de amacı C++ öğretmek değildir, yani ders bittiğinde gerçek anlamda bir C++ bilginiz muhtemelen olmayacak. C++ sadece veri yapılarını öğretmek için bir araçtır. Bu yüzden derse yaklaşımınız da buna göre olmalı.

Slaytlardan çalışmak işe yarar, fakat eğer slayt yeterli gelmezse kitabın o chapter’ını okuyabilirsiniz. Kitabı gidip almak zorunda değilsiniz, ben çok kullanırım diyorsanız alın fakat genelde çok da fazla kullanmıyorsunuz. Kullandığınız kadarını da internetten bulacağınız bi pdf’den bakabilirsiniz, paranız cebinizde kalır.

Biraz araştırarak anlamadığınız konularla ilgili youtube’da çok güzel kaynaklar bulabilirsiniz, veri yapıları çok önemli bir konu olduğu için internette bu konuda çok fazla kaynak mevcut.

Ödevler bazı kişilere zor gelebilir, ama ne yapın edin ödevleri tam olarak çözmeye çalışın. Düzgün ve temiz kod yazmaya çalışın yoksa bir yerden sonra yazdığınız her şey anlaşılmaz bir hale bürünüyor.

Benim için bir şeyi öğrenmenin en güzel yolu yaparak öğrenmektir. Öğrendiğiniz veri yapılarını kodlamaya çalışabilirsiniz, faydalı olacaktır (hoş zaten ödevler de biraz bunun için var).

CS 223: Digital Design

Eğer embedded developer olmak istemiyorsanız veya biraz daha EE mühendisliği alanına kaymak gibi bir düşünceniz yoksa bana göre mesleki anlamda çok da önemli bir ders değildir. Fakat bilgisayarı tanımak adına çok güzel bir derstir. Bilgisayarın en temel yapı taşları olan transistörlerden başlar, logic gates görür ve bir işlemcinin nasıl implement edildiğini öğrenirsiniz. Basys3 kart ve SystemVerilog ile ilk kez donanım programlama ile tanışırsınız.

Genel kültür anlamında bir şeyler öğrensem de anlatılanları derinlemesine anlamadığım, veya özümseyemediğim için içeriğiyle ilgili çok da fazla bilgi veremeyeceğim :D

Dersin bir projesi vardır ve hayvan gibi zordur. Olabildiğince erken başlayın. Lablarda ise ilk lablar kolay, son lablar zordur.

Hocalar SystemVerilog öğrenmek için slaytların ve kitabın yeterli olduğunu iddia ederler. Fakat malesef SystemVerilog’un çok büyük bir problemi vardır. O da internette hakkında işe yarar kaynak bulmanın çölde kutup ayısı bulmak kadar zor olmasıdır. Java, python veya C++ için internette anında istediğiniz bilgiye ulaşabilirken SystemVerilog’da en basit şeyleri bile bulmak için 1–2 saat harcamak insanı çıldırtır. Ayrıca bildiğiniz hiçbir dile benzemez (zaten kullananı da pek yok galiba).

Diyecek çok da bir şey yok, projede lablarda akıl sağlığınıza sahip çıkın.

Ben bu dersi alırken sınavlar open book oluyordu. Fakat kitabın orijinal olması ve kitapta hiç yazı olmaması şartı vardı. Kitabın fiyatı da inanılmaz uçuktu (siz bunu okurken kim bilir kaç para oldu). Benim zamanımda kitap 330₺’idi, ben ikinci elden 85 liraya almıştım.

Ayrıca bir de basys kart alma zorunluluğu vardır. Bu kartın da fiyatı benim dönemimde 700₺’idi fakat eminim siz bunu okurken fiyatı çoktan uçmuştur. Hem kitap hem de basys3 için ikinci el bakabilirsiniz. Facebook’ta bilkent duyuru diye bir grup var, orada üst sınıflar her dönem kitaplarını, basys3'leri vs. satışa çıkarır. Hiç değilse kitabı oradan alabilirsiniz.

Not: Olgunlarda kitabın çok farkedilmeyecek düzeyde korsanını bulursanız onunla da girerseniz sıkıntı olacağını zannetmiyorum.

GE 250: Collegiate Activities Program I

Okulda düzenlenen etkinliklerin neredeyse hepsinin bir GE 250/251 puanı vardır. Etkinliklere katılarak puan toplarsınız. Dersin olayı tamamen bu. GE 250 kredisiz bir derstir, 50 puan topladığınızda(yanlış hatırlıyor olabilirim bir bakın derim) dersi geçmiş oluyorsunuz. GE 251 aldığınızda ise bu derste topladığınız puanlar o derse aktarılıyor. GE 251'de toplamanız gereken puan miktarı çok daha fazla (yanlış hatırlamıyorsam 200). O yüzden ne kadar toparsanız o kadar faydalı.

Söylenecek çok bir şey yok, öğle arası konserlere gidin, seminerlere katılın bir bakmışsınız gereken puanı toplamışsınız.

Ben bu dersi 1. sınıfın 1. döneminde üstten çekmiştim. 1. sınıf 2. dönemde de GE 251 dersini vermiştim. Zaten ders bile sayılmaz. Siz de bi düşünün derim.

HIST 200: History of Turkey

Tamamen araştırma üzerine kurulu bir ders. Dersin ilk haftalarında bir grup oluşturuyor ve belirlediğiniz bir konuda tarih araştırması gerçekleştiriyorsunuz. Fakat bu konu çok spesifik olmalı. Gidip de TBMM tarihi diye konu yapamazsınız. Örneğin Birinci Dünya Savaşı sonrası Ankara’daki parfüm üretimi ve tüketimi ile çağdaşlaşma hareketleri arasında bir ilişki olup olmadığını araştırabilirsiniz (şu an uydurdum).

Tamamen beleş A alma dersiydi. Fakat bizim dönemimizden itibaren sevgili rektörümüzün “Bütün öğrenciler A alıyor, notları düşürün olmaz böyle” şeklindeki bir temsili talimatından sonra hocalar da not verirken biraz daha kasmaya başladılar (Bize hocalar böyle dedi). Yine de A- almıştık. Yazdığınız rapor bi nebze özenilmişse güzel bi not alırsınız. Yine de diğer derslere kıyasla A almak işten bile değil. Azıcık daha zorlayın A alın.

HUM 111: Cultures Civilizations and Ideas I

“Niye böyle bi ders alıyoz mühendisiz abi yeağ” tarzı pek çok yorumla karşılaşacağınız derstir kendisi. Ben de bir süre böyle düşünmedim değil. Fakat şu anda görüyorum ki bu derste insanlığın en eski yazıtları ile ilgili güzel bir genel kültür sahibi olmuşum. “Genel kültür sahibi oldun da ne oldu” derseniz bir şey olmadı. Mühendislik eğitimime de bir katkısı yok. Fakat mezun olurken sadece bir mühendis değil, gerek ingilizce seviyenizle gerek bu gibi derslerden edindiğiniz genel kültür ve bilinç ile belirli bir düzeyde entelektüel bir insan da oluyorsunuz. Bana göre bu bir mühendis için olmasa da bir insan için önemli bir kazanım.

Elbette herkes benim gibi düşünmeyebilir, o zaman bu dersi pek sevmeyebilirsiniz.

Derste bazı kitaplar okuyor ve hocayla birlikte bu kitapları yorumluyor, inceliyorsunuz. Kitaplardaki göndermeleri analiz ediyor ve bu göndermelerin gerçek hayattaki karşılıklarını tespit etmeye çalışıyorsunuz.

Örneğin Gılgamış Destanı’nda Gılgamış ile Enkidu arasındaki zıtlık çok göze çarpıcı. Bir tarafta insanlık, modernism, ego, ölümsüzlük arzusu varken diğer tarafta vahşilik, hayvani bir içgüdü ve yabani bir güç var. Aslında Gılgamış bizim insan kimliğimizi temsil ederken Enkidu da bizim hayvan kimliğimizi temsil ediyor. Bu gibi şeyler..

Okuyacağınız kitapları dersin sayfasından görebilirsiniz.

Bu dersten yüksek almak istiyorsanız kitapları kesinlikle vaktinde okumalısınız. Yoksa dersteki tartışmaları da anlamazsınız, midterm zamanına da çok fazla okuma ödevi birikir. Hatta yeterince erken okursanız hocanızı office hour’da ziyaret edin, sorularınızı sorun.

Bol bol derse katılın, tartışın. Bu derste kesin doğru diye bir şey yok, fikirler ve biraz da felsefe var.

Ben bu dersi Mustafa Nakeeb hocamızdan almıştım ve şu ana kadar Bilkent’te aldığım açık ara en zevkli dersti. Bütün derslere hevesle gittim, tartışmaları keyifle dinledim. Alabiliyorsanız ondan alın derim.

Kaynak önerisi:

  • https://www.sparknotes.com/ Bu sitede her kitap için olmasa da okuduğunuz bazı kitaplar için özetler, egzersizler ve karakter analizleri var. Kesinlikle çok güzel bir kaynak.
  • Kitapların türkçeleri. HUM 111'de ihtiyacım olmasa da HUM 112'de kitapları anlamakta güçlük çekiyordum. Siz de böyle bir duruma düşerseniz internetten kitabın türkçesini alın, zaten hem ucuzlar hem de kısa oluyorlar. HUM 112 dersinde Sigmund Freud’un Haz prensibinin ötesinde kitabının türkçesini 2 günde bitirip ingilizcesini öyle okumuştum, her şey çok daha anlaşılır bir hale gelmişti (yine de türkçesi bile karışıktı lanet kitabın).

PHYS 101: General Physics I

Lise’de 11. 12. sınıfta aldığınız Newton fiziğinin üniversite versiyonu. MATH 101 dersi için ne tavsiye verdiysem bu ders için de geçerli. Ders zordur, düzenli çalışma, not alma, kafa patlatma ister. Haftalık ödevleri vardır. Bu ödevleri elinizden geldiğince yapmaya çalışın. Sınav haftasına ne kadar az konu kalırsa sizin için o kadar iyi olur.

Ben genellikle kitaptan çalışmıştım, ve chapter’ları düzgünce okuyup bölüm sonundan birkaç soru çözüp haftalık ödevlerle de ilgilendiğimde yüksek alabilmiştim. Konuları son 2–3 güne bıraktığımda ise sağlam batırmıştım. Bu arada Masteringphysics’deki (derste kullanılan ödev platformu) egzersizler de güzel oluyor.

Yani işin sırrı dersi düzenli takip etmekte.

Derslerin labları bana göre çok sıkıcıdır. Dönem başından grup oluşturup hep aynı grupla farklı deneyler yapıyor, rapor defteri dolduruyorsunuz. Bu defteri laba gitmeden de doldurmaya başlayabilirsiniz, çünkü labda süreniz kısıtlı oluyor. Rapor defterinde grafik çizim sayfalarının grafiklerini önceden hazırlayın, labda sadece doldurması kalsın. Aynı zamanda deneyle alakalı soruları da doldurmayı deneyebilirsiniz, bazılarının cevabı çok bariz oluyor. Ayrıca Soruyu google’a yapıştırın, belki cevabı bulabilirsiniz. Bu şekilde lab’da harcayacağınız zamandan oldukça tasarruf edebilirsiniz.

Her labın başında bir de quiz oluyor. Bu quiz genellikle konuyu anlayıp anlamadığınızı ölçmek için yapılan kısmen basit bir quiz. Gitmeden o haftaki ya da önceki haftaki konuyu gözden geçirin.

Not1: Midterm’in kolay olacağı gibi bir beklentiniz olmasın.

Not2: Hoca seçerken iyice araştırdığınızdan emin olun.

Not3: Recitation’lar çok sıkıcı olabilir, fakat gitmeseniz bile recitation’da çözülen soruları kesinlikle pratik edin, sınavda o sorulara benzer soru gelme ihtimali çok yüksek. Hatta bir keresinde sınav recitation’un neredeyse aynısıydı.

2. Sene 2. Dönem

CS 202: Fundamental Structures of Computer Science II

CS 201 dersinin devam dersidir. O derste olduğu gibi bazı veri yapılarını görecek, sorting algoritmaları ile çalışacak ve farklı tree yapıları ile uğraşacaksınız.

CS 201 dersinde ne yazdıysam bu ders için de geçerlidir.

CS 224: Computer Organization

CS 223 dersine benzer. CS 223 dersinde daha çok donanım kısmıyla ilgilenirken bu derste biraz daha o donanımın üstündeki yazılımı öğreniyorsunuz. Yani bilgisayar hiyerarşisinde bir seviye yukarı çıkıyorsunuz.

Bu derste Assembly Mips kullanıyorsunuz, kendisi olabilecek en low level programlama dillerinden bir tanesi. Bu dili kullanarak kendi microprocessor’ınızı yazacak, yazılım dillerinin en temelde nasıl çalıştığını öğreneceksiniz.

Birinci sınıfta high-level bir dil olan Java ile çalışıp, ardından C++ ile biraz daha low-level bir dile geçtikten sonra Assembly ile en dibi boylayacaksınız. Assembly’nin bir alt seviyesi zaten 0–1'lerle binary olarak yazmak (ki derste pratik amaçlı bazen kodları binary form’a dönüştüreceksiniz). Aynı zamanda bilgisayarların bu 0–1'lerle ne çalıştırması gerektiğini nereden bildiğini görecek ve bu komutları nasıl çalıştırdığını en ham haliyle öğreneceksiniz.

Seveni için çok keyifli olabilecek bir derstir, fakat labları zordur. Öyle ki lab’da tutor’a ya da asistana soru sorduğunuzda bazen onlar bile cevap veremezler. Özellikle sonlara doğru hayattan bezersiniz. Labları olabildiğince erken yapmaya çalışın, lab saatinde yapmayı düşünmeyin bile, yetiştiremezsiniz.

Çalışmak için kitabı okumak, slaytları tekrar etmek ve dersi düzgün dinlemek yeterlidir diye düşünüyorum.

GE 251: Collegiate Activities Program II

GE 250 dersinin devam dersidir. Bu derste de etkinliklere gidip puan toplamanız gerekmektedir (yanlış hatırlamıyorsam 200 puan). GE 250 dersinde topladığınız puanlar bu derse aktarılır.

Arasıra BAIS’ten size psikoloji deneyleri ile ilgili mail gelecek. Genellikle bu deneylerde çok fazla puan veriyorlar. Bir keresinde 2 saatlik bir deneye katılarak tek günde 80 puan toplamıştım.

Onun dışında yurtta kalıyorsanız veya akşam okulda kalmak size sıkıntı olmuyorsa kutu oyunları gibi etkinliklerden de güzel puanlar geliyor.

HUM 112: Cultures Civilizations and Ideas II

HUM 111 dersinin tamamen aynısıdır, okunan kitaplar farklıdır.

HUM 111 dersinde Mustafa Nakeeb hocamızla ne kadar keyif aldıysam bu derste Costantino Costantini hocamızla bir o kadar acı çektim. Kendisi çok iyi bir insan, fakat kendisinin italyancayla harmanlanmış, almancayla soslanmış ingilizcesinden hiçbir şey anlamıyordum. Ayrıca quizleri çok zordur, sıfır almak gayet normaldir, midtermleri ise kolaydır. Eğer olur da Costantini hocamızdan aldıysanız ara ara yanına gidip dersle ilgilendiğinizi, iyi yapmak istediğinizi, çalıştığınızı ama dersi tam anlayamadığınızı söyleyin. Ara ara yanına uğrayın. Size bakışı daha olumlu olacaktır, bu olumlu bakış notlarınızı da etkileyecektir ;)

Bunun dışında HUM 111 için ne yazdıysam bu ders için de aynen geçerlidir.

HUM 111 için yazdığım kaynaklar bu ders için de geçerlidir.

MATH 225: Linear Algebra and Differential Equations

Adından da anlaşılabileceği gibi linear algebra ve differential equations konularını görürsünüz. Bol bol matrikslerle çalışacaksınız. Farklı denklemlerin nasıl çözüleceğini öğreneceksiniz.

Dersi anlamak için biraz da dersi almak lazım sanırım. Fikir edinmek için Offerings’ten ders ile ilgili yorumları okuyabilirsiniz.

Bu derste kesinlikle kitaba çalışın. Her chapter’ı özenle okuyun, didikleyin. Birinci midterm’e kadar kitapla çok ilgilenmeyip derste ne anladıysam onun üzerinden gidip midterm’den 18 aldıktan sonra ikinci midterm’e kadar kitabı sular seller gibi çalışıp 75 civarı bir şey almıştım. Kitap önemli.

İleride machine learning, image processing gibi alanlarda çalışmak istiyorsanız matriksleri, matrikslerle işlemleri iyi öğrenmeye ekstra özen gösterin, ileride faydasını görürsünüz.

Bir de derste not tutmaya çalışabilirsiniz, bazen kitapta detaylı anlatılmayan bir konu hakkında derste daha detaylı işlenebiliyor (elbette sınavda da derste anlatıldığı gibi çıkıyor). O yüzden derslere gidin, not alın, kitaba çalışın, midterm haftası ders notlarınızı gözden geçirin.

PHYS 102: General Physics II

PHYS 101 dersinin tamamen aynısı. PHYS 101 dersinde Newton fiziği anlatılırken bu derste biraz daha elektrik ve manyetizma ile alakalı konular ele alınıyor. Aslında önceki derste bıraktığınız yerden devam ediyorsunuz.

PHYS 101 için yazdıklarım bu ders için de aynen geçerlidir.

2. Sınıf sonu Yaz Tatili

Bu yaz tatilinde bir staj yapmanız gerekiyor. Staj yeri bulmak için şirketleri araştırmaya ve mail atmaya şubat-martta başlamalısınız, yoksa geç kalabilirsiniz. Özellikle bazı firmalar sadece mart ayında başvuru kabul ediyorlar. Sonra bulurum diyip bu işi dönem sonuna bırakmayın.

Üzücü bir gerçek ki 2. sınıf olduğunuz için çoğu yer sizi istemeyecek :( ama siz yine de başvurun, bazen 3. 4. sınıf harici almayacağını söyleyen firmalar başarılı bulduğu ikinci sınıfları da alabiliyorlar. ODTU teknokent şirket listesini açın, hepsine tek tek bakıp hoşunuza gidenleri not alın. O firmalara staj yapmak istediğinizle ilgili güzel bir mail atın.

Staj bulmak için mfstaj platformunu da kullanabilirsiniz. Mfstaj’da şirket listesini açıp baştan sona ilginizi çeken bütün şirketlere mail atabilirsiniz (ben yaklaşık 50, 60 mail atmıştım sanırım). Muhtemelen henüz ilgilenmek istediğiniz alana tam olarak karar veremediniz, fakat verebildiyseniz ne güzel. Öyle bir durumda ilgilendiğiniz alanla ilgili yerlere ağırlık verin.

Aynı zamanda bilkent kariyer sayfasını da düzenli olarak inceleyin, bazen şirketler oraya staj ilanı koyuyorlar, bu ilanlara başvurabilirsiniz.

BAIS’ten ve bölüm sekreterinden de ara sıra staj mailleri geliyor, bu mailleri de es geçmeyin.

Staj bulmak zor değildir, fakat staj yeri bulmayı nisan mayısa (hatta hazirana) bırakırsanız staj bulma ihtimalinizi de o kadar düşürürsünüz. Ardından mutlu olmayacağınız bir yerde staj yapmak zorunda kalabilirsiniz.

Ben bu stajımı ODTU Teknokent’te ArgosAI adında bir startup’da yapmıştım. Çok sıcak kanlı insanlarla dolu harika bir yer. Staj sonrası bir süre part time olarak çalışma imkanı da vermişlerdi. İsterseniz başvurabilirsiniz.

Staj dersi ile ilgili diğer bilgileri bir sonraki yazımda anlattım, aşağıdaki linkten o yazıya da geçebilirsiniz.

Bir yazı daha bitti :)

Eklemek istediğiniz veya karşı olduğunuz şeyler varsa yorumlarda belirtebilirsiniz.

Sevgiler.

--

--