T.C. MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK VE DOĞA BİLİMLERİ FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS PROGRAMI 2011-12 Spring Semester Algorithms and Programming II CEN 134 AKTS Kredisi 5 1 year 2. semester Undergraduate Required 4 s/week Theory: 2 h/week Lab: 2 h/week English Coordinator of the course: Doç. Dr. Raif Önvural onvural@maltepe.com.tr Instructors of the course and their Office hours: Türker Cambazoğlu, tcambazoglu@maltepe.com.tr, (Fridays, 9:00-10:00) Erdal Güvenoğlu, erdalg@maltepe.com.tr Serdar Acır, sacir@maltepe.com.tr The web site address of the course: Objectives of the course: CEN134 is an etension of CEN 133 course. The goal and objectives is to cover the more advanced subjects of programming and algorithms. The following subjects will be covered in C language contet: strings, recursion, programming in the large, dynamic data structures. Students will be introduced to algorithms and techniques to compare different algorithms in terms of efficiency, effectiveness and performance wise. Learning Outcomes and Subskills: - Students should be able to work with tet and binary files. - Students should be able to compare different algorithms in terms of efficiency, effectiveness and performance wise. - students will be able to analyze, design, document and test computer programs. - Students should learn and apply advanced subjects such as strings, recursion, struct, union, tet/binary file processing, user libraries, arguments to function main, storage classes, macros, dynamic data structures - Course students will be able to operate computer programs using Integrated Development Environment (IDE) tools (compiler). - Course students will be able to search for bugs in a computer program and create correctly functioning software. General Competencies: - Knowledge and understanding (Learn and understand the fundamental programming constructs, Understand and write searching and sorting techniques, Understand a typical C- like program environment). - Cognitive skills (thinking and analysis, Be able to understand and analyze any problem and derive its solution, Be able to develop algorithms). - Communication skills (Be able to work as a team).
- Practical and subject specific skills (Be able to write C-like programs including searching and sorting techniques, solve mathematical problems using computer programming) Teaching Methods and Techniques: - Interactive classroom lectures - Practical lab demos and tutorials - Self-study sessions (writing programs) Assessment Method: - 2 midterm eams - 10 lab work - 1 lab quizes - 1 final eam Prerequisite: CEN133 Tetbook: - Jeri R. Hanly and Elliot B. Koffman, 2007, Problem Solving and Program Design in C, Pearson Education, Inc., ISBN: 0321464648 Alternate Tetbook: - Deitel & Deitel, 2007, C How to Program, Prentice-Hall, ISBN: 0132404168 Course Category: (Yalnızca bir kategori işaretlenecektir. 1 ) 1. Temel meslek dersleri 2. Uzmanlık/alan dersleri 3. Destek dersleri 4. Aktarılabilir beceri dersleri 5. Beşeri, İletişim ve Yönetim Becerileri Dersleri 1 Bu konuda bölüm olarak karar verilmesi uygun olacaktır.
Weekly Course Contents: Week Subjects/Topics 1. week Review of C arrays and pointers 2. week Algorithm Analysis and Efficiency(The sequential search algorithm, loop control, The insertion sort algorithm, algorithm efficiency, software verification, Big O notation) 3. week Strings: String basics; string library functions; concatenation and whole line input; string comparison; arrays of pointers 4. week Strings: Character operations; string to number and number to string conversions; string processing (tet editor) 5. week Recursion: Nature of recursion; tracing a recursive function; recursive mathematical functions; recursive functions with array and string parameters 6. week Recursion: Problem solving with recursion (binary search algorithm; operations on sets; towers of Hanoi) 6. week Midterm eam I 7. week Structure and union types: User-defined structure types; structure type data as input and output parameters; functions whose result values are structured 8. week Structure and union types: Problem solving with structure types ; parallel arrays and arrays of structures; Union types 9. week Tet and binary file processing: I/O files; binary files; 10. week Tet and binary file processing: searching a database (database inquiry) 11. week Programming in the large: Abstraction to manage compleity; personal libraries (header files, implementation files) 12. week Programming in the large: Storage classes; modifying functions for inclusion in a library; conditional compilation; arguments to function main; defining macros with parameters 12. week Midterm eam II 13. week Dynamic data structures: Pointers; dynamic memory allocation; linked lists; linked list operators 13. week Lab quiz 14. week Dynamic data structures: Representing a stack with a linked list; representing a queue with a linked list; ordered lists; binary trees Değerlendirme Sistemi YARIYIL İÇİ ÇALIŞMALARI SAYISI KATKI PAYI Devam 0 0 Laboratuar quiz 1 10 Lab çalışmaları/uygulamaları 10 20 Alan Çalışması 0 0 Derse Özgü Staj (Varsa) 0 0 Ödev 0 0 Sunum 0 0 Projeler 0 0 Seminer 0 0 Ara sınavlar 2 30 Final 1 40 TOPLAM 14 100 YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTUNA KATKISI 13 60 YARIYIL SONU SINAVININ BAŞARI NOTUNA KATKISI 1 40 TOPLAM 14 100
AKTS (Öğrenci İş Yükü Tablosu) Etkinlikler Sayısı Süresi Toplam (Saat) İş Yükü Ders Süresi (Sınav haftası dahildir: 14 haftalık ders saati) 14 2 28 Laboratuvar 14 2 28 Uygulama Derse Özgü Staj (varsa) Alan Çalışması Sınıf Dışı Ders Çalışma Süresi (Ön çalışma, pekiştirme, vb) 14 4 56 Sunum / Seminer Hazırlama Proje Ödevler Ara sınavlar 2 10 20 Yarıyıl Sonu Sınavı 1 20 20 Toplam İş Yükü 152
Dersin Öğrenim Çıktılarının Program Yeterlilikleri ile İlişkisi Katkı Düzeyi No Program Yeterlikleri/Çıktıları 1 2 3 4 5 1 Bilgisayar mühendisliği problemlerinin çözümünde matematik, fen ve mühendislik bilgilerini uygulayabilme becerisi Bilgisayar Mühendisliği alanında karşılaşılabilecek sorunları 2 tanımlama, uygun çözümleme ve modelleme yöntemlerini kullanarak çözme becerisi İhtiyaç duyulan gereksinimleri karşılayabilecek Bilgisayar 3 Mühendisliği problemlerini tasarlayabilme ve çözümleyebilme becerisi 4 Bilgisayar Mühendisliği araç ve yazılımlarını etkin şekilde kullanabilme becerisi 5 Veri toplama, sonuçları analiz etme, yorumlama ve paylaşabilme becerisi 6 Teknolojik yenilikleri izleme yeteneği ve yaşam boyu öğrenme bilinci 7 Takım çalışmasında ve disiplinlerarası çalışma gruplarında etkin görev alabilme ve liderlik edebilme becerisi 8 Sözlü ve yazılı etkin iletişim kurabilme becerisi 9 Alanı ile ilgili konularda dış kaynaklı yayınları takip edebilme ve kullanabilme becerisi 10 Mesleki ve etik sorumlulukların bilincinde olma 11 İş hayatındaki uygulamalara yönelik farkındalık 12 Mühendislik uygulamlarının ulusal ve evrensel düzeydeki, hukuksal, toplumsal, kültürel ve çevresel etkilerini kavrayabilme