Thanks to visit codestin.com
Credit goes to github.com

Skip to content

ubselcuk/bai-bai

Repository files navigation

BAI-BAI

Merhabalar, bai-bai reposuna hoş geldiniz. Kendinizi geliştirmek istiyorsanız bu alanda çalışabilirsiniz.

Çalışmaya başlamadan önce sizden beklentimiz ortalama bir git bilgisine sahip olmanız. Kendinize bir repo açıp deneme yanılma yolu ile kendinizi geliştirin. Daha sonrasında bu repoyu forklayarak kendinize bir klasör oluşturup çalışmaya başlayabilirsiniz. Takıldığınız yerlerde başka insanların kodlarına da bakabilirsiniz. Başkalarının kodlarını kopyalamayacağınızı umuyoruz. Zaten herhangi bir notlandırma olmayacak kendinizi kandırmayın. Bir yerde takılıp yapamıyorsanız araştırma yapıp öğrenmeye çalışın. Kolaya kaçarsanız kaybedersiniz.

Github desktop veya internet sitesi üstünden çalışmanızı istemiyoruz. Linux veya wsl kullanıyorsanız terminal üzerinden, windows kullanıyorsanız git bash kullanarak çalışabilirsiniz.

C veya C++ çalışacaksanız derlemek için linux kullanıyorsanız gcc, windows kullanıyorsanız mingw kullanabilirsiniz.

Code editor olarak vs code, atom, vim, neovim gibi programlar kullanabilirsiniz. Temelde yazı yazabildiğiniz her şeyi kullanabilirsiniz. Microsoft word dahil xd. İstediğiniz ide'yi seçebilirsiniz ancak visual studio kullanıp mingw ile debug etmek gibi saçma şeyler yapmayın.

Debugger, editor, compiler ayrı ayrı uğraşmak istemiyorum diyorsanız visual studio veya clion gibi programları kullanabilirsiniz. Eğer github education pack'iniz varsa ücretsiz bir şekilde clion veya jetbrains'in diğer ürünlerini kullanabilirsiniz.

gitignore

TODO: Turkce yi duzeltmek

Kendi klasorunuz altina size ait olan gitignore dosayasi ekleyebilirsiniz global bir tane eklemeyin. Bunu ayni zamanda odev olarak dusenebilirsiniz.

Pull Request

TODO: Turkce yi duzeltmek (sadece turkce harfleri barindirdan kucuk numpad tarzinda klavye alicam heralde)

Bir tane Pull Requeste sadece bir tane odev olsun (dikkat edin 1 tane commit demiyorum).Pull requeste duzeltme yapiyorsaniz ise o zaman odev eklemeyin. #68 ve #67 bu sekilde kabul edilmis son karisik pull requstler bir daha onlara benzeyen pull request kabul etmem.

Debugger

Hiçbir yazılımcı debug öğrenmeden etkili bir şekilde çalışamaz, DEBUG ÖĞRENİN!

Debugger ayarlayın ve çalışmaya hazır hale getirin. Çalışan bir debug ekranının SS'lerini atabilirsiniz.

Code Formatter

Yazılım dilleri için farklı formatterlar geliştirildi ve bunlar kod yazarken otomatik olarak yazıları güzel ve okunaklı hale getiriyor.

Göreviniz bunları araştırmak ve kodlarınızda kullanmak. Yeni yazdığınız ödevlerde veya eskiden yapmış olduklarınızda kullanabilirsiniz.

ClangFormat

Basit Algoritma

  • N, kullanıcının girdiği bilgidir.
  1. Ekrana Hello, World! yazan program
  2. Girilen iki sayının toplamını veren program
  3. N sayısına kadar olan sayıların toplamını veren program
  4. Yarıçapı dışarıdan verilen dairenin çevresini ve alanını bulan program
  5. N tam sayısına kadar olan tek ve çift sayıların toplamını veren program
  6. N sayısına kadar olan sayıların karelerinin toplamını bulan program
  7. Dışarıdan girilen 3 sayının en büyüğünü bulan program
  8. N kez dışarıdan sayı alıp aldığı sayıların en büyüğünü bulan program
  9. Girilen N tane sayının aritmetik ortalamasını bulan program
  10. Çarpma işlemi kullanmadan iki sayının çarpımını bulan program
  11. Girilen N sayısının rakamlarının toplamını bulan program
  12. Yıldızlardan N yüksekliğinde dik üçgen yazdıran program
  13. Fibonacci ilk 20 değeri yazdıran program
  14. Fonksiyon ile Hello, World! yazdıran program
  15. Faktöriyel hesabı yapan program
  16. Kullanıcı -1 girene kadar girilen sayıların ortalamasını bulan program
  17. Girilen N sayısının asal olup olmadığını bulan program
  18. 2 kenarı verilen dik üçgenin 3. kenarını bulan program
  19. Basit hesap makinası programı
  20. Basit hesap makinası ama işlemleri yaptırmak için fonksiyon kullanılacak
  21. Girilen vize ve final notlarına göre öğrencinin dersten geçip geçmediğini bulan program
  22. Girilen metindeki harflerin ASCII değerini yazdıran program
  23. Girilen metindeki harflerin ASCII değerlerine bakarak eğer küçük harfle yazıldıysa büyük hale dönüştüren program
  24. Girilen metinin tersini yazdıran program
  25. Saati ve tarihi ekrana yazan program
  26. 10'luk tabanda girilen sayının 16'lık ve 2'lik tabanda değerini yazan program
  27. Bulunduğu klasör içerisindeki tüm dosyaların adını yazan program
  28. Yeni bir txt dosyası oluşturup bu dosyanın içine Hello, World! yazdıran program
  29. Asal sayilari sieve of eratosthenes metodunu kullanarak bulunuz ve ekrana yazdiriniz

Linked list taskları

  • Linked list çeşitleri = single, double, circular.
  • Bu işlemler için istediğiniz linked listi kullanabilirsiniz.
  • Bu islemler icin menu gelistiriniz, kac tane task varsa o kadar menu itemi yapiniz
  1. Sona ve başa ekleme
  2. Ortaya ekleme
  3. Sondan ve baştan silme
  4. Ortadan silme
  5. Listede arama
  6. Bir algoritma ile listeyi sıralama
  7. İki liste sıralı merge işlemi

Orta Algoritma

  1. Program bir txt dosyası oluşturacak, girilen kullanıcı adı ve şifreleri bu txt içerisinde depolayacak. Kayıtlı olan bütün şifreleri görmek için sizden bir şifre girmenizi isteyecek.
  2. İlk progamı geliştireceğiz ve txt içerisinde kayıt edilen verileri bir algoritma ile şifreleyeceğiz. Doğrudan txt'yi açtığımızda veriler okunamaz olmalı.
  3. Grafik kütüphanelerini kullanarak pong oyunu yapın.
  4. Grafik kütüphanelerini kullanarak internet olmayınca çıkan dinazor oyununu yapın.

Alp matrix taskları

  • N bir kare(Min 2x2), M bir kare olmayan(Min 2x3 ya da 3x2) matrix olmak üzere,
  1. N matrixi oluşturun ve yazdırın
  2. M matrixi oluşturun ve yazdırın
  3. M matrixin elemanlarını ayrı bir şekilde yazdırın
  4. M matrixi oluşturun ve kullanıcıdan girilen 2 sayı ile M matrix indexlerinin içeriğini değiştirin
  5. M random matrix i oluşturun ve yazdırın
  6. M random matrixinizi yazdırın ve 4 ekleyin ve yazdırın (ex: [1 2] --> [5,6])
  7. M random matrixinizi yazdırın ve 5 ile çarpın ve yazdırın (ex: [1 2] --> [5,10])
  8. 5-N 1lerden oluşan bir matrix oluşturun orta kısımı(3N) 0 a çevirin
  9. 2 tane N random matrixi oluşturun ve toplayın sonucu yazdırın
  10. N matrixi oluşturun transpose'unu alın sonucu yazdırın
  11. M matrixi oluşturun transpose'unu alın sonucu yazdırın
  12. 2 tane N random matrixi oluşturun ve bunları çarpın sonucu yazdırın
  13. 2 tane M random matrixi oluşturun ve toplayın sonucu yazdırın
  14. 2 tane M random matrix çarpın sonucu yazdırın
  15. 2x2 bir matrixin determinantını alın

16-30 Yukarıdaki her görevi fonksiyonlar ile yapın

Boris isteğe bağlı tatsız tasklar

  • Windows subsystem for linux nedir öğrenin, kullanmaya çalışın

Denis cift kislik tasklar

  • Bu tasklar icin kendinize bir es bulun, onunla bu tasklari paylasin.
  • Amaciniz ayni anda ayni kod ustunde calismaniz
  • Birbirinizi engelemeden ilerleyiniz
  • Ayni dosya ustunde iki farkli insanin commitleri olmasi lazim.
  • Kodu birbirinizle git ten farkli bir kanala paylasmayiniz
  • Cikan merge conflictleri git way cozunuz
  • Daha kolay takip edebilmemiz icin asagidaki tabloyu doldurunuz
  • Bu taskalr icin lutfen daha detayli commit mesajlari kullanin
  • Bu tasklar icin ikinizde ayni formatlamaya sadik kalmaniz lazim.
Birinci uye ikinci uye Done?
Denis Boris ✔️
  1. Hesap makinesi yaziniz. En azindan 4 islem yapan hesap makinesi istiyorum. Hesap makinesinin bir menusu olsun. Menusu yu ekibin bir uyesi. Matematiksel islemlerini ekibin obur uyesi yazsin.

Peki ya siz ne istiyorsunuz?

  • Anlatmamizi istediginiz yada odev almak istediginiz ozel bir konu varsa sormaktan cekinmeyin. Birseyler dusunmeye calisiriz.

Boris icin ozel tasklar

  1. Docker kur
  2. Docker ile nginx (yada herahngi bisey bana farketmez) aya kaldir
  3. Kendin uygulamani dockerize et

Git Collaboration Task: Conflict Resolution with Merge or Rebase

This task simulates a real-world scenario where multiple contributors modify the same file at the same time. You will learn how to deal with Git conflicts and understand the differences between merge and rebase strategies when integrating changes. The instructor has created the following structure in the repository: path: collab/quotes.txt data: Wisdom Quotes

  • "Simplicity is the soul of efficiency." – Austin Freeman
  • "Before software can be reusable it first has to be usable." – Ralph Johnson
  • "Programs must be written for people to read, and only incidentally for machines to execute." – Harold Abelson
  • "The best way to get a project done faster is to start sooner." – Jim Highsmith
  • "Controlling complexity is the essence of computer programming." – Brian Kernighan

Student Instructions

  1. Fork and clone the repository to your local environment.
  2. Create a new feature branch using your name.
  3. Edit the quotes.txt file by adding a new quote directly below the first quote.
  4. Save, commit, and push your changes to your remote branch.
  5. Open a Pull Request (PR) to merge your feature branch into the master branch of the original repository.

Conflict Challenge

Once one of the PRs is merged by the instructor, other PRs will face conflicts due to overlapping changes.

You must now choose a strategy to resolve the conflict:

Option 1: Merge Strategy

  • Update your branch with the latest changes from the master branch.
  • Resolve the conflict in the quotes.txt file.
  • Complete your PR after resolving the conflict.

Option 2: Rebase Strategy

  • Rebase your branch onto the latest master branch.
  • Resolve each conflict as it appears during the rebase process.
  • Force push the updated branch to your remote and complete your PR.

Learning Outcomes

  • Understand how merge conflicts occur and how to resolve them.
  • Learn the difference between merge (preserves history) and rebase (linear history).
  • Practice team collaboration using GitHub and version control.
  • Improve your conflict resolution and Git workflow skills.

Bonus Challenge

  • One student renames the quotes.txt file.
  • Another student edits its content at the same time.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 15