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 ile Uygulama Geliştirme


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

Javascript programlama dili

 

Bu bölümde daha önce herhangi bir programlama dilinde çalışanlara yönelik Javascript programlama dili anlatılacaktır:

  • Temel türler
  • Tür dönüşümleri
  • Fonksiyonlar
  • Kontrol deyimleri (if, while, do-while, for, break, continue, switch, …)
  • Nesneler
  • Fonksiyon türleri
  • Diziler
  • Lambda ifadeleri
  • Prototype kavramı
  • Sınıflar
  • import bildirimleri

Typescript programlama dili

 

Bu bölümde Typescript programlama dili Javascript programlama dili ile benzerlikleri ve farklılıkları doğrultusunda ele alınacaktır

Node.js

 

  • Node.js kurulumu
  • Node.js uygulaması geliştirmede kullanılan araçlar
  • Javascript’in ES6’da eklenen özelliklerinin Node.js ile kullanımı

Node.js modül geliştirme

 

  • Geliştirilen modüllerin kullanılabilir hale getirilmesi
  • Geliştirilen modüllerin npm’ yüklenmesi
  • Github ile repository oluşturma
  • Örnek uygulamalar

Node.js Event

 

  • EventEmitter sınıfı
  • Ebvent Listener
  • Örnek uygulamalar

Node.js IO (Input Output) işlemleri

 

  • Standard IO (STDIN, STDOUT ve STDERR)
  • fs modülü ile dosya işlemleri
  • Dosya değişiklerinin izlenmesi
  • Örnek uygulamalar

Node.js Streams

 

  • Stream kullanımı
  • Piped stream
  • Paused Stream
  • Örnek uygulamalar

Node.js Web Protokolleri

 

  • http modülü
  • HTTP GET
  • HTTP POST
  • WebSocket işlemleri
  • SMTP Server
  • Örnek uygulamalar

Çok kullanılan Node.js Framework’ler

 

  • Express.js
  • Koa.js
  • Örnek uygulamalar

Node.js veritabanı işlemleri

 

  • Node.js ile PostgreSQL kullanımı
  • Node.js ile MongoDB kullanımı
  • Node.js ile Temel Redis kullanımı
  • Örnek uygulamalar

NodeJS ile TCP/IP Programlama

 

  • TCP protokolü
  • UDP protokolü
  • Örnek uygulamalar

Node.js Test İşlemleri

 

  • Birim testleri
  • Örnek uygulamalar

Node.js Güvenlik

 

  • Örnek uygulamalar

Node.js Uygulamalarının Performansı

 

  • Örnek uygulamalar

Node.js Microservice uygulamaları

 

  • Örnek uygulamalar

Node.js Uygulamalarının Debug Edilmesi.

Önkoşul: Daha önce herhangi bir programlama dilinde uygulamalı çalışma yapmış olmak veya C ve Sistem Programcıları Derneği’nin açmış olduğu Programlamaya Giriş kursu başarıyla bitirmiş olmak.

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

Kurs ücreti duyuru sayfasında belirtilmektedir.

* Kursumuz gerçek zamanlıdır. Derslerimiz interaktif olarak yapılmaktadır.

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

.NET Core FullStack (Backend + FrontEnd) Uygulama Geliştirme


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

Açıklama:Bu kurs, piyasada “full stack” kavramıyla anılan uygulama geliştirme yaklaşımının gerektirdiği konular gözetilerek oluşturulmuştur. Kurs içeriği, backend ve frontend konuları biçiminde ikiye ayrılmış olup, backend tarafında ASP.NET Core, frontend tarafında ise JavaScript, TypeScript, Vue.js, React, Angular, BootStrap gibi araçların kullanımı anlatılacaktır.

 

Kurs konularından bazıları aşağıdadır:

1) BackEnd Tarafı:

  • Middleware kavramı
  • Request ve Response Manipülasyonları
  • Dependency Inversion, Inversion Of Control
  • Dependency Injection
  • Repository, UnitOfWork kalıpları
  • 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, HTML Helper’lar
  • Blazor Framework
  • Entity Framework Core ile veritabanı işlemleri
  • Authentication, Authorization, Oauth
  • WebAPI ile Rest Servislerin Yazılması
  • JWT (Json Web Token)
  • CQRS Paterni
  • Mikroservis Mimarisi
  • Cookie, Session
  • Onion Architecture
  • RabbitMQ, MSMQ gibi mesaj kuyruklama altyapılarının kullanımı
  • ASP.NET Core 9 ile Gelen Yeni Özellikler

2) FrontEnd Tarafı:

Temel HTML ve CSS konularının gözden geçirilmesi

BootStrap CSS Framework’ü

JavaScript

Bu kısımda JavaScript isimli script (betik) dili üzerinde durulacaktır.

  • Veri türleri ve Dinamik Tür Sistemi
  • Tür dönüşümleri
  • Fonksiyonlar
  • Akış kontrol mekanizmaları, Döngüler
  • JavaScript ile Nesne Yönelimli Programlama
  • Fonksiyonlar
  • Diziler
  • Lambda ifadeleri
  • Prototype kavramı
  • import bildirimleri
  • Çalışma zamanı hatalarının yakalanması

React.js

  • Dosya, Dizin Organizasyonu
  • Komponent Oluşturmak
  • React Hooks (Callback, Reducer)
  • Navigasyon
  • Material UI bileşenleri
  • Flexbox
  • Durum Yönetimi
  • Context API ve Redux Toolkit
  • JSX, Props

Vue.js

  • Fonksiyonlar
  • V-html, V-Once, VBind
  • Event Binding, Modifier
  • Two Way Binding
  • Computed, Watchers
  • js’de CSS sınıfları
  • CLI
  • Form ve Komponentler
  • Yaşam Döngüsü
  • Routing, Props

Angular

  • Ng Direktifleri (Ngİf, NgFor, …)
  • Angular form işlemleri
  • Pipe, Routing
  • Lazy Loading, Eager Loading
  • RxJS Observable
  • ServiceWorker
  • Event Binding
  • Property Binding
  • Interpolation
  • Change Eventleri
  • Angular Material Component’leri
  • ve diğerleri.

Önkoşul: Daha önce C# ile Nesne Yönelimli Programlama konusunda çalışma yapmış olmak ya da C ve Sistem Programcıları Derneği’nin açmış olduğu C# ile Nesne Yönelimli Programlama kursuna katılmış olmak.

Kurs ücreti duyuru sayfasında belirtilmektedir.

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.

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


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

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

Giriş

  • Programlama Dillerine Genel Bakış
  • Programlama Dillerinin Tarihsel Gelişimi
  • Rust Programlama Dilinin Doğuşu ve Gelişimi
  • Rust Programlama Dilinin Kullanım Alanları
  • Rust Programlama Dilinin Tasarımsal Özellikleri
  • Sistem Programlama Dili Olarak Rust
  • Rust Dökümanları
  • Yardımcı Kaynaklar ve Kitaplar

Rust Geliştirme Sisteminin Kurulumu ve Kullanımı

  • Rust Geliştirme Araçlarının Windows, Linux ve macOS Sistemlerinde Kurulumu
  • Rust Programlarının Derlenmesi ve Çalıştırılması
  • Rust’ta “Merhaba Dünya” Programı
  • Cargo Paket Yöneticisinin kullanımı
  • Rust Kaynak Dosyalarının Organizasyonu
  • Rust’ta Atomlara Ayırma ve Yazım Kuralı

Rust’ta Temel Türler ve Değişken Bildirimleri

  • Statik ve Dinamik Tür Sistemine Sahip Programlama Dilleri
  • Rust’ta Tür Sistemi ve Rust’taki Temel (Skaler) Türler
  • Değişkenlerin Bildirimleri
  • Değişkenlere İlkdeğer Verilmesi
  • Değişkenlerde Değiştirilebilirlik (Mutability)
  • Sabit İfadeleri ve const Bildirimleri
  • Değişkenlerin Gölgelenmesi

Sabitler (Literals)

  • Tamsayı Sabitleri
  • Gerçek Sayı Sabitleri
  • Karakter ve Byte Sabitleri
  • String Sabitleri
  • Ham String Sabitleri
  • Byte String Sabitleri
  • Ham Byte String Sabitleri
  • C String Sabitleri
  • Byte C String Sabitleri
  • Bool Sabitler

Demetler, Diziler ve Dilimler

  • Demetlerin (Tuples) Bildirimleri
  • Demet Elemanlarına Erişim
  • Demetlerin Açılması
  • Dizi Bildirimleri
  • Dizilere İlkdeğer Verilmesi
  • Dizi Elemanlarına Erişim
  • Demetlerle ve Dizilerle İşlemler
  • Dilimlerin (Slices) Oluşturulması
  • Dilimlerde Elemanlara Erişim

Fonksiyonların Tanımlanması ve Çağrılması

  • Fonksiyon Tanımlanması
  • Fonksiyonların Parametreleri
  • Fonksiyonların Geri Dönüş Değerleri
  • Fonksiyonların Çağrılması

Temel Operatörler ve Operatör Öncelikleri

  • Aritmetik Operatörler
  • Karşılaştırma Operatörleri
  • Mantıksal Operatörler
  • Bit Operatörleri
  • Özel Amaçlı Operatörler
  • Rust’ta Operatör Öncelikleri

Tür Dönüştürmeleri

  • Programlama Dillerinde Kuvvetli ve Zayıf Tür Kontrolleri
  • Otomatik Dönüştürme Kavramı ve Rust’ın Katı Tür Kontrolü
  • as Operatörü
  • From ve Into Trait’leri
  • TryFrom ve TryInto Trait’leri

Deyimler

  • Rust Deyimlerine Genel Bakış
  • Rust Deyimlerinin Diğer Dillerdeki Deyimlerle Karşılaştırılması
  • Rust’ta Deyimler de İfade Gibidir
  • Rust’ta Deyimlerin Sınıflandırılması
  • let Deyimi
  • İfadesel Deyimler (Expression Statements)
  • Bloklu İfadeler (Expression With Block)
  • Bloksuz İfadeler (Expression Without Block)
  • Blok İfadeleri
  • Etiketki Blok İfadeleri
  • if ve if let İfadeleri
  • while ve while let İfadeleri
  • for İfadesi
  • İteratörlü for İfadesi
  • loop İfadesi
  • Range İfadesi
  • break İfadesi
  • continue İfadesi
  • match İfadesi
  • match Kalıpları
  • Rust Deyimlerinin C, C++, Java ve C# Deyimleriyle Karşılaştırılması, Benzerlikler ve Farklılıklar

Değişkenlerin Faaliyet Alanları (Scopes) ve Ömürleri

  • Modül Faaliyet Alanı (Item Scope)
  • Kalıp Bağlama Faaliyet Alanı (Pattern Binding Scope)
  • Blok İçerisinde Bildirilen Değişkenlerin Faaliyet Alanları
  • if, for, while, match Gibi Deyimlerde Bildirilen Değişkenlerin Faaliyet Alanları
  • Döngü Etiketlerinin Faaliyet Alanları (Loop Label Scopes)
  • Başlangıç Faaliyet Alanı (Prelude Scope)
  • Değişken Bildirimlerinde Gölgeleme ve Derleyici Optimizasyonu
  • static Değişkenler
  • Rust’taki Faaliyet Alanlarının C, C++, C# Dillerindeki Faaliyet Alanlarıyla Karşılaştırılması, Benzerlikler ve Farklılıklar

Referanslar ve Göstericiler

  • Referans Bildirimleri
  • Referansların Kullanımları
  • Gösterici Bildirimleri
  • Göstericilerin Kullanımları
  • Değiştirilebilir (Mutubale) Referanslar ve Göstericiler
  • Güvenli Olmayan Kod Blokları
  • & ve * Operatörleri
  • Göstericilerin Artırılması ve Eksiltilmesi
  • Referanslar ve Göstericilerle İlgili Tür Uyuşumları
  • Dizilerin Fonksiyonlara Parametre Referans Yoluyla Aktarılması
  • Dizilerin Fonksiyonlara Dilimleme Yoluyla Aktarılması
  • Dizilerin Fonksiyonlara Gösterici Yoluyla Aktarılması
  • Rust’taki Göstericilerin ve Referansların C’deki Göstericilerden ve C++’taki Referanslardan Farklılıkları

Yapılar

  • Yapıların Bildirimleri
  • Yapı Elemanları
  • Yapı Türünden Nesnelerinin Bildirilmesi
  • Yapı Elemanlarına Erişim
  • Yapıların İliştirilmiş (Associated) Fonksiyonları
  • İliştirilmiş Fonksiyonların Tanımlanması ve Kullanımı
  • Yapıların Demet Biçiminde Bildirilmesi
  • Yapı Elemanlarında Görünürlük
  • Yapı Elemanlarının Başka Bir Yapı Türünden Olması Durumu
  • Yapı Türünden Göstericiler ve Referanslar
  • Yapıların Fonksiyonlara Referans Yoluyla Aktarılması
  • Yapıların Fonksiyonlara Gösterici Yoluyla Aktarılması
  • Rust’taki Yapılarla C’deki Yapıların ve C++’taki Sınıfların Karşılaştırılması

Sahiplik ve Ödünç Alma

  • Nesnelerinin Sahipliği
  • Nesnelerinin Sahipliğinin Devredilmesi ve Taşıma Süreci
  • Nesnelerin Ödünç Alınması
  • Değiştirilebilen Nesnelerin Ödünç Alınması
  • Nesnelerin Taşınmasının ve Ödünç Alınmasının Anlamı ve Rust İçin Önemi,
  • Nesnelerin Kopyalanması
  • Nesnelerin Taşınması ve Kopyalanmasının C++’taki Nesnelerin Kopyalanması ve Taşınması İle İlgisi

enum Bildirimi ve enum Sabitleri

  • enum Bildirimi
  • enum Sabitlerinin Kullanımı
  • enum Sabitlerine Tür İliştirilmesi

Modüller

  • Modüllerin Tanımlanması
  • Modül Öğelerine Erişim
  • Modül Öğelerinin Görünürlüğü
  • use Bildirimi

Trait’ler

  • Trait’lerin Tanımlanması
  • Trait’lerin Gerçekleştirilmesi
  • Default Trait Metotları
  • Fonksiyonlarda Trait Bağlaması (Trait Bound)
  • Trait’lerle Java ve C# Gibi Dillerdeki Arayüzlerin Karşılaştırılması

Makrolar ve Inline Fonksiyonlar

  • Makro Kavramı, Makrolara Neden Gereksinim Duyulmaktadır?
  • Dekleratif Makrolar
  • Prosedürel Makrolar
  • Metaprogramlama Kavramı ve Metaprogramlamaya İlişkin Temel Örnekler
  • Inline Fonkisyonlar
  • C’nin Önişlemcisi İle Rust Makrolarının Karşılaştırılması
  • C’nin ve C++’ın Inline Fonksiyonlarıyla Rust’ın Inline Fonksiyonlarının Karşılaştırılması

Genelleştirilmiş (Generic) Fonksiyonlar, Yapılar ve Trait’ler

  • Genelleştirilmiş Fonkiyonlar
  • Genelleştirilmiş Yapılar
  • Genelleştirilmiş Trait’ler
  • Genelleştirilmiş Trait’lerde Bağlama (Trait Bound)
  • Genelleştirilmiş enum Türleri

Öznitelikler (Attributes)

  • Öznitelik Nedir?
  • Rust’ta Özniteliklerin Oluşturulması
  • Çok Kullanılan Standart Özniteliker ve İşlevleri
  • Prosedürel Makrolarla Öznitelikler Oluşturma

Rust ve Nesne Yönelimlilik

  • Rust Nesne Yönelimli Bir Dil Midir?
  • Rust Nesne Tabanlı bir Dil Midir?
  • Rust ve Nesne İlişkisi
  • Rust’ın Nesne Yönelimlilik Bakımından Diğer Dillerle Karşılaştırılması
  • İliştirilmiş Fonksiyonlar ve Trait’lerin Diğer Dillerdeki Benzerleri

Akıllı Göstericiler

  • Box<T> Kullanımı
  • Rc<T> Kullanımı
  • Arc<T> Kullanımı
  • Cell<T> Kullanımı
  • RefCell<T> Kullanımı
  • Weak<<T> Kullanımı

Rust’ta Çok Kullanılan Nesne Tutan Yapılar

  • String Yapısı
  • Vec<T>Yapısı ve Kullanımı
  • VecDeque<T> Yapısı ve Kullanımı
  • HashMap<K, V> Yapısı ve Kullanımı
  • HashSet<T> Yapısı ve Kullanımı
  • LinkedList<T> Yapısı ve Kullanımı

Dosya İşlemleri

  • Dosya Kavramı ve Temel Bilgiler
  • File Yapısı
  • Dosyaların Açılması ve Kapatılması
  • Dosyalardan Okuma Yapılması ve Dosyalara Yazma Yapılması
  • BufReader ve BufWriter Yapıları Kullanılarak Okuma Yazma İşlemleri
  • Dosyalar Üzerinde Diğer Temel İşlemler

Rust’ın Standart Kütüphanesinin Genel Tanıtımı

  • Standart Kütüphanenin Genel Kapsamı ve İçeriği
  • Kütüphane Öğelerinin Kod İçerisinden Kullanılması

Tarih ve Zaman İşlemleri

  • Geçen Zamanın Temsili ve Duration Yapısı
  • Sistem Zamanının Elde Edilmesi ve Değiştirilmesi
  • Zamansal İşlemler
  • Tarihlerle işlemler ve chrono Kütüphanesi

Dosya Sistemine İlişkin İşlemler

  • Dosyaların Silinmesi, Kopyalanması, İsimlerinin Değiştirilmesi
  • Dizinlerin yaratılması ve Silinmesi
  • Dizin Girişlerinin Elde Edilmesi
  • Diğer Önemli Dosya ve Dizin İşlemleri

Kütüphanedeki Nesne Tutan Diğer Önemli Yapılar

  • BTreeMap ve BTreeSet Yapıları
  • BinaryHeap Yapısı

İteratörler ve İteratörlerin Kullanımı

  • Iterator Trait’i
  • for Döngüsünün Iteratör Karşılığı
  • İteratör Türleri
  • Iteratör Trait’ini Destekleyen Yapıların Yazılması
  • Nesne Tutan Yapıların İteratör Yoluyla Dolaşılması
  • İteratör Yoluyla Geriye Doğru Dolaşım
  • String Nesnelerinin İteratör Yoluyla Dolaşılması
  • Dosya İşlemlerinde İteratör Kullanımı
  • Özel İteratör Türleri

Rust’ta Asenkron Programlama Modeli

  • İşbirliği İle Birlikte Çalışma (Coopertaive Multitasking)
  • async/await Modeli
  • async/await Modelinin Gerçekleştirimleri
  • Asenkron Akım İşlemleri

Prosesler İle İlgili İşlemler

  • Proses Kavramı
  • Proseslerin Exit Kodları
  • Proseslerin Çevre Değişkenlerinin Elde Edilmesi ve Oluşturulması
  • Proseslerin Çalışma Dizinlerinin Elde Edilmesi ve Değiştirilmesi
  • Proseslerin Yaratılması (Başka Bir Programın Çalıştırılması)

Thread’ler ve Thread Senkronizasyonu

  • Thread Kavramı, Thread’lere Neden Gereksinim Duyulmaktadır?
  • Thread’lerin Yaratılması
  • Temel Thread İşlemleri
  • Thread Senkronizasyonu ve Önemli Senkronizasyon Kalıpları
  • Thread Havuzları
  • Rust’ta Thread Güvenliliği
  • Çok Thread’li Uygulamalarda Dikkat Edilmesi Gereken Durumlar
  • Rust’ta Paralel Programlama

Soket Programlama ve Ağ Üzerinde İşlem Yapan Kütüphane Öğeleri

  • Ağ Haberleşmesinin Tarihçesi ve OSI Katmanları
  • IP Protokol Ailesi
  • Soket Kütüphaneleri
  • TCP/IP Programlama
  • Server ve Client Programların Yazımı
  • Çok Client’lı Server Uygulamaları
  • UDP/IP Programlama
  • UDP Server ve UDP Client Programların Yazılması
  • Blokeli ve Blokesiz Soket İşlemleri
  • Çok Client’lı Uygulamalarda Performans İyileştirmeleri

Rust’ın Standart Makroları

  • Assert Makroları
  • Debug Makroları
  • Print ve Format Makroları
  • Diğer Önemli Standart Makrolar

Rust Ekosistemi

  • Cargo Build Sistemi ve Paket Yöneticisi
  • Önemli Rust Araçları
  • crates.io Merkezi Paket Deposu
  • Ekosistemdeki Önemli Kütüphaneler

Rust’ın C İle Entegrasyonu

  • C’de Yazılmış OLan Fonksiyonların Rust’tan Kullanılması
  • Rust’ta Yazılmış Olan Fonksiyonların C’den Kullanılması

Ö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.

Python Uygulamaları


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

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ı

 

Ön Koşul: Python Programlama dilinde çalışma yapmış olmak ya da C ve Sistem Programcıları Derneği’nin açmış olduğu Python Programlama Dili kursunu başarıyla bitirmiş olmak.

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

* Kurs ücreti duyuru sayfasında belirtilmektedir.

* Kursumuz gerçek zamanlıdır. Derslerimiz interaktif olarak yapılmaktadır.

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