Web Tasarımı ve Programlama

Web Tasarımı ve Programlama

Bu dersin amacı, Web uygulamalarının geliştirilmesinde temel prensiplerden başlayarak modern web teknolojilere kadar birçok konuyu öğrencilere tanıtmaktır. Bu ders, istemci ve sunucu taraf olarak iki ana bölüme ayrılmıştır. Her bölüm kendi içinde çok farklı web teknolojileri kapsar.

Bu dersi bitirdiğinizde web sitelerine bakışınız değişecek, altında yatan teknolojilerin bir kısmını görmeye başlayacaksınız. Bu ders, hem size bir bilgisayar bilimcisi olma yolunda  teorik bilgiler verecek hem de iyi bir web geliştirici olmanız yolunda uygulama bilgileri sağlayacaktır. Çok farklı programlama ve işaretleme dilleri göreceksiniz, ancak bu ders herhangi bir programlama dilinde uzman olmanızı öğretmek için değildir. Örneğin, sadece PHP veya ASP.NET programlama dilini gösterilebilirdi. Ancak, siz okulu bitirdiğinizde bir çok yeni programlama dilleri, kütüphaneler ve framework’ler karşınıza çıkacaktır. Web uygulama geliştirmenin temellerini anlattıktan sonra, gelecekte işinizdeki yeni web teknolojilerini hızlı bir şekilde öğrenebileceksiniz. Bu ders sonucunda, web ortamında ücretsiz olarak bulabileceğiz birçok teknolojiyi hızlı bir şekilde öğrenebileceksiniz. Aşağıdaki teknolojiler hakkında bilgi sahibi olacaksınız.

  1. HTTP, HTTPS, FTP, SFTP, POP3, IMAP, SMTP, DNS, TCP / IP, UDP, NAT, MAC, ARP, DHCP, ICMP, PING, Router, RIP, OSPF, Socket, Port, Telnet, HTTP Request, HTTP Response, GET, POST, HTML, form, CSS, Web Server, Browser
  2. İstemci tarafı: HTML-CSS-JavaScript-AJAX
  3. İstemci tarafı:  XML, XSL, XPATH, XLink, XPointer, DOM, XML Web Services, WSDL, SOAP, UDDI, RSS, SVG, Canvas ve CSS ile Duyarlı Web Tasarımı (BootStrap, W3.cs), HTML 5: Geolocation, Drag/Drop, Local Storage, App Cache, Web Workers, SSE
  4. İstemci tarafı: jQuery, AngularJS, Vue.js AppML
  5. Sunucu tarafı: Apache, IIS, Ngnix, Node.JS
  6. Sunucu tarafı – PHP: Değişkenler, Döngüler, Denetim, global, static, Super Globals
  7. Sunucu tarafı – PHP: OOP (Class, Object, Encapsulation, Inhetitance, Abstract), HTML Forms – Server side (GET, POST), Validation in Client and Serverside, include / require, File Opearations, File Upload, Cookies, Session, Error Exception
  8. Sunucu tarafı – PHP, Database Operations: MySQLi / PDO, CRUD, Prepared statements, Paging, XML and JSON Processing, AJAX
  9. Sunucu tarafı – Page-focused development framework: Razor Pages in ASP.NET Core, C#, Layout, Model, Entity Entity Framework Core (ORM), Scaffolded, Code genarators, Model based validation
  10. Sunucu tarafı – Web application frameworks: MVC, ASP.NET Core MVC, Model, View, Controller, Session state, Web API, SignalR
  11. Sunucu tarafı – Web application frameworks: Node.js and Express
  12. Inroduction web security, SSL, SEO, My Project ADYS

Web uygulama geliştirme birçok farklı konuyu kapsayan çok geniş bir alandır. Ancak, her şeyi kapsayan bir içerik hazırlanması çok zordur. Bu noktada içerik olarak Rochester Üniversitesi Bilgisayar Bilimlerinde açılan CSC 210 kodlu “Principles of Web Application Development” ve “Web Programming” derslerini takip ediyorum. Bu üniversitede ders bir öğretim üyesi ve beş asistan tarafından yürütülmektedir. Bölümümüzde bir öğretim üyesi ve bir asistan ile güncel web teknolojileri tanıtmaya çalışıyoruz. Diğer yabancı üniversitelerde birçok benzer ders içeriği olmasına rağmen içerik olarak benzeyen diğer dersler:

Türkiye’de derslerini güncel tutan bazı Bilgisayar Mühendisliği Bölümlerinde aşağıdaki dersler açılmaktadır.

  • BSM 205 – Web Programlama, Sakarya Üniversitesi (4+0) (ASP.Net teknolojileri)
  • BIL323 – Web Tabanlı Programlama, Trakya Üniversitesi (3+1) (ASP.Net teknolojileri)
  • BM308- Web Programlama, Düzce Üniversitesi (4+0)
  • BIL3002 – Web Programlama, Karadeniz Teknik Üniversitesi (3+0) (Sunucu tarafı PHP)

Web teknolojilerin çok geniş bir alan olduğunu belirtmiştik. Bu derste aşağıdaki konular bu dersin kapsamı dışındadır.

  • Web sayfaları için grafik
  • Web sayfalarında kullanılabilirlik ve erişilebilirlik
  • Dağıtık, bulut yapısı ve yapılandırma
  • Web performansı, optimizasyonlar
  • Web ölçekli veri depoları, veri işleme teknikleri
  • Web uygulamaları için test ve kalite

Bir öğrencinin sadece bu konuların hepsinde tek bir ders ile yetkin olmasını beklemek imkansızdır. Bunun yerine, yalnızca Web uygulamalarının geliştirilmesinin kalbinde yatan en temel konuları ele alacağız. Bu şekilde, kişisel olarak ileride ilgili konuları kolayca öğrenmenizi sağlayacak sağlam bir temel oluşturmayı amaçlıyoruz.

Derste yazılan kodlara ve ders sunumları için tıklayın.

Github’a yüklü kodlar için tıklayın.

Derste yazılan tüm kodlar birçok programlama diline desteği olan açık kaynak kodlu Visual Studio Code üzerinde yazılmaktadır.