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.
TODO: Turkce yi duzeltmek
Kendi klasorunuz altina size ait olan gitignore dosayasi ekleyebilirsiniz global bir tane eklemeyin. Bunu ayni zamanda odev olarak dusenebilirsiniz.
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.
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.
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.
- N, kullanıcının girdiği bilgidir.
- Ekrana Hello, World! yazan program
- Girilen iki sayının toplamını veren program
- N sayısına kadar olan sayıların toplamını veren program
- Yarıçapı dışarıdan verilen dairenin çevresini ve alanını bulan program
- N tam sayısına kadar olan tek ve çift sayıların toplamını veren program
- N sayısına kadar olan sayıların karelerinin toplamını bulan program
- Dışarıdan girilen 3 sayının en büyüğünü bulan program
- N kez dışarıdan sayı alıp aldığı sayıların en büyüğünü bulan program
- Girilen N tane sayının aritmetik ortalamasını bulan program
- Çarpma işlemi kullanmadan iki sayının çarpımını bulan program
- Girilen N sayısının rakamlarının toplamını bulan program
- Yıldızlardan N yüksekliğinde dik üçgen yazdıran program
- Fibonacci ilk 20 değeri yazdıran program
- Fonksiyon ile Hello, World! yazdıran program
- Faktöriyel hesabı yapan program
- Kullanıcı -1 girene kadar girilen sayıların ortalamasını bulan program
- Girilen N sayısının asal olup olmadığını bulan program
- 2 kenarı verilen dik üçgenin 3. kenarını bulan program
- Basit hesap makinası programı
- Basit hesap makinası ama işlemleri yaptırmak için fonksiyon kullanılacak
- Girilen vize ve final notlarına göre öğrencinin dersten geçip geçmediğini bulan program
- Girilen metindeki harflerin ASCII değerini yazdıran program
- Girilen metindeki harflerin ASCII değerlerine bakarak eğer küçük harfle yazıldıysa büyük hale dönüştüren program
- Girilen metinin tersini yazdıran program
- Saati ve tarihi ekrana yazan program
- 10'luk tabanda girilen sayının 16'lık ve 2'lik tabanda değerini yazan program
- Bulunduğu klasör içerisindeki tüm dosyaların adını yazan program
- Yeni bir txt dosyası oluşturup bu dosyanın içine Hello, World! yazdıran program
- Asal sayilari sieve of eratosthenes metodunu kullanarak bulunuz ve ekrana yazdiriniz
- 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
- Sona ve başa ekleme
- Ortaya ekleme
- Sondan ve baştan silme
- Ortadan silme
- Listede arama
- Bir algoritma ile listeyi sıralama
- İki liste sıralı merge işlemi
- 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.
- İ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ı.
- Grafik kütüphanelerini kullanarak pong oyunu yapın.
- Grafik kütüphanelerini kullanarak internet olmayınca çıkan dinazor oyununu yapın.
- N bir kare(Min 2x2), M bir kare olmayan(Min 2x3 ya da 3x2) matrix olmak üzere,
- N matrixi oluşturun ve yazdırın
- M matrixi oluşturun ve yazdırın
- M matrixin elemanlarını ayrı bir şekilde yazdırın
- M matrixi oluşturun ve kullanıcıdan girilen 2 sayı ile M matrix indexlerinin içeriğini değiştirin
- M random matrix i oluşturun ve yazdırın
- M random matrixinizi yazdırın ve 4 ekleyin ve yazdırın (ex: [1 2] --> [5,6])
- M random matrixinizi yazdırın ve 5 ile çarpın ve yazdırın (ex: [1 2] --> [5,10])
- 5-N 1lerden oluşan bir matrix oluşturun orta kısımı(3N) 0 a çevirin
- 2 tane N random matrixi oluşturun ve toplayın sonucu yazdırın
- N matrixi oluşturun transpose'unu alın sonucu yazdırın
- M matrixi oluşturun transpose'unu alın sonucu yazdırın
- 2 tane N random matrixi oluşturun ve bunları çarpın sonucu yazdırın
- 2 tane M random matrixi oluşturun ve toplayın sonucu yazdırın
- 2 tane M random matrix çarpın sonucu yazdırın
- 2x2 bir matrixin determinantını alın
16-30 Yukarıdaki her görevi fonksiyonlar ile yapın
- Windows subsystem for linux nedir öğrenin, kullanmaya çalışın
- 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 | ✔️ |
- 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.
- Anlatmamizi istediginiz yada odev almak istediginiz ozel bir konu varsa sormaktan cekinmeyin. Birseyler dusunmeye calisiriz.
- Docker kur
- Docker ile nginx (yada herahngi bisey bana farketmez) aya kaldir
- Kendin uygulamani dockerize et
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
- Fork and clone the repository to your local environment.
- Create a new feature branch using your name.
- Edit the
quotes.txtfile by adding a new quote directly below the first quote. - Save, commit, and push your changes to your remote branch.
- Open a Pull Request (PR) to merge your feature branch into the
masterbranch of the original repository.
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:
- Update your branch with the latest changes from the
masterbranch. - Resolve the conflict in the
quotes.txtfile. - Complete your PR after resolving the conflict.
- Rebase your branch onto the latest
masterbranch. - Resolve each conflict as it appears during the rebase process.
- Force push the updated branch to your remote and complete your PR.
- 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.
- One student renames the
quotes.txtfile. - Another student edits its content at the same time.