Nest.js ile Sunucu Taraflı Uygulama Geliştirme


BACKEND Eğitimi:

 Nest.js Eğitimi ve Sunucu taraflı uygulama geliştirme (230 saat):

Modül 1: Nest.js Girişi

1.1 Nest.js Nedir?

  • js’in temel prensipleri
  • TypeScript ve Express.js ile ilişkisi

1.2 Kurulum ve Proje Yapısı

  • js projesi oluşturma
  • Temel proje yapısı ve dosya organizasyonu

1.3 Temel Kavramlar

  • Module, Controller, Service
  • Dependency Injection
  • Middleware kullanımı

1.4 RESTful API Temelleri

  • Endpoint tanımlama
  • HTTP metotları ve route parametreleri
  • Request ve response Nesneleri

Modül 2: Veritabanı Entegrasyonu

2.1 TypeORM ve PostgreSQL

  • TypeORM nedir?
  • PostgreSQL ile veritabanı oluşturma ve Veritabanına bağlanılması

2.2 TypeORM ile Modelleme

  • Entity ve Repository kullanımı
  • Veritabanı tablolarının oluşturulması

2.3 CRUD Operasyonları

  • Temel CRUD operasyonlarını gerçekleştirme
  • TypeORM query builder kullanımı

2.4 Validation ve DTOs

  • DTO (Data Transfer Object) kavramı
  • Class-validator ile veri doğrulama

Modül 3: JWT Authentication ve Güvenlik

3.1 Passport.js ve JWT

  • js kullanımı
  • JWT ile kullanıcı doğrulama

3.2 Guard ve Middleware

  • Auth guard ve middleware kullanımı
  • Role-based yetkilendirme

3.3 OAuth ve Social Media Authentication

  • OAuth protokolü
  • Dış servislerle entegrasyon

3.4 Güvenlik Pratikleri

  • SQL Injection, Cross-Site Scripting (XSS) önlemleri
  • HTTPS kullanımı

Modül 4: GraphQL ve Nest.js

4.1 GraphQL Temelleri

  • GraphQL kavramları
  • GraphQL query ve mutationlar

4.2 Nest.js ve GraphQL Entegrasyonu

  • js ile GraphQL servisi oluşturma
  • Resolver ve schema kullanımı

4.3 Apollo Server ve Client

  • Apollo Server kullanımı
  • Frontend ile GraphQL entegrasyonu

Modül 5: Testing ve Hata Ayıklama

5.1 Birim Testleri

  • Jest ve Supertest kullanımı
  • Unit ve integration testler

5.2 Hata Ayıklama (Debugging)

  • js uygulamalarını hata ayıklama
  • Hata ayıklama stratejileri

Modül 6: Mikroservisler ve Nest.js

6.1 Mikro Servis Kavramları

  • Mikro servis mimarisi nedir?
  • Avantajları ve zorlukları

6.2 Nest.js ile Mikro Servis Geliştirme

  • js ile mikro servis oluşturma
  • İletişim ve veri paylaşımı

Modül 7: WebSocket ve Real-Time Uygulamalar

7.1 WebSocket ve Nest.js

  • WebSocket protokolü
  • WebSocket ile iletişim kurma

7.2 Real-Time Uygulama Geliştirme

  • WebSocket ile anlık haberleşme
  • Real-time uygulama senaryoları

Modül 8: Performans ve Optimizasyon

8.1 Performans Analizi

  • Uygulama performansının değerlendirilmesi
  • Optimizasyon stratejileri

8.2 Cache ve CDN

  • Veri önbellekleme stratejileri
  • CDN kullanımı

Modül 9: Docker ve Konteynerizasyon

9.1 Docker Temelleri

  • Docker nedir?
  • Docker konteynerleri ve avantajları

9.2 Nest.js ve Docker Entegrasyonu

  • js uygulamasını Dockerize etme
  • Docker-compose kullanımı

Modül 10: Proje Geliştirme ve Bitirme

10.1 Büyük Ölçekli Bir Proje Geliştirme

– Öğrenilen bilgilerin pratiğe dönüştürülmesi

– Projeyi planlama ve geliştirme

10.2 Bitirme ve Değerlendirme

– Projenin tamamlanması ve sunumu

– Öğrencilerle geri bildirim oturumları düzenleme

* Bu kurs C ve Sistem Programcıları Derneği ve Sistem Bilgisayar işbirliği ile düzenlenmektedir.

* Kurs ücretini sorunuz. 

React, Capacitor.js ile Platform Bağımsız (Web, Mobil) Uygulama Geliştirme


FRONTEND Eğitimi:

React, TypeScript ve Capacitor.js kullanarak platform bağımsız (Web, Mobil, Masaüstü) uygulama geliştirme eğitimi: (220 saat)

Modül 1: Temel Arayüz Teknolojileri

1.1 HTML ve CSS Temelleri

  • Temel HTML etiketleri
  • CSS seçiciler, özellikler ve değerler

1.2 Uyumlu (Responsive) Tasarım ve Mobil öncelikli(Mobile First) Yaklaşımı

  • Ortam sorguları (Media queries) kullanımı
  • Mobil öncelikli (Mobile First) tasarım prensipleri

1.3 Temel JavaScript ve ES6+ Özellikleri

  • JavaScript temelleri
  • ES6+ özellikleri

Modül 2: React.js ve TypeScript

2.1 React.js Temelleri

  • React bileşenleri ve JSX
  • React State ve Props kullanımı

2.2 React Router ve Navigasyon

  • React Router kullanımı
  • Sayfa geçişleri ve navigasyon stratejileri

2.3 React State Yönetimi

  • Context API ve Redux kullanımı
  • Redux Toolkit, React-Redux Hooks ve Redux Saga

2.4 TypeScript ile React Entegrasyonu

  • TypeScript temelleri
  • TypeScript ile React uygulaması geliştirme

Modül 3: Capacitor.js ve Platform Bağımsız Uygulama Geliştirme

3.1 Capacitor.js Nedir?

  • js’in temel prensipleri

3.2 Mobil Uygulama Geliştirme

  • js ile mobil uygulama projesi oluşturma
  • js eklentisinin kullanımı

3.3 Web Uygulama Geliştirme

  • js ile web uygulama projesi oluşturma
  • Platform bağımsız kodlama

3.4 Electron.js Temelleri

  • js nedir?
  • js electron.js eklentisi kullanımı

3.5 Masaüstü Uygulama Geliştirme

  • js ve Electron.js ile masaüstü uygulama geliştirme

Modül 4: Tailwind CSS ve Responsive Tasarım

4.1 Tailwind CSS Temelleri

  • Tailwind CSS’in avantajları
  • Sınıf tabanlı CSS yaklaşımı

4.2 Responsive Tasarım

  • Tailwind CSS ile uyumlu tasarım stratejileri
  • Ekran boyutlarına göre düzen yönetimi

Modül 5: Hata Ayıklama (Debugging) ve Test Süreçleri

5.1 Hata Ayıklama Stratejileri

  • Tarayıcı geliştirici araçları kullanımı
  • Mobil ve masaüstü uygulamalarda hata ayıklama

5.2 Test Süreçleri

  • Birim testleri (Unit test) ve entegrasyon testleri (integration test)
  • React Testing Library ve Jest kullanımı

Modül 6: Uygulama Dağıtımı (Deployment) ve CI/CD

6.1 Uygulama Dağıtım Stratejileri

  • Web, mobil ve masaüstü uygulamalarını yayınlama
  • Apple App Store, Google Play markete uygulama ekleme

6.2 CI/CD ve Otomatik Dağıtım

  • Continuous Integration (CI) ve Continuous Deployment (CD)
  • GitHub Actions veya başka CI/CD araçları ile entegrasyon

Modül 7: Mobil ve Masaüstü Uygulama Optimizasyonu

7.1 Performans Analizi

  • Uygulama performansının değerlendirilmesi
  • Optimizasyon stratejileri

7.2 Offline Çalışma ve Cache Stratejileri

  • Service Worker kullanımı
  • Veri önbellekleme ve offline çalışma

Modül 8: Proje Geliştirme ve Bitirme

8.1 Büyük Ölçekli Bir Proje Geliştirme

– Öğrenilen bilgilerin pratiğe dönüştürülmesi

– Projeyi planlama ve geliştirme

8.2 Bitirme ve Değerlendirme

– Projenin tamamlanması ve sunumu

* Bu kurs C ve Sistem Programcıları Derneği ve Sistem Bilgisayar işbirliği ile düzenlenmektedir.

* Kurs ücretini sorunuz. 

Typescript Programlama Dili


Typescript Programlama Dili  (160 saat)

Modül 1: TypeScript Temelleri

1.1 Giriş

  • TypeScript’in Önemi ve Kullanım Alanları
  • JavaScript ve TypeScript arasındaki temel farklıklar
  • TypeScript’in avantajları ve güçlü yanları

1.2 Kurulum ve Ayarlar

  • js ve npm kurulumu
  • TypeScript kurulumu
  • TypeScript Proje yapılandırması ve “tsconfig.json” dosyası

1.3 İlk TypeScript Uygulaması

  • Bir TypeScript dosyası oluşturma
  • Temel TypeScript sentaksı
  • TypeScript dosyasını derleme ve çalıştırma

1.4 TypeScript Entegrasyonu

  • TypeScript ile yaygın IDE’lerin (VS Code, WebStorm, …) kullanımı
  • TypeScript entegrasyonu için geliştirme araçları

Modül 2: Veri Tipleri ve Değişkenler

2.1 Temel Veri Türleri

  • string, number, boolean, array, object veri türleri
  • Tür çıkarımları ve tür bilgilendirmeleri

2.2 Değişkenler ve Sabitler

  • let, const, var anahtar sözcükleri ile değişken tanımlama
  • Blok faaliyet alanı ve fonksiyon faaliyet alanı

2.3 Türlere Alternatif İsimler Verilmesi ve Birlik Türleri

  • Tür takma adları (Type aliases)
  • Birlik türleri ve Kesişim türleri

2.4 Türlere İlişkin İleri Düzey Bilgiler

  • Sayımlama Türleri ve Sabitleri ve literal türler
  • Null Türü ve Undefined Türü
  • Tür söylemleri (Type assertions)

Modül 3: Fonksiyonlar

3.1 Fonksiyon Tanımlama ve Çağırma

  • Fonksiyonların ve Metotların Parametre Değişkenleri ve geri dönüş değerleri
  • İsimli parametreler ve default argüman kullanımı

3.2 Rest Parametreler ve Spread Operatorü

  • Rest parametrelerin ve spread operatorünün kullanımı
  • İleri seviye fonksiyon kullanımı

3.3 Yüksek Düzeyli Fonksiyonları

  • Callback fonksiyonlar
  • Promise ve Async/Await kullanımı

3.4 Jenerik Fonksiyonlar ve Sınıflar

  • Jenerik fonksiyonlar
  • Jenerik sınıflar

Modül 4: Sınıflar ve Nesne Yönelimli Programlama (OOP)

4.1 Sınıflar ve Nesne Yaratma

  • Sınıfların Tanımlanması ve Sınıflar Türünden Nesnelerin Yaratılması
  • Yapıcı metotlar ve this kullanımı

4.2 Türetme İşlemleri ve Arayüzler

  • Kalıtım (inheritance)
  • Arayüzler (interfaces) ve implementasyon

4.3 Soyut Sınıflar ve  Arayüzler

  • Soyut sınıfların kullanımı
  • İnterface’lerin ayrıntı

4.4 Sınıfların Statik Metotları

  • Sınıfların Statik Metotları ve Statik Elemanları
  • Örnek uygulamalar

Modül 5: Modüllerle Çalışma

5.1 Modüllerin Tanımlaması ve Kullanma

  • Modüllerin avantajları
  • Modüllerin tanımlaması ve kullanması

5.2 Modüllerde Import ve Export işlemleri

  • Modüller arası veri alışverişi
  • Default ve ismlendirilmiş exports

5.3 Modül Yapılandırma ve Farklı Modül Sistemleri

  • CommonJS ve ES6 modül sistemleri
  • Uygulama senaryoları

Modül 6: Genel Tavsiyeler ve İleri Seviye Konular

6.1 TypeScript Projelerinde Genel Tavsiyeler

  • Kod düzeni ve yazım kuralları
  • Kaynak Kodun Dokümantasyonu ve Kod İçi açıklamalar

6.2 İleri Seviye Konular

  • Dekoratörler
  • Tür Korumaları ve Koşullu Türler
  • Yardımcı türler (Utility types) ve Eşleşmiş türler (mapped types)

 Modül 7: TypeScript ve Web Geliştirme Entegrasyonu

7.1 Webpack ve TypeScript

  • TypeScript projelerini yapılandırma
  • Webpack entegrasyonu

7.2 TypeScript ve React, Angular, Vue.js Entegrasyonu

  • TypeScript ile sık kullanılan framework’lerle çalışma
  • Uygulama senaryoları

Modül 8: Hata Ayıklama ve Performans İyileştirmeleri

8.1 Hata Ayıklama Stratejileri

  • TypeScript hata ayıklama araçları
  • Hata ayıklama stratejileri ve ipuçları

8.2 Performans İyileştirmeleri

  • TypeScript projelerinde performans analizi
  • Optimizasyon stratejileri

Modül 9: TypeScript Ekosistemi ve Araçlar

9.1 TypeScript Ekosistemi

  • Çok Kullanılan kütüphaneler ve araçlar
  • TypeScript Kullanan Topluluklar ve TypeScrşpt İçin Kaynaklar

9.2 TypeScript İçin Editörler ve IDE’ler

  • TypeScript ile uyumlu IDE’lerin kullanımı
  • VS Code, WebStorm gibi yaygın kullanılan editörler

Modül 10: Proje Geliştirme ve Bitirme

  1. Küçük Proje Geliştirme

– Öğrenilen bilgilerin uygulamaya dönüştürülmesi

– Gerçek dünya senaryolarına dayalı küçük bir proje

* Bu kurs C ve Sistem Programcıları Derneği ve Sistem Bilgisayar işbirliği ile düzenlenmektedir.

* Kurs ücretini sorunuz. 

Javascript ve Node.JS


Javascript ve Node.js Eğitimi (200 Saat)

Modül 1: Temel JavaScript

1.1 JavaScript Temelleri

  • Değişkenler, veri tipleri, operatörler
  • Koşullu ifadeler ve döngüler
  • Fonksiyonlar ve kapsam (scope)

1.2 Diziler ve Nesneler

  • Dizilerin ve nesnelerin kullanımı
  • Dizilerle işlemler ve dizi metodları
  • Nesneler ve özellikleri

1.3 Asenkron Programlama

  • Callback fonksiyonları
  • Promise’ler ve async/await
  • Olay tabanlı (Event Driven) programlama

1.4 JavaScript ES6+ Özellikleri

  • Arrow fonksiyonlar
  • Template literals
  • Destructuring assignment
  • Modüller

Modül 2: Node.js Temelleri

2.1 Node.js Girişi

  • js nedir ve neden kullanılır?
  • js’in avantajları
  • js kurulumu ve temel komutlar

2.2 Modül Sistemi

  • require ve exports
  • NPM (Node Package Manager) kullanımı
  • Paket yönetimi ve proje yapılandırması

2.3 HTTP Sunucu ve İstemcisi

  • Basit bir HTTP sunucu oluşturma
  • HTTP istemcisi ile API’larla iletişim

2.4 Dosya İşlemleri

  • Dosya okuma ve yazma işlemleri
  • Asenkron dosya operasyonları

2.5 Express.js ile Web Uygulamaları

  • js nedir?
  • Temel Express.js konseptleri
  • Middleware kavramı

Modül 3: Veritabanı Etkileşimi

3.1 MongoDB ve Mongoose

  • MongoDB temelleri
  • Mongoose kullanımı ve şemalar
  • Veritabanı ile etkileşim

3.2 SQL ve Sequelize

  • SQL temelleri
  • Sequelize ORM kullanımı
  • İlişkisel veritabanları

Modül 4: Asenkron Programlama Derinlemesine

4.1 Callback Hell ve Promise Chain

  • Callback Hell problemleri
  • Promise chain kullanımı

4.2 Async/Await ve Generators

  • Async/Await kullanımı
  • Generators ve iterables

4.3 Event Emitters

  • Olay yönetimi ve event emitters
  • Custom events oluşturma

Modül 5: Express.js İleri Seviye ve Güvenlik

5.1 Routing ve Middleware

  • Yönlendirme (Routing) stratejileri
  • Middleware konsepti ve kullanımı

5.2 JWT Authentication

  • JSON Web Token (JWT) kullanımı
  • Kullanıcı kimlik doğrulama stratejileri

5.3 Express.js Güvenlik Pratikleri

  • XSS ve CSRF saldırılarından korunma
  • Güvenli header kullanımı

Modül 6: Test ve Hata Ayıklama

6.1 Birim Testleri

  • Jest ve Mocha gibi test framework’leri
  • Test yazma stratejileri

6.2 Hata Ayıklama (Debugging)

  • js uygulamalarını hata ayıklama
  • Hata ayıklama stratejileri

Modül 7: Web Socket ve Real-Time Uygulamalar

7.1 WebSocket Protokolü

  • WebSocket nedir?
  • IO kullanımı

7.2 Real-Time Uygulama Geliştirme

  • Real-time haberleşme uygulamaları
  • Güvenlik önlemleri

Modül 8: Performance Optimization

8.1 Uygulama Performans Analizi

  • Profiling ve monitoring
  • Performans optimizasyonu stratejileri

8.2 Caching ve CDN

  • Veri önbellekleme stratejileri
  • CDN (Content Delivery Network) kullanımı

Modül 9: RESTful API Tasarımı ve GraphQL

9.1 RESTful API Kavramları

  • RESTful servislerin temel özellikleri
  • HTTP metotları ve status kodları

9.2 GraphQL Temelleri

  • GraphQL’in temel kavramları
  • GraphQL servisi oluşturma

Modül 10: Proje Geliştirme ve Bitirme

10.1 Büyük Ölçekli Bir Proje Geliştirme

– Öğrenilen bilgilerin pratiğe dönüştürülmesi

– Projeyi planlama ve geliştirme

* Bu kurs C ve Sistem Programcıları Derneği ve Sistem Bilgisayar işbirliği ile düzenlenmektedir.

* Kurs ücretini sorunuz. 

Python Programlama Dili ve Uygulamaları


Kursumuza ön kayıt yaptırmak için bu bağlantıyı kullanabilirsiniz.

  1. Kısım: Python Programlama Dili (230 Saat)

Genel Tanıtım

Python genel amaçlı, nesne yönelimli, fonksiyonel özellikleri olan, çok modelli ve nispeten kolay öğrenilebilen bir programlama dilidir. Özellikle veri analizinde ve çözümlenmesinde, yapay zeka ve makine öğrenmesinde tercih edilmektedir. Bu özellikleri nedeniyle Python Programlama Dilinin popülaritesi özellikle son yıllarda popülaritesi oldukça artmıştır.

Kursun temel özellikleri şöyle betimlenebilir:

Bu kurs Python Programlama Dilini ayrıntılı biçimde uygulamalı olarak öğretmeyi hedeflemektedir. Aynı zamanda bu kurs Yapay Zeka ve Makine Öğrenmesi kursu için de bir ön aşama olarak işlev görmektedir.
Kurs Python Programlama Dilini ayrıntılı biçimde ve uygulamalı olarak öğretme iddiasındadır.
Kurs Yapay Zeka ve Makine Öğrenmesi kursu için bir hazırlık kursu işlevini de görmektedir.

  • Temel Kavramlar

    • Programlama Dillerinin Tarihsel Gelişimi
    • Python Programlama Dilinin Tarihsel Gelişimi
    • Python Dili, Python Gerçekleştirimleri ve Python Dağıtımları
    • Python Programlama Dilinin Temel Özellikleri
    • Python Neden Son Dönemlerde Popülerlik Kazanmıştır?
    • Python Ortamının Kurulumu
    • Temel Bilgisayar Mimarisi
    • İşletim Sistemleri
    • Gömülü Sistemler
    • Çevirici Programlar (Translators), Derleyiciler (Compilers) ve Yorumlayıcılar (Interpreters)
    • IDE Kavramı
    • Mülkiyete Sahip Yazılımlar ve Açık Kaynak Kodlu Yazılımlar
    • Doğal Kodlu ve Ara Kodlu Çalışma Sistemleri
    • Dil Kavramı
    • Dillerde Sentaks ve Semantik
    • Bilgisayar Dilleri ve Programlama Dilleri
    • Programlama Dillerinin Sınıflandırılması
    • Programlama Dillerinin Sentakslarının Açıklanması İçin Kullanılan Notasyonlar
  • Python Programlama Diline Giriş

    • Komut Yorumlayıcı Ortamda (REPL) Çalışma
    • Atom (Token) Kavramı ve Atomların Sınıflandırılması
    • Boşluk Karakterleri (White Space)
    • Dinamik Tür Sisteminin Anlamı
    • Python’da Temel Veri Türleri
    • Değiştirilebilir (Mutable) ve Değiştirilemez (Immutable) Tür Kavramları
    • Python’da Değişkenlerin ve Nesnelerin Yaratılması
    • Python’da Sabitler
    • Adres Kavramı ve Nesnelerin Adresleri
    • Değişkenler ve Nesneler Arasındaki İlişki
    • Python’da Dinamik Tür Sisteminin Gerçekleştirilme Biçimi
    • Python Standart Kütüphanesi Nedir ve Nelerden Oluşmaktadır?
    • Fonksiyon ve Metot Kavramları
    • Built-in Fonksiyon ve Sınıf Kavramları
    • Operatör Kavramı, Operatörler Arasındaki Öncelik İlişkileri
    • Python’da Operatörler
    • Tür Dönüştürmeleri
    • input ve print Fonksiyonlarının Ayrıntıları
    • Python Programlarının Yazılması ve Çalıştırılması
  • Python’da Temel Veri Yapıları

    • Dolaşılabilir (Iterable) Nesne Kavramı
    • Range Fonksiyonu
    • Listeler
    • Listeler Üzerinde İşlemler
    • Listeler Üzerinde Dilimleme İşlemleri (List Slicing)
    • Listelerin Açılması (List Unpacking)
    • Listelerle Çok Boyutlu Dizilerin Oluşturulması
    • Demetler (Tuples)
    • Demetler Üzerinde İşlemler
    • Demetlerin Açılması (Tuple Unpacking)
    • Kümeler (Sets)
    • Kümeler Üzerinde İşlemler
    • Değiştirilemez Kümeler (Frozen Sets)
    • Sözlükler (Dictionaries)
    • Sözlükler Üzerinde İşlemler
    • String’ler
    • String’ler Üzerinde İşlemler
    • String’lerin Dilimlenmesi
    • len Fonksiyonu ve in Opereratörünün İşlevleri
  • Python’da Deyimler (Statements)

    • Farklı Türlerin Birbirleriyle İşleme Sokulması
    • Satırların Girinti Düzeyleri (Indent Level)
    • Deyim Kavramı ve Deyimlerin Sınıflandırılması
    • İfadesel Deyimler (Expression Statements)
    • Bileşik Deyimler (Compound Statements)
    • Suite Kavramı
    • If Deyimi
    • While Döngüleri
    • For Döngüleri
    • Break ve continue Deyimleri
    • Koşul Operatörü
    • Pass Deyimi
  • Fonksiyonların Tanımlanması ve Fonksiyonlarla İşlemler

    • Fonksiyonların Tanımlanması ve Fonksiyon Nesneleri
    • Fonksiyon İsimlerinin Anlamı
    • Fonksiyonların Parametre Değişkenleri
    • Fonksiyonların *’lı ve **’lı Parametreleri
    • Fonksiyon Çağrılarında Argümanların Kullanımı
    • *’lı **’lı Argümanlar
    • Fonksiyon Parametrelerinde Tür Kontrolü
    • İç İçe Fonksiyon Tanımlamaları
  • Modüller

    • Modüllerin Oluşturulması
    • Modüllerin import Edilmesi
    • Modül İsimlerinin Anlamı
    • Sys.path Listesinin Anlamı
    • Python Programlarında Çalışma Dizinlerinin Değiştirilmesi
    • Modülün import Edilmesiyle Çalıştırılması Arasındaki Farklar
  • Tamamlayıcı Konular

    • Python’da Rastgele Sayıların Elde Edilmesi
    • Değişkenlerin Faaliyet Alanları (Scope)
    • Değişkenlerin Ömürleri
    • Enumerate, map, filter ve zip Fonksiyonları
    • Python Yorumlayıcısında İsim Arama Mekanizması
    • Bytes ve bytearray Türleri
    • Permütasyon ve Kombinasyon İşlemleri
  • İçlemler (Comprehensions)

    • İçlemlerin Genel Sentaks Biçimleri
    • Liste İçlemleri (List Comprehensions)
    • Küme İçlemleri (Set Comprehensions)
    • Sözlük İçlemleri (Dictionary Comprehensions)
    • İçlemler nerede Kullanılır ve İçlemlere Neden Gereksinim Duyulmaktadır?
  • Sınıflar

    • Nesne Yönelimli Programlama Modeli ve Sınıf Kavramı
    • Sınıfların Tanımlanması
    • Sınıflar Türünden Nesnelerin Yaratılması
    • Sınıf Değişkenleri
    • Metotların Tanımlanması ve self Parametresinin Anlamı
    • Sınıfların Dunder (Başında ve Sonunda İki Alt Tire Bulunan) Metotları
    • Sınıfların _new_ ve _init_ Metotları
    • Python Standart Kütüphanesindeki Yardımcı Sınıflarla İlgili Alıştırmalar
    • Sınıfların Öznitelikleri (Class Attributes)
    • Sınıfların Örnek Öznitelikleri (Instance Attributes)
    • Sınıf İsimlerinin Anlamı
    • Nesne Yönelimli Programlama Tekniğinde Sınıflar Arasındaki İlişki Biçimleri
    • Sınıflarda Türetme İşlemleri (Inheritance)
    • Çoklu Türetmeler (Multiple Inheritance)
    • Türetme Durumlarında Taban Sınıfın _init_ Metodunun Çağrılması
    • Super Fonksiyonu
    • Sınıflarda Kapsülleme (Encapsulation)
    • Çokbiçimlilik (Polymorphism)
    • Sınıfların _str_ ve _repr_ Metotları
    • Python’da Çöp Toplayıcı Mekanizma
    • Deterministik Çöp Toplama ve Sınıfların _del_ Metotları
    • Operatör Metotları
    • Sınıfların Statik Metotları
    • Sınıfların Sınıf Metotları
    • Sınıflardaki Diğer Özel Dunder Metotları
    • Dolaşılabilir (Irterable) Sınıfların Oluşturulması
    • Property Kavramı ve Property Kullanımı
    • Betimleyiciler
    • Sınıfların _get_, _set_ ve _delete_ Metotları
  • Dekoratörler

    • Dekoratörlerin Anlamı
    • Fonksiyon Dekoratörleri
    • Sınıf Dekoratörleri
    • Önemli sınıf Dekaratörleri
  • Exception Mekanizması

    • Python’da Exception Mekanizmasının Kullanımı
    • Exception’ların oluşturulması ve yakalanması
    • Exception Sınıflarının Yazılması
    • Çok Karşılaşılan Exception Sınıfları
    • With deyimi
  • Python’da Dosya İşlemleri

    • Dosya İşlemleri
    • Dosyaların Açılması ve Kapatılması
    • Dosyalarda Yazma ve Okuma İşlemleri
    • Text ve Binary Dosyalar
    • Text Dosyalarda Karakter Kodlaması (Character Encoding)
    • Karakter Kodlama Dönüştürmeleri
  • Üretici Fonksiyonlar ve Lambda İfadeleri

    • Üretici Fonksiyon (Generators) Kavramı
    • Üretici Fonksiyonların Tanımlanması ve Kullanılması
    • Lambda İfadeleri
  • Diğer Önemli Built-In Fonksiyonlar

    • Eval Fonksiyonu
    • Exec Fonksiyonu
    • Compiler Fonksiyonu
    • Property Fonksiyonu
    • Locals Fonksiyonu
  • Python’da Paketler (Packages)

    • Paket Kavramı
    • Paketlerin Oluşturulması ve import Edilmesi
    • Paketlerdeki _init_.py Dosyasının Anlamı
    • İç İçe Paketlerin Oluşturulması
    • Paket Yönetimi
  1. Kısım: Python Uygulamaları (230 Saat)
  • Genel Amaçlı Bazı İşlemlerin Gerçekleştirilmesi

    • Standart Kütüphanede Tarih ve Zaman İşlemleri Yapan Fonksiyonların ve Sınıfların Kullanımı
    • Dizin ve Dosyalar Üzerinde İşlemler Yapan Fonksiyonların ve Sınıfların Kullanımı
    • İşletim Sistemi İle İlgili Aşağı Seviyeli Önemli Bazı İşlemlerin Yapılması
    • Python’da Log’lama İşlemleri
    • Python’da Debugger Kullanımı
    • Zaman Ölçme İşlemleri ve Profiling
    • Sisteme İlişkin Önemli Bilgilerin Elde Edilmesi ve Değiştirilmesi
    • Çöp Toplayıcı Mekanizmanın Ayrıntıları
    • Nesnelerin Seri Hale Getirilmesi
    • Programların Komut Satırı Argümanları
  • Python’da Veritabanı İşlemleri

    • Veritabanı Yönetim Sistemleri (VTYS)
    • SqLite, MySQL ve SqlServer VTYS’leri Hakkında Temel Bilgiler
    • İlişkisel Veritabanları
    • Temel SQL Komutları
    • Python’da VTSY’e Bağlanma
    • VTYS’lere SQL Komutlarının Gönderilmesi
    • VTYS’lerle Sorgulama İşlemleri
    • Python’da Anahtar Değer Temelli DBM Veritabanı Kullanımı
  • Python’da Thread Uygulamaları

    • Thread Kavramı
    • Thread’lerin Yaratılması ve Sonlanması
    • Thread’lerle İlgili Temel İşlemler
    • Thread’lerin Stack’leri
    • Thread’lerin Bloke Olması
    • Thread Senkronizasyonu
    • Lock (Mutex) Mekanizması
    • Semaphore Nesnelerinin Kullanımı
    • Tipik Senkronizasyon Problemlerinin Ele Alınması
    • Senkronize Kuyruk Nesneleri
    • Python’da Paralel Programlama
    • Prosesler Arası Haberleşme Kavramı
    • Paylaşılan Bellek Alanlarının Kullanımı
    • Boru Mekanizmasının Kullanımı
  • Python’da GUI Uygulamaları

    • GUI Ortamlarında Mesaj Tabanlı Çalışma Modeli
    • PyQt Kütüphanesinin Kullanılması
    • Tkinter Kütüphanesinin Kullanılması
  • Python’da Proseslerarası Haberleşme ve Network Ağ Haberleşmeleri

    • IP Protokol Ailesi
    • Python’da Soket Programlama
    • Client-Server Çalışma Modeli
    • TCP/IP Uygulamaları
    • UDP/IP Uygulamaları
    • E-Posta Alma ve Gönderme
    • FTP İşlemleri
    • Dağıtık Uygulamaların Temelleri
  • Çeşitli Dosya Formatları Üzerinde İşlemler

    • Dosya Sıkıştırma ve Açma İşlemleri
    • CSV Dosyalarıyla ve Konfigürasyon Dosyalarıyla İşlemler
    • Temel XML İşlemleri
    • Temel HTML Parse İşlemleri
  • Numpy Kütüphanesinin Kullanımı

    • Numpy Kütüphanesinde Temel İşlemler
    • Numpy Dizileri İle Vektörel İşlemler
    • NumPy Dizilerinde İndeksleme ve Dilimleme
    • NumPy Kütüphanesinde Vektörel İşlemler Yapan Fonksiyonlar
    • NumPy ile Lineer Cebir İşlemleri
    • NumPy Dosya İşlemleri
    • İleri Düzey Numpy İşlemleri
  • Sembolik Matemetiksel İşlemler ve SymPy Kütüphanesinin Kullanımı

    • SymPy Kütüphanesinin Tanıtımı
    • SymPy’da İfadelerin Oluşturulması ve İfade Ağaçları
    • İfadelerin Sadeleştirilmesi
    • İfadelerin Açılması
    • İfadelerin Değerlerinin Elde Edilmesi
    • İfadeler Üzerinde Matematiksel İşlemler
  • Python’da Grafik Çizimleri ve PyPlot Kütüphanesinin Kullanımı

    • Grafik Çizimi İle İlgili Temel Nesneler
    • Grafiklerin Çizdirilmesi
    • Çizim Nesnelerine İlişkin Ayrıntılar
    • Çizgi Grafikleri, Çubuk Grafikleri, Histogram’lar, Pasta Grafikleri
  • Pandas Kütüphanesinin Kullanımı

    • Pandas Kütüphanesinin Amacı
    • Seriler Üzerinde İşlemler
    • Seriler Üzerinde İndeksleme
    • Seriler Üzerinde Dilimleme
    • DataFrame Nesneleri
    • DaraFrame Üzerinde Satır ve Sütun Seçme İşlemleri
    • DataFrame’ Sütun Ekleme ve Silme
    • DataFrame Üzerinde Aritmetik İşlemler
    • CSV Dosyalarının DataFrame Olarak Okunması
    • Eksik Veriler Üzerinde İşlemler
    • Verilerin Gruplanması ve Birleştirilmesi
    • Pandas’ta Verilerin Görüntülenmesi
  • Özel Bazı Konular

    • Şifreleme İşlemleri
    • Pyton’da Yazılım Test İşlemleri
    • Düzenli İfadelerle İşlemler (Regular Expressions)
    • Python’dan C ve C++ Kodlarının Çağrılması

Kursumuza ön kayıt yaptırmak için bu bağlantıyı kullanabilirsiniz.

* Bu kurs C ve Sistem Programcıları Derneği ve Sistem Bilgisayar işbirliği ile düzenlenmektedir.

* Kurs ücreti duyuru sayfasında belirtilmektedir.

 

C# ve ASP.NET Core MVC


Kursumuza ön kayıt yaptırmak için bu bağlantıyı kullanabilirsiniz.

C# ve ASP.NET Core MVC

Açıklama: Bu kurs içerik bakımından iki ana kısma ayrılmıştır; C# programlama dili ve ASP.NET MVC Core framework’ü.

İlk kısımda C# dilinin sentaks kuralları, nesne yönelimli programlama ve .NET kütüphanesinin önemli sınıfları ele alınmaktadır.

İkinci kısım ise ASP.NET MVC Core isimli framework ile modern ve platform bağımsız web uygulamaları/servislerinin geliştirilmesine odaklıdır. Bu kısımda ASP.NET Core haricinde (SOLID, UML, Pattern, Idiom, AntiPattern, …) gibi pek çok önemli konu ve teknolojiye de (Entity Framework, SQL Server, RabbitMQ, Git, …) değinilmekte yanı sıra pek çok örnek uygulama geliştirilmektedir.

Kısım 1 (.NET ve C#’a Giriş)

  • .NET ortamına ilişkin temel kavramlar (JIT, MSIL, CLR, CTS, CLS…)
  • Platform bağımsız çalışma olgusu
  • Çevirici programlar, derleyiciler yorumlayıcılar
  • .NET ortamının aşağı seviyede incelenmesi ve Java ile karşılaştırılması
  • Atom kavramı
  • Console sınıfının etkin kullanımı

.NET Tür Sistemi

  • Değişkenler, Sabitler
  • Faaliyet alanı ve Ömür kavramı
  • Type Inference

Metotlar/Fonksiyonlar

  • Parametre ve Argüman kavramları
  • ref/out parametreler
  • Default argüman alan metotlar
  • Variadic (değişken sayıda parametre alan) metotlar
  • İsimlendirilmiş parametreler
  • Overloading

Operatörler

Akış Kontrol deyimleri

  • if ve switch deyimleri
  • Koşul Operatörü
  • while ve do while döngü deyimleri
  • for ve foreach döngü deyimleri
  • break ve continue deyimleri

Tür dönüştürmeleri

Nesne Yönelimli Programlama (OOP) Paradigması

  • Sınıf ve nesne kavramları
  • Referans türleri ve değer türleri
  • Referans (adres) kavramı
  • new operatörü
  • Sınıfın static olmayan veri elemanlarına erişim ve nokta operatörü
  • Sınıfın static olmayan veri elemanlarının varsayılan değerleri
  • Referans parametreli metotlar
  • Referans geri dönüş değerli metotlar
  • Sınıfın static veri elemanları
  • Sınıfın non-static ve static metotları
  • Sınıfın non-static metotları içerisinde non-static ve static elemanlara doğrudan erişim durumu
  • Sınıfın static metotları içerisinde non-static ve static elemanlara doğrudan erişim durumu

Sınıfların başlangıç metotları (constructors)

  • Nesne oluşturulması adımları
  • Sınıfın varsayılan (default) başlangıç metodu
  • Başlangıç metotlarının overload edilmesi
  • Birincil başlangıç metotları (primary constructor’s)

İsim alanları (Namespace)

  • Paketleme ve granülasyon kavramları
  • Farklı isim alanlarındaki sınıflara erişim
  • İç içe isim alanı bildirimleri
  • using anahtar sözcüğü

İsim arama

  • Niteliksiz (unqualified) isim arama
  • Nitelikli (qualified) isim arama

Diziler (Arrays) ve uygulamalar

  • Dizi referansları
  • Diziye ilişkin nesnelerin bellekteki durumu
  • Dizi elemanlarına erişim
  • Dizilere ilk değer verilmesi
  • Dizilerin metotlara geçirilmesi: dizi referansı parametreli metotlar
  • Dizi referansı döndüren metotlar
  • Sıralama algoritmaları: (bubble sort, selection sort, quick sort)
  • char türden diziler
  • char türden diziler ve String sınıfı
  • Referans dizileri
  • Referans dizilerine ilkdeğer verilmesi
  • String türden diziler
  • Dizi dizileri
  • Dizi dizilerinin çok boyutlu dizi gibi kullanılması
  • Dizi dizilerine ilk değer verilmesi

Sınıflarda temel erişim kuralları

  • public erişimcisi
  • private erişimcisi
  • protected erişimcisi
  • internal erişimcisi
  • file erişimcisi
  • Başlangıç metodunun private, protected ya da internal olması durumu
  • Singleton ve Factory tasarım kalıpları
  • Encapsulation kavramı, Property ve AutoProperty’ler
  • Object Initializer kullanımı

Enum’lar

  • enum sabitleri
  • enum sınıfların sabit dışındaki elemanları
  • enum sınıfların başlangıç metotları (constructor)
  • enum’ların karşılaştırılması
  • enum’ların kullanımı

Sınıflar arası ilişkiler

  • Association, Composition, Aggregation, Inheritance, Dependency
  • UML modelleme diline giriş

Türetme (inheritance)

  • Base class (taban sınıf) ve derived class (türemiş sınıf) kavramları
  • Başlangıç metodu içerisinde taban sınıfın başlangıç metodunun çağrılması
  • Başlangıç metodu içerisinde taban sınıfa ait istenilen bir başlangıç metodunun çağrılması
  • Başlangıç metodu içerisinde başka bir başlangıç metodunun çağrılması
  • protected bölümün anlamı
  • Object sınıfı

Taban sınıf ve türemiş sınıf arasındaki dönüşümler

  • Yukarıya doğru dönüşüm (upcasting)
  • Aşağıya doğru dönüşüm (down-casting)
  • is opetörü
  • Otomatik kutulama (auto-boxing) ve otomatik kutuyu açma (auto-unboxing)
  • sealed sınıflar
  • this referansının anlamı ve kullanımı
  • null referans kavramı

Çöp Toplayıcı (garbage collector)

  • Çöp toplayıcı’nın çalışma biçimi
  • Referans sayma, GC Sınıfı
  • IDisposable ve using anahtar sözcüğü ile Dispose kalıbının idiomatik uygulaması

Önemli Veri Yapılarına İlişkin Sınıflar

  • ArrayList, List
  • HashTable, Dictionary, SortedList
  • Tupple

Çok biçimlilik (Polymorphism)

  • Sanal metotlar ve Overriding
  • base referansı
  • Override edilen metot içerisinde taban sınıfın aynı metodunun çağrılması (augmentation)
  • Override edilen metodun erişim belirleyicisinin erişim anlamında yükseltilmesi
  • sealed metotlar

Soyut sınıflar ve metotlar (abstract classes and methods)

  • Soyut sınıf ve metotların anlamı
  • Soyut metotların override edilmesi
  • Soyut metotların override edilmemesi durumu
  • Soyut sınıfların taban sınıf referansı olarak kullanılması
  • Soyut sınıfların başlangıç metotları

Exception Handling

  • Exception kavramı kullanımı
  • throw anahtar sözcüğü ve bir exception nesnesinin fırlatılması
  • Try/Catch/Finally mekanizması
  • Yeniden fırlatma (rethrow)
  • İçiçe try bloklarının bulunması durumu
  • Özgün Exception sınıfları
  • checked ve unchecked exception sınıfları
  • Önemli exception sınıfları

Arayüzler (Interface’s)

  • Bir sınıfın desteklediği arayüzler ve metotların override edilmesi
  • Arayüzler ile abstract sınıflar arasındaki farklar
  • Arayüzler arası tür dönüştürme ayrıntıları
  • Sıkça kullanılan bazı arayüzler

Generic’ler ile Türden Bağımsız İşlemler

  • Generic sınıflar ve metotlar
  • Generic sınıflarda türetme işlemleri
  • Generic sınıflarda new operatörü ile <> (diamond syntax) kullanımı
  • Generic arayüzler
  • Kısıtlamalar (constraint’s)
  • Generic sınıflarda alt sınır ve üst sınır belirlenmesi (invariant, covariant ve contra-variant)

Extension metotlar
Delegate (Temsilci) ve Event’ler
Lambda İfadeleri
Thread ve Process Sınıfları
Reflection ve Metadata kavramları
Attribute sınıfları
Bit seviyesinde işlemler ve ilişkili operatörler
Dinamik kütüphanelerin (DLL) oluşturulması ve kullanılması
Dosya işlemleri
ADO.NET ile VeriTabanı İşlemleri
Asenkron Çalışma ve TPL (Task Parallel Library)

Kısım 2 (ASP.NET MVC Core ve C# ile Web Uygulamaları Geliştirmek)

Middleware kavramı
Request ve Response Manipülasyonları
Dependency Inversion, Inversion Of Control
Dependency Injection kavramı
Katmanlı Mimarı Kullanarak Uygulama Geliştirme
Repository, UnitOfWork kalıpları
Katmanlı mimaride exception handling
Razor sentaksı
MVC (Model ViewController) kalıbı
Razor Engine ve Razor sentaksı
Dinamik tür sistemi ve Expando Nesneler
Transfer Data (ViewBag, ViewData, TempData)
Tag Helper’lar
Validasyon
Blazor Framework
Entity Framework Core ile veritabanı işlemleri
Container ve Docker Kavramları
Container ortamında ASP.NET Core uygulamalarının çalıştırılması
ASPNET Core Güvenlik
Authentication, Authorization, OAuth
Javascript programlama dili
WebAPI ile Rest Servislerin Yazılması
JWT (Json Web Token)
CQRS
Mikroservis Mimarisi
LibMan ve Npm Paket Yönetim Sistemleri
Cookie (Çerezler)
Session Mekanizması
Onion Architecture
RabbitMQ, MSMQ gibi mesaj kuyruklama altyapılarının kullanımı
Ve diğerleri..

Kursumuza ön kayıt yaptırmak için bu bağlantıyı kullanabilirsiniz.

Kurs ücreti duyuru sayfasında belirtilmektedir.

Bu kurs C ve Sistem Programcıları Derneği ve Sistem Bilgisayar işbirliği ile düzenlenmektedir.

Gömülü Linux Sistemleri – Geliştirme ve Programlama


Kursumuza ön kayıt yaptırmak için bu bağlantıyı kullanabilirsiniz.

Online Gömülü Linux Sistemleri – Geliştirme ve Programlama Kursu (320 saat)

  • Giriş ve Temel Bilgiler

    • Gömülü Sistemlere Genel Bir Bakış
    • Gömülü Sistemlerin Karakteristik Özellikleri
    • Bir Kaynak Yöneticisi Olarak İşletim Sistemi
    • İşletim Sistemlerinin Alt Sistemleri
    • Linux Sistemlerinin Tarhihsel Gelişimi
    • Gömülü Linux Sistemi Ne Anlama Gelmektedir?
    • Gömülü Linux Sistemlerinin Masaüstü Linux Sistemlerinden Farklılıklları
    • Mikroişlemci, Mikrodenetleyici, SOC (System on Chip) ve SBC (Single Board Computer) Kavramları
    • Gömülü Linux Sistemleri için Kullanılan Donanımlar, Raspberry Pi, Beaglebone ve Diğerleri
    • Gömülü Sistemlerin Çevre Birimleri
    • Gömülü Sistemlerde Bellek Birimleri
    • Gömülü Sistemler İçin Emülatörler ve QEMU
  • Single Board Bilgisayarlar

    • Single Board Bilgisayar Nedir?
    • Yaygın Kullanılan Single Board Bilgisayarlar
    • Single Board Bilgisayarların Uygulama Alanları
    • Single Board Bilgisayarların Sınırlılıkları ve Handikapları
  • Raspberry Pi Donanımının Özellikleri

    • Raspberry Pi Donanımındaki CPU, GPU ve RAM Özellikleri
    • ARM İşlemcilerinin Özellikleri
    • ARM işlemcilerinde Cortex Türleri ve Komut Kümeleri Çeşitliliği
    • SD Kart Arabirimi
    • GPIO Arabirimi
    • I2C ve SPI Veri Yolları
    • USB Arabirimi
    • Video/Audio Özellikleri
    • Ethernet ve Wireless Birimleri
    • HDMI ile Bağlantı
    • Güç Kaynağının Olması Gereken Özellikleri ve Soğutucu Gereksinimi
    • Raspberry Pi Donanımında Kullanılan Soketler ve Kablolar
  • BeagleBone Black Donanımının Özellikleri

    • BeagleBone Black Donanımındaki CPU, GPU ve RAM Özellikleri
    • SD Kart Arabirimi
    • GPIO Arabirimi
    • I2C ve SPI Veri Yolları
    • USB Arabirimi
    • Video/Audio Özellikleri
    • Ethernet ve Wireless Birimleri
    • HDMI ile Bağlantı
    • Güç Kaynağının Olması Gereken Özellikleri ve Soğutucu Gereksinimi
    • BeagleBone Donanımında Kullanılan Soketler ve Kablolar
  • Gömülü Sistemlere Linux İşletim Sisteminin Yüklenmesi ve Kullanıma Hazır Hale Getirilmesi

    • Uygun Linux Dağıtımının Belirlenmesi
    • Gömülü Linux Sistemleri İçin Kullanılan Dağıtımlar ve Özellikleri
    • Raspberry Pi Donanımlarında Kullanılan Yaygın Dağıtımlar
    • Linux Dağıtımlarının Gömülü Sisteme Yüklenmesi
    • Diskin Bölümlendirilmesi ve Buna İlişkin Komutlar ve Utility Programlar
    • Toolchain Kavramı
    • Doğal (Native) ve Çapraz (Cross) Toolchain’ler
    • Gömülü Sistemler İçin Çapraz Derleyiciler (Cross Compilers)
    • Ethernet ve Wireless Network Bağlantılarının Sağlanması
  • Linux Sistemlerinde Dosya Sistemleri

    • ext2, ext3, ext4, xfs Dosya Sistemlerinin Genel Özellikleri
    • Dosya Sistemlerinin Mount Edilmesi
    • Dosya Sistemlerindeki Temel Dizinler ve Anlamları
    • Dosya Bloklerı, i-node Kavramı
    • Linux’ta Kullanılan Dosya Sistemlerinin Aşağı Seviyeli Tasarımları
    • Dosya Sistemlerine Yönelik Aygıt Sürücüler
    • Dosya Sistemi İle İlgili Komutlar ve Utility Programlar
    • tmpfs ve ramfs Dosya Sistemleri ve Linux’ta Ramdisk Kullanımı
  • Ekran ve Görüntü Birimlerinin Programlanması

    • Terminal Aygıt Sürücüleri
    • Terminal Aygıt Sürücülerinin Programlanması
    • X Window Sistemleri
    • X Window Sistemlerinin Tasarımı ve Programlanmasıne İlişkin Temel Bilgiler
    • Qt Framework hakkında Temel Bilgiler ve Basit Örnekler
    • Framebuffer Kavramı ve Kullanım Alanları
    • Framebuffer Aygıt Sürücüleri
    • Linux’ta Framebuffer Kütüphanesinin Kullanımı
  • Çevre Birimlerinin Programlanması

    • USB Arabiriminin Özellikleri
    • libusb Kütüphanesinin Kullanımı
    • Raspberry Pi ve BeagleBone Donanımlarında GPIO Uçlarının Kullanımı
    • GPIO Uçlarının Programlanmasına İlişkin Örnekler
    • I2C ve SPI Arayüzlerinin Kullanılması
    • UART Kullanımı
    • Raspberry Pi ve BeagleBone Black İçin Tasarlanmış GPIO Uçlarını Kullanan Hazır Kartlar (Add-on Boards)
    • Sensörlerin İşlevleri ve Sensörlerin Kullanımına İlişkin Örnekler
    • LCD Kullanımına İlişkin Örnekler
  • Linux Çekirdeğinin Konfigüre Edilmesi ve Derlenmesi

    • Konfigürasyon İşleminin Anlamı
    • Önemli Konfigürasyon Parametreleri
    • Kernel Modüllerinin Çekirdeğe Eklenmesi
    • Kernel Modüllerinin Bağımlılıkları
    • Kernel Modülleri ile İlgili Araçlar, Komutlar ve Utility Programlar
    • GNU Make Aracının Temel Düzeyde Kullanımı ve Make Dosyalarının Oluşturulması
    • Linux Çekirdeğinin Derlenmesi
  • Gömülü Linux Sistemlerinde Kullanılan Ön Yükleyici (Boot Loader) Programlar

    • Ön Yükleyici Kavramı ve Ön Yükleyicileri İşlevleri
    • Birinci ve İkinci Düzey Ön Yükleyiciler
    • Raspberry Pi ve BeagleBone Black Ön Yükleyici Mekanizması
    • U-Boot (Das U-Boot) Önyükleyicisinin Genel Yapısı ve Kullanımı
  • Linux Sistemlerinin Başlatılma Süreci

    • Masaüstü ve Gömülü Sistemlerde Linux Sistemlerinin Başlatılması
    • Kernel Konfigürasyon Parametrelerinin Boot Sürecindeki Etkileri
    • Linux Çekirdeğinin Yüklenmesine İlişkin Aşamalar
    • Boot Süreci Sırasında Dosya Sistemlerinin Mount Edilmesi
    • Boot Sürecinde Etkili Olan Script Dosyaları
  • Linux Sistemlerinde Kullanılan Init Paketleri ve Systemd Init Paketinin Kullanımı

    • Init Paketlerinin İşlevi
    • SysVInit ve Upstart Paketleri Hakkında Temel Bilgiler
    • Systemd Paketinin Kurulumu
    • Systemd Paketinin İşlevleri
    • Daemon Kavramı
    • Unit Dosyalarının Oluşturulması ve Servislerin Yönetilmesi
    • Systemd İle Servis Yönetiminin Ayrıntıları
    • Systemd Paketine İlişkin Komutların Kullanımı
  • Aygıt Ağacı (Device Tree)

    • Aygıt Ağacı Nedir ve Ne Amaçla Kullanılmaktadır?
    • Aygıt Ağaçlarına Neden Gereksinim Duyulmuştur?
    • Aygıt Ağaçlarının Genel Yapısı
    • Agıt Ağaçlarının Oluşturulması
    • Aygıt Ağaçlarının Derlenmesi ve Tersine Derlenmesi (Decompile Edilmesi)
    • Aygıt Ağaçları ve Boot Süreci
    • Aygıt Ağaçları ve Aygıt Dosyaları
    • Sistem Çalışırken Aygıt Konfigürasyonlarının Ayarlanması
  • Yocto Projesi

    • Yocto Projesi Nedir?
    • Poky ve bitbake Kavramları
    • Katman (Layer) Kavramı ve Kullanımı
    • Image Kavramı ve Kullanımı
    • Image İsimleri
    • Recipe Kavramı ve Kullanımı
    • Log Mekanizması
    • Build İşlemi
  • Buildroot Projesi

    • Buildroot Projesi Nedir?
    • Buildroot Çalışma Mekanizması
    • Buildroot Konfigürasyonu
    • Sistemin İsteğe Göre Özelleştirilmesi (Customization)
    • Buildroot’a Yeni Paketlerin Eklenmesi
    • Build İşlemi
  • Linux Sistemlerinde Kullanılan Log Sistemi

    • log Mesajlarının User Mod ve Kernel Modda Oluşturulması
    • syslod Daemon Programın İşlevi
    • Loglamanın User Modda Programlama Yoluyla Yapılması
  • Linux Daemon (Servis) Programlarının Yazımı

    • Daemon Programların Anlamı
    • Daemon Programların Oluşturulması ve Devreye Sokulması
    • Daemon Programların Konfigüre Edilmesi
    • User Mod ve Kernel Mod Daemon Kavramı
    • Linux Kernel İçerisindeki Kernel Mod Daemon’lar ve İşlevleri
  • Procfs ve sysfs Dosya Sistemlerinin Kullanımı

    • proc Dosya Sisteminin Genel Yapısı ve Kullanımı
    • sys Dosya sisteminin Genel Yapısı ve Kullanımı
  • Linux Aygıt Sürücülerinin Yazımı

    • Aygıt Sürücülerinin Anlamı
    • Linux Aygıt Sürücü Mimarisinin Tanıtımı
    • Linux Çekirdek Modüllerinin Yazımı
    • Çekirdek Modüllerinin Yüklenmesi ve Boşaltılması
    • Karakter Aygıt Sürücülerinin Yazımı
    • Aygıt Sürücülerde Senkronizasyon İşlemleri
    • Aygıt Sürücülerde Bekleme Kuyruklarının Yaratılması ve Bloke İşlemlerinin Sağlanması
    • Aygıt Sürücülerde Bellek Tahsisatları
    • Aygıt Sürücülerin IO Portlarını Kullanması
    • Aygıt Sürücülerde Kesme İşlemlerinin Yönetilmesi
    • Blok Aygıt Sürücülerinin Yazımı
    • Blok Aygıt Sürücülerinde Bellek Haritalaması ve DMA Kullanımı
    • USB Aygıt Sürücüleri
    • Kernel Thread’lerin Yaratılması ve Kullanımı

Kursumuza ön kayıt yaptırmak için bu bağlantıyı kullanabilirsiniz.

Kurs ücreti duyuru sayfasında belirtilmektedir.

Bu kurs C ve Sistem Programcıları Derneği ve Sistem Bilgisayar işbirliği ile düzenlenmektedir.

Rust Programlama Dili


Rust Programlama Dili

Kursumuza ön kayıt yaptırmak için bu bağlantıyı kullanabilirsiniz.

Kursun süresi: 250 Saat
Eğitmen : Kaan Aslan

Ön Koşul: Daha önce herhangi bir programlama dilinde uygulamalı çalışma yapmış olmak ya da C ve Sistem Programcıları Derneğinde “Programlamaya Giriş” kursuna katılmış olmak.

Kursumuza ön kayıt yaptırmak için bu bağlantıyı kullanabilirsiniz.

 

  * Kurs ücreti duyuru sayfasında belirtilmektedir.

Bu kurs C ve Sistem Programcıları Derneği ve Sistem Bilgisayar işbirliği ile düzenlenmektedir.

Go Programlama Dili ve Uygulamaları


Temel kavramlar

  • Çevirici programlar, derleyiciler yorumlayıcılar
  • İşletim Sistemleri
  • IDE (Integrated Development Environment) programları
  • Temel sayı sistemleri
  • Go programlama dili hakkında temel bilgiler
  • Go ortamının kurulması
  • Hello, World programı
  • Fonksiyon bildirimi
  • Fonksiyonların çağrılması

Tür kavramı

  • Go’da temel türler
  • Tamsayı türleri, gerçek sayı türleri, char türü ve boolean türü
  • Değişkenler ve faaliyet alanı

Fonksiyonlar

  • Fonksiyonların geri dönüş değerleri
  • return deyimi
  • Fonksiyonların parametre değişkenleri
  • Matematiksel işlem yapan yararlı metotlar

Sabitler

  • Sabit kavramı
  • Sabitlerin türleri
  • Tamsayı sabitleri
  • Gerçek sayı sabitleri
  • bool türden sabitleri
  • Karakter sabitleri
  • Escape sequence karakterler
  • Tamsayı sabitlerinin hexadecimal, binary ve octal gösterilişleri
  • Gerçek sayı sabitlerinin bilimsel gösterilişi
  • Sabit bildiriminde alttire karakterinin kullanımı

Temel Operatörler

  • Operatörlerin sınıflandırılması
  • Operatör önceliği
  • Aritmetik Operatörler
  • Karşılaştırma operatörleri
  • Mantıksal operatörler
  • Mantıksal operatörlerin kısa devre davranışları
  • Atama operatörü
  • İşlemli atama operatörleri

Kontrol deyimleri

  • if deyimi
  • for döngü deyimi
  • break ve continue deyimleri
  • switch deyimi
  • select deyimi
  • Örnek programlar

Tür dönüştürmeleri

  • Farklı türlerin birbirine atanması
  • İşlem öncesi otomatik tür dönüşümleri
  • Tür dönüştürme operatörü

Paketler

  • Paket kavramı
  • Paket oluşturma
  • Örnek programlar

Adres kavramı

  • Adres kavramı
  • Stack ve heap alanları
  • Ömür (storage duration) kavramı

Göstericiler (Pointers)

  • Gösterici kavramı
  • Gösterici kavramı
  • Gösterici parametreli fonksiyonlar
  • call by value ve call by value kavramları
  • Göstericiye geri dönen fonksiyonlar
  • Göstericiyi gösteren göstericiler (pointer to pointrs)
  • null adres kavramı ve nil sabiti
  • nil sabitinin (null adresin) kullanını
  • Örnek programlar

Yapılar

  • Yapı bildirimleri
  • Yapı elemanlarına erişim
  • Yapı türünden göstericiler
  • Örnek yararlı yapılar

Rassal sayı üretimi

  • Rassal sayı üretimi
  • Rassal sayı üretimi için kullanılan fonksiyonlar
  • Örnek programlar

Go’da yazılarla (string) işlemler

  • String kavramı
  • Yaz ile işlem yapan Fonksiyonlar
  • strings paketi
  • Yazılarla işlem yapan diğer paketler
  • Örnek programlar

Temel algoritma analizi

  • Algoritmanın karmaşıklığı
  • Karmaşıklığın ölçütü
  • Karmaşıklığın gösterimine ilişkin notasyonlar
  • Big O notasyonu ile çeşitli karmaşıklık durumlarının incelenmesi
  • O(1), O(logn), O(n), O(n * Logn), O(n ^ 2), O(n ^ 3), … , O(n ^ k) karmaşıklıkları
  • O(k ^ n), O(n!) gibi özel karmaşıklıklar

Diziler (Arrays) ve uygulamalar

  • Dizi tanımlama
  • Diziye ilişkin nesnelerin bellekteki durumu
  • Dizi elemanlarına erişim
  • Dizilere ilk değer verilmesi
  • Dizilerin fonksiyonlara geçirilmesi
  • Dizi döndüren fonksiyonlar
  • Dizilere ilişkin temel algoritmaların yazımı
  • Dizilere ilişkin yararlı fonksyionların yazımı
  • Dizilerde bazı sıralama algoritmaları: kabarcık sıralaması (bubble sort) ve seçerek sıralama (selection sort) algoritmaları
  • Yapı dizileri
  • Gösterici dizileri
  • Örnek programlar

Slices

  • Slice kavramı
  • Slice tanımlama
  • Global slice fonksiyonları (len, cap, append, copy ve diğerleri)
  • Slice ile ilgili işlemler
  • Nil slice
  • Örnek uygulamalar

range

  • range kavramı
  • range anahtar söcüğü ve kullanımı
  • Örnek uygulamalar

Arayüzler (Interfaces)

  • Arayüz kavramı
  • Arayüzlerin kullanını
  • Örnek uygulamlar

Hataların Ela Alınması (Error Handling)

  • Standart error arayüzü
  • Standart fonksiyonlarda hata işlemleri
  • Hataların ele alınmasına yönelik fonksiyonların yazılması
  • Örnek uygulamalar

Çöp Toplayıcı (garbage collector)

  • Nesnelerin ömürleri
  • Nesnelerin seçilebilir (garbage collected) duruma gelmesi
  • Çöp toplayıcı’nın çalışma biçimi
  • Çöp toplayıcıya ilişkin kullanılan bazı algoritmalar

Programın Komut Satırı Argümanları

  • Program ve Process kavramları
  • Programın komut satırı argümanları
  • Progamın giriş noktası (entry point) olan main metodunun parametresi ve anlamı
  • Örnek uygulamalar

Kurs ücreti duyuru sayfasında belirtilmektedir.

Bu kurs C ve Sistem Programcıları Derneği ve Sistem Bilgisayar işbirliği ile düzenlenmektedir.

Flutter Ortamında Dart Programlama Dili İle Uygulama Geliştirme


Flutter Ortamında Dart Programlama Dili İle Uygulama Geliştirme

Kursun süresi: 180 Saat
Eğitmen : Kaan Aslan

Ön Koşul: Daha önce herhangi bir programlama dilinde uygulamalı çalışma yapmış olmak ya da C ve Sistem Programcıları Derneğinde “Programlamaya Giriş” kursuna katılmış olmak.