/bmb212-algorithms-2024

Bu repo'da Namık Kemal Üniversitesi BMB212 Veri Yapıları Dersi Uygulama ve Ödev bilgileri paylaşılmaktadır.

Namık Kemal Üniversitesi - BMB212 Veri Yapıları - 2023-2024 Bahar Dönemi

Bu repo'da Namık Kemal Üniversitesi BMB212 Veri Yapıları Dersi Uygulama ve Ödev bilgileri paylaşılmaktadır.

Arşiv:

Ödev:

  • Github hesabınız üzerinden leetcode.com sitesine üye olunuz.

  • Dizilerle ilgili olan https://leetcode.com/explore/featured/card/fun-with-arrays/ bağlantısındaki dersi baştan sona tamalayınız. Bir diğer deyişle bu dersle ilgili tüm açıklamaları okuyup verilen tüm problemleri kodlayınız. Aşağıdaki ekran görünütüsünde diziler ile ilgili kodlamanız gereken problemlerin üzeri çizilmektedir. arrays

  • Daha sonra https://leetcode.com/studyplan/top-interview-150/ bağlantısından seçeceğiniz 10 problemi kodlayınız.

  • Aşağıdaki ekran görüntüsünde bu sayfada hangi alt başlıklar altından problem seçebileceğinizi görebilirsiniz. Üzeri sarı çizili başlıklar altında 10 problem seçiniz. https://github.com/gusanmaz/bmb212-algorithms-2024/blob/main/images/leetcode-top150.png

  • Aynı başlık altından en fazla iki problem seçimi yapabilirsiniz.

  • Üzerinde çalıştığınız problem için kodunuzu leetcode.com alt yapısını kullanarak derleyebilir ve çeşitli inputlar için kodunuzun doğru davranış gösterip göstermediğini test edebilirsiniz.

  • Kodlarınızı C, C#, C++, Java, veya Go dilinde yazabilirsiniz.

  • Her bir problem için mümkünse tüm kodunuzu tek bir dosyada toplamaya çalışınız.

  • Kodların yazımında I/O işlemleri dışında herhangi bir kütüphane kullanmayınız.

  • Her öğrencinin bu dersin ödevi için bireysel çalışması beklenmektedir.

  • Sınıf arkadaşlarınızla sitedeki problemleri birlikte tartışabilirsiniz ama sınıf arkadaşlarınızla kesinlikle kod paylaşımı yapmayınız.

  • Algoritma geliştirme yeteneği kazabilmeniz için bu ödevde lütfen leetcode problemlerini ChatGPT ve benzeri yapay zeka sistemlerine sormayınız.

  • İngilizceniz iyi değilse problem metinlerini anlamak için Google Translate, ChatGPT gibi araçlar kullanabilirsiniz.

Ödev Gönderimi

* https://classroom.github.com/classrooms/81414932-nku-gu-algs-2024 bağlatısına tıklayarak ödev davetini kabul ediniz.

  • Bu linke tıklayıp, davet linkini kabul ettikten sonra Github bu ödev için size boş bir repo oluşturacaktır.
  • Bu repoda her bir çözdüğünüz problem için (tüm dizi problemleri ve 10 adet Top Interview 150 problemi) bir alt klasör oluşturunuz.
  • Problem ismi ile alt klasör isimleri benzerlik göstermelidir. Örneğin Merge Sorted Array problemi için oluşturacağınız klasörün adı Merge-Sorted-Array olmalıdır. Diğer bir deyişle problem ismindeki boşluk karekterlerini - karekteri ile değiştirerek klasörlerinizi isimlendirmeniz gerekiyor.
  • İlgili problem için yazdığınız kodları o problem için oluşturmuş olduğunuz klasörün altına yükleyiniz.
  • Mümkünse ilgili klasör altında tek bir kaynak kodu dosyası olsun. İlgili problem için yazacağınız tüm kodları tek bir dosyada toplamaya çalışın.
  • Bu dosyayı çalıştığınız programlama diline göre main.c main.java main.cpp main.go main.cs olarak isimlendiriniz.
  • Reponuzdaki kök dizinde (en üst dizin) {öğrenci_no}.txt isimli dosya oluşturunuz. Öğrenci numaranız 1234 ise bu dosyanın adı 1234.txt olmalıdır. Bu dosya içine isminizi ve Youtube videonuzun linkini yaziniz.
  • Kodladığınız 10 problemden istediğiniz 5'ini seçiniz. Seçtiğiniz problemleri ve yazdığınız problemleri detaylı açıklayan bir Youtube videosu çekiniz. Yazdığınız kodların leetcode testlerini geçip geçemediğini göstermek için leetcode tarafından size sunulan online IDE'yi kullanınız.
  • Youtube videonuzdaki her bir problemi için ayrı bir video başlığı tanımlayınız. Bu işi nasıl yapacağınızı https://support.google.com/youtube/answer/9884579?hl=tr bağlantısından öğrenebilirsiniz.
  • Youtube videonuzun linke sahip olmayan biri tarafından keşfedilememesini istiyorsanız videonuzu liste dışı video olarak tanımlayabilirsiniz. Bu konuyla ilgili https://support.google.com/youtube/answer/157177?hl=tr bağlantısından gerekli bilgiyi edinebilirsiniz.
  • Hazırladığınız video, kodları kendi başınıza yazdığınız konusunda şüphe oluşursa; yazdığınız kodları sözlü olarak açıklamanız istenebilir.
  • Gönderdiğiniz kodların kendnizin yazdığı kodlar olmadığı konusunda bir şüphe oluşursa; yine bu kodları sözlü olarak açıklamanız istenebilir.
  • Rastgele seçilen bazı öğrencilerin gönderdikleri kodları sözlü olarak açıklaması istenebilir.
  • Sözlü açıklamada yetersiz bulunmanız durumunda ödev puanınız düşürülebilir.
  • https://support.google.com/youtube/answer/157177?hl=tr&co=GENIE.Platform%3DDesktop#zippy=%2Cliste-d%C4%B1%C5%9F%C4%B1-videolar bağlantısındaki üzeri sarı çizili başlıklar altında zorluk derecesi EASY olan problemler sınavlarınızda soru olarak karşınıza çıkabilir. Vize sınavında sadece derste işlenen konularla, ilgili altbaşlık konusunun çakıştığı problemler soru olarak karşınıza çıkabilir.
  • Ödevlerle ve uygulama dersleri ile ilgili her türlü soru ve önerileriniz için bu repo altındaki Discussions sayfasını (https://github.com/gusanmaz/bmb212-algorithms-2024/discussions) kullanınız.
  • Ödev gönderim kurallarını dikkatli okuyup ona göre gönderim yapınız. Ödev gönderim kurallarına uygun gönderim yapmamanız düşük puan almanıza sebep olabilir.
  • Gönderdiğiniz kodlar otomatik olarak değerlendirilebilir. Bu nedenle gönderdiğiniz kodların derleme hatası üretmediğinden emin olunuz.
  • Gönderilen tüm kodlar üzerinde benzerlik analizi yapılarak birbirinizden ya da başka bir kaynaktan hazır aldığınız kodlar tespit edilebilir. Bu nedenle başka sınıf arkadaşlarınızdan veya başka kaynaktan kod alıp kod gönderimi yapmayınız.
  • Son ödev gönderim tarihi: 26 Mayıs 2024 23:59.
  • Bu tarihten sonra gönderilen ödevler değerlendirmeye alınmayacaktır.