Algoritma Tasarımı

Sevgili arkadaşlar, 

Algoritma Tasarımı dersi, Bilgisayar ve Yazılım Mühendisliği bölümlerinde, genellikle birinci sınıfta okutulan bir derstir. Bu dersin en temel amacı algoritma ve ilişkili kavramlar konusunda gerekli temelin oluşturulmasıdır.

Algoritma kısaca bir problemin en kısa yoldan çözmek üzere tasarlanan işlem adımlarını ifade eden, kararlı ve her adımı tanımlanmış bir çözüm yolu olarak düşünülebilir. Üstelik algoritma tanımlı problem için bir çözüm önerirken, gerek donanım kaynakları gerekse hız gibi parametreleri dikkate alıp, problem çözümünü olası en düşük maliyetle gerçekleştirmeyi sağlar ya da hedefler. 

Algoritma tasarımı dersi boyunca bazı temel algoritmaları kodlamak üzere C# dilini kullanacağız. Ders kapsamındaki algoritmaların tasarımı için çeşitli konsol uygulamaları geliştireceğiz. Bu kapsamda kişisel bilgisayarlarınızda C# dilini kullanmak üzere Microsoft Visual Studio programını yüklemenizi tavsiye ediyorum. Microsoft Visual Studio, bilgisayar ya da yazılım mühendislerinin bir program gerçekleştirmek üzere dahil oldukları ya da oluşturdukları projeleri başlangıç aşamasından ürün dağıtım aşamasına kadar ihtiyaç duyulabilecek hemen hemen aracı bünyesinde barındıran ve Integrated Development Environment (IDE) olarak ifade edilen yani bütünleşik geliştirme ortamı sunan bir programdır. Visual Studio web adresine gittiğinizde kullandığınız bilgisayar türüne ve işletim sistemine göre (Mac OS, Windows ya da Linux) uygun olan sürümü seçmelisiniz. Bu kapsamda, Community (Topluluk) sürümünü yüklemenizi öneriyorum. 

Microsoft Visual Studio indirmek için tıklayınız.

Bu dışında algoritma çizimi Microsoft Visual Studio programını kullanabilirsiniz. Yine ücretsiz olarak çevrimiçi akış şemaları oluşturmak üzere draw.io platformunda da faydalanabilirsiniz. 

Algoritma tasarımı dersi boyunca derslerimizden maksimumu derecede faydalanmanızı umuyor, hepinize başarılar diliyorum. 

 

BTK AKADEMİ

Toplamda 22 saatten oluşan Algoritma Tasarımı Eğitimimiz BTK Akademi platformunda ücretsiz olarak isteyen herkesin katılabileceği Başarı Sertifikalı Bir Eğitim olarak yayımlandı.

CUMHURBAŞKANI ERDOĞAN’DAN GENÇLERE ÇAĞRI

Cumhurbaşkanımız Recep Tayyip Erdoğan 20.04.2020 Pazartesi günü gerçekleştirilen Kabine toplantısının ardından yeni bir programın duyurusunu yaptı ve “3 yılda 1 milyon yazılımcı yetiştirmeyi hedefleyen bir program başlatıyoruz” dedi.

Cumhurbaşkanımız sözlerine şu şekilde devam etti: “Evde Kal Türkiye” sloganıyla gönüllü karantina uyguladığımız şu günlerde özellikle gençlerimize bir çağrıda bulunmak istiyorum. Dünyada yıldızı her geçen gün daha da parlayan yazılım sektörü sizleri bekliyor. Bunun için 3 yılda 1 milyon yazılımcı yetiştirmeyi hedefleyen bir program başlatıyoruz. Hazine ve Maliye Bakanlığımızın hazırladığı proje kapsamındaki eğitimler, özellikle BTK Akademi Eğitim Portalı üzerinden gerçekleştirilecektir. Hali hazırda, 13 başlıkta 47 bin dakikayı bulan 31 ayrı eğitim bu sitede hizmet veriyor.

BİLGİ TEKNOLOJİLERİNDE BİR MİLYON İSTİHDAM

Yılsonuna kadar eğitim sayısı 100’e çıkacaktır. Gençlerimizin tek yapması gereken sisteme girip, özgeçmişlerini kayıt ettirmektir. Tamamlanan eğitimler ve başarı dereceleri sistemdeki özgeçmişlere otomatik olarak işlenecektir. Programı tamamlayanlar güvenlikten, veri analistliğine, siber güvenlikten yazılım geliştirmeye kadar 15 farklı alanda uzman olarak istihdam edilebilme olanağı kazanacaktır. Böylece gençlerimiz Korona (COVID-19) günlerini geleceklerine ışık tutacak bir fırsata çevirebilecektir. Cumhurbaşkanımız Recep Tayyip Erdoğan sözlerini “Bu programın ülkemizin yazılımcı ihtiyacının giderilmesine de katkı sağlayacağına inanıyorum.” şeklide tamamladı.

E-DEVLET İLE GİRİŞ

BTK Akademi Eğitim Portalı tamamen ücretsiz. Programdan faydalanmak isteyen öğrencilerimiz yapması gereken tek şey e-devlet şifresiyle sisteme katılmak ve alanında uzman kişilerce verilen eğitimleri takip edip, sertifikalarını almak ve güçlü bir özgeçmiş oluşturmak.

 

EĞİTİM İÇERİĞİ

 

 

ALGORİTMA TASARIMINA GİRİŞ

 
1 Algoritma Tasarımına Giriş Algoritma Tasarımına Giriş
2 Algoritmalar ve Akış Şemaları Algoritmalar ve Akış Şemaları
3 Algoritmalar ve Akış Şemaları Örnek Çift Mi, Tek Mi Akış Şeması
4 Algoritmalar ve Akış Şemaları Örnek Birden N'e Sayılar Çift Sayıların Toplamı
5 Çalışma Ortamına Giriş Çalışma Ortamına Giriş
6 Çalışma Ortamına Giriş C# ve .NET Framework Tanıtılması
     

 

PROGRAMLAMA BİLEŞENLERİ

 
7 Değişken ve Metot İsimlendirme Pascal Camel Upper Case
8 Değişken Kavramı Değişkenler ve Veri Türleri
9 Değişken Kavramı Uygulama Değişken Kavramı Uygulama
10 Kutulama ve Kutudan Çıkarma Kutulama ve Kutudan Çıkarma
11 Sabit Tanılama const ve readonly
12 Sabit Uygulama const ve readonly Uygulama
13 Sabit Uygulama const ve readonly Uygulama
14 var, object, dynamic, GetType Kavramları var object dynamic GetType
15 var deyimi uygulaması var Uygulama
16 Kontrol İfadeleri if - else Kavramı
17 Kontrol İfadeleri if - else Uygulama : Karakter Kontrolü
18 Kontrol İfadeleri if  - else Uygulama: AND ve OR koşulları
19 Kontrol İfadeleri Switch case kavramı
20 Kontrol İfadeleri Switch case uygulama 01 :Rastgele Renk
21 Kontrol İfadeleri Switch case uygulama 02 : Rastgele Durum
     

 

PROGRAMLAMA BİLEŞENLERİ UYGULAMALARI

 
22 Visual Studio Installer Visual studio'yu genişletme
23 Temel Programlama Düzey 1 Uygulamalar Sayı tek mi çift mi?
24 Temel Programlama Düzey 1 Uygulamalar Mutlaka Değer
25 Temel Programlama Düzey 1 Uygulamalar Asal sayı mı?
26 Temel Programlama Düzey 1 Uygulamalar Rakamları Toplamı
27 Temel Programlama Düzey 1 Uygulamalar Birden N kadar olan sayıların toplamı
28 Temel Programlama Düzey 1 Uygulamalar Birden N kadar olan tek sayıların toplamı
29 Temel Programlama Düzey 1 Uygulamalar Birden N kadar olan çift sayıların toplamı
30 Temel Programlama Düzey 1 Uygulamalar Aralıklı Çift Sayı toplama uygulaması
31 Temel Programlama Düzey 1 Uygulamalar Çemberin Çevresi
32 Temel Programlama Düzey 1 Uygulamalar Dairenin Alanı
33 Temel Programlama Düzey 1 Uygulamalar Dilimli Dairenin Alanı
     

 

DÖNGÜLER VE DİZİLER

 
34 Döngüler for döngüsü kavramı
35 Döngüler for döngüsü uygulama 01 : Sayıların Kareleri
36 Döngüler for döngüsü uygulama 02 : Tek çift sayıların toplamı
37 Döngüler for döngüsü uygulama 03 : 1000'den 0'a kac sayi var?
38 Döngüler for döngüsü uygulama 04 : Carpim tablosu
39 Diziler Dizi Tanımlama
40 Tek Boyutlu Diziler Tek Boyutlu bir dizideki en küçük ve en büyük elemanı bulan program
41 Tek Boyutlu Diziler Dizi Sınıfı
42 Tek Boyutlu Diziler Aritmetik Ortalama 
43 Tek Boyutlu Diziler Standart Sapma Hesabı
44 Tek Boyutlu Diziler Tek ve Çift Sayılar
45 Char Karakter Seti ve Rakamlar Karşılıkları Char Karakter Seti ve Rakamlar Karşılıkları
46 Stringler Stringler (Katarlar)
47 Stringler Desen 1 oluşturma uygulaması
48 Stringler Desen 2 oluşturma uygulaması
49 Stringler Char ve Rakam Karşılıkları
50 Stringler String fonksiyonları
     
 

DÖNGÜ VE DİZİ UYGULAMALARI

 
51 Class taşıma Class taşıma
52 Temel Programlama Düzey 2 Uygulamalar Üst Alma Fonksiyon Tasarımı
53 Temel Programlama Düzey 2 Uygulamalar Bir Sayının Asal Çarpanlanlarının Bulan Metot
54 Temel Programlama Düzey 2 Uygulamalar Bir sayının asal çarpanlarının toplamını bulan metot
55 Temel Programlama Düzey 2 Uygulamalar Bir sayının asal çarpanlarının çarpımını bulan metot
56 Temel Programlama Düzey 2 Uygulamalar En Küçük Ortak Katı Bulan Metodun Tasarlanması
57 Temel Programlama Düzey 2 Uygulamalar En Büyük Ortak Bölen Metodunun Tasarlanması
58 Temel Programlama Düzey 2 Uygulamalar Faktöriyel Hesabı
59 Temel Programlama Düzey 2 Uygulamalar 2 - 8 arasındaki sayıların faktöriyellerinin ortalaması
60 Temel Programlama Düzey 2 Uygulamalar Virgül ile ayrılmış bir string ifadesini bir diziye atama
61 Temel Programlama Düzey 2 Uygulamalar İkilik Tabandan 10luk Tabana Geçiş
62 Temel Programlama Düzey 2 Uygulamalar Sesli harf sayısını bulma.
     
 

MATRİS UYGULAMALARI

 
63 Çok boyutlu diziler Çok boyutlu dizilere giriş
64 Çok boyutlu diziler Matris uygulamalarına genel bakış
65 Çok boyutlu diziler Matris sınıfı
66 Çok boyutlu diziler Matris yazdırma
67 Çok boyutlu diziler Sıfır matrisi oluşturma
68 Çok boyutlu diziler Bir matrisi oluşturma
69 Çok boyutlu diziler Köşegen matris oluşturma
70 Çok boyutlu diziler Skaler matris
71 Çok boyutlu diziler Kare Matris mi?
72 Çok boyutlu diziler Birim Matris mi?
73 Çok boyutlu diziler Diyagonal elemanları listeleme
74 Çok boyutlu diziler Bir matrisin izini hesaplama
75 Çok boyutlu diziler Transpoz alma
76 Çok boyutlu diziler Yeniden şekillendirme
77 Çok boyutlu diziler Matris karşılaştırma
78 Çok boyutlu diziler 2x2 Matris determinant hesabı
79 Çok boyutlu diziler 3x3 Matris determinant hesabı
80 Çok boyutlu diziler Skaler çarpım
81 Çok boyutlu diziler Bir matrisdeki elemanların toplamını bulma
82 Çok boyutlu diziler Simetrik matris mi?
83 Çok boyutlu diziler Köşegen matris mi?
84 Çok boyutlu diziler Üst üçgen matris oluşturma
85 Çok boyutlu diziler Alt üçgen matris oluşturma
86 Çok boyutlu diziler Üst üçgen matris mi?
87 Çok boyutlu diziler Alt üçgen matris mi?
88 Çok boyutlu diziler Matris sınıf özeti
89 INFO Console Renkleri
     
 

DOSYALAMA İŞLEMLERİ

 
90 Dosyalama İşlemleri StreamReader Nesnesi
91 Dosyalama İşlemleri StreamReader Uygulaması
92 Dosyalama İşlemleri StreamWriter Nesnesi
93 Dosyalama İşlemleri StreamWriter Uygulaması
94 Dosyalama İşlemleri FileStream Nesnesi
95 Dosyalama İşlemleri Dinamik Yol Tanımı
96 Dosyalama İşlemleri FileStream Uygulaması
97 Dosyalama İşlemleri FileInfo
98 Dosyalama İşlemleri Dosya Kopyalama
99 Dosyalama İşlemleri Dosya Silme
     
 

NESNE YÖNELİMLİ PROGRAMLAMA

 
100 Object Orientation Programming classes, properties, expression-bodied property and methods
101 Methods Expression-bodied methods, method overloading,optional arguments
102 Constructors Constructors, expression-bodied constructors
103 Partial classes  Partial classes 
104 Extension methods Extension methods
105 Modelleme Örneği Araç sınıfı
106 Modelleme Örneğinin Genişletilmesi Kalıtıma Giriş
107 Nesne tanımlama yaklaşımları ve override deyimi Nesne tanımlama ve override anahtar kelimesi
108 List ve Class Örneği List ve Class örneği
109 Types of inheritance Types of inheritance
110 virtual methods virtual methods
111 virtual methods uygulaması virtual methods uygulaması
112 Polymorphism Polymorphism
113 Hiding methods Hiding methods
114 Calling Base Versions of Methods Calling Base Versions of Methods
115 Abstract Classes and methods Abstract Classes and methods
116 Sealed Classes and Methods Sealed Classes and Methods
117 Sekil modelinin özeti Sekil modelinin özeti
118 Constructors of Derived Classes Constructors of Derived Classes
119 Constructors of Derived Classes with arguments Constructors of Derived Classes with arguments
120 Interfaces  Interfaces
121 Defining interfaces Defining interfaces
122 Implementing interfaces Implementing interfaces
123 Interface Inheritance Interface inheritance
     

 

GENERIC AND COLLECTIONS

 
124 Collections Collections
125 Collections Enumaration, IEnumerable, IEnumarator
126 Collections IEnumerable<T> and IEnumerator<T>
127 Collections ICollection<T> and ICollection
128 Collections IList<T> ve IList
129 Collections ReadOnlyList<T>
130 Collections Array
131 Collections Bilinmeyen tipler ile Array üzerinde çalışma
132 Collections Array Search
133 Generic Linked List
134 Generic Linked List with Generic Classes
135 Generic Linked List Class Diagram
     
 

VERİ TABANI TASARIM VE YÖNETİMİ

 
136 Veri tabanı sistemlerine genel bakış Giriş
137 Rehber Projesine Genel Bakış Rehber Projesine Genel Bakış
138 SqlServer bağlanma, veri tabanı ve tablo oluşturma SqlConnection
139 SqlCommand için CommandText Örnekleri SqlCommand için CommandText Örnekleri
140 SqlDataReader  SqlDataReader 
141 Tabloların Modellenmesi Tabloların Modellenmesi
142 Sınıf üzerinden ekleme yapan metodun tasarlanması Kişi tablosuna ekleme yapma
143 Sınıf üzerinden listeleme yapan metodun tasarlanması Sınıf üzerinden listeleme yapan metodun tasarlanması
144 Sınıf üzerinden silme yapan metodun tasarlanması Sınıf üzerinden silme yapan metodun tasarlanması
145 Sınıf üzerinden güncelleme yapan metodun tasarlanması Sınıf üzerinden güncelleme yapan metodun tasarlanması
146 Sql ifadelerini optimize etme Sql ifadelerini optimize etme
147 Sql ifadelerini optimize etme 2 Sql ifadelerini optimize etme 2
148 Console App için menü oluşturma Kisi sınıfı için menü tasarımı
149 SQL Arama ve Stored Procedure kullanımı SQL Arama ve Stored Procedure kullanımı
150 Iletisim tablosu ve Ekle işleminin Stored Procedure ile yapılması Iletisim tablosu ve Ekle işleminin Stored Procedure ile yapılması
151 SQL View nesnesi ile iki tablonun birleşimi SQL View ile iki tablonun birleşimi
152 Rehber menüsü tasarımı Rehber menü tasarımı
153 Iletisim bilgilerini kayıt etme Iletisim bilgilerini kayıt etme
154 Iletisim bilgilerini Console App üzerinden kayıt etme Iletisim bilgilerini Console App üzerinden kayıt etme
     
 

LANGUAGE INTEGRATED QUERY

 
155 IFormattable Uygulaması IFormattable ile ToString metodunun dize değerinin değiştirilmesi
156 LINQ Giriş LINQ Giriş
157 LINQ Providers LINQ Sağlayıcıları
158 LINQ Method Syntax and LINQ Filtering LINQ metot söz dizilimi ve filtering
159 LINQ Search LINQ Arama metodunun gerçekleştirilmesi
160 LINQ Ordering LINQ sıralama
161 LINQ Grouping LINQ gruplama
162 LINQ Grouping (Count) LINQ Grouping (Count)
163 LINQ Grouping (into) LINQ Grouping (into)
164 LINQ Conversion (ToArray) LINQ Conversion (ToArray)
165 LINQ Conversion (ToList) LINQ Conversion (ToList)
166 LINQ Joining LINQ Joining 
167 LINQ Take LINQ Take
168 LINQ Partitioning LINQ Partitioning

 

Temel Programlama Bileşenleri
Algoritma Tasarımına Giriş
Değişkenler
Değişkenler, Sabitler ve readonly Deyimi
var, GetType, object, dynamic Deyimleri
Kontrol İfadeleri
switch-case Deyimi
for Döngüsü
Diziler
Yöntemler
Kaba/Sözde Kod (Pseudo-Code)
Çok Boyutlu Diziler
Katalar
Katar Uygulamaları
Dosyalama İşlemleri
Akış Şemaları
Birden Ona Kadar Olan Sayıların Ekrana Yazdırma
Birden N Kadar Olan Sayıları Ekrana Yazdırma
Klavyeden Girilen Sayı Tek Mi Çift Mi?
Birden N'e Çift Sayıların Toplamı
Bir Diziye Rastgele Eleman Atayan Program
Öğrenci Etkinlikleri
Telefon Rehberi Uygulaması
Stok Yönetim Uygulaması
Haber Portalı Uygulaması
Kütüphane Otomasyon Uygulaması