Algorithms And Advanced Programming(INF103)
Course Code | Course Name | Semester | Theory | Practice | Lab | Credit | ECTS |
---|---|---|---|---|---|---|---|
INF103 | Algorithms And Advanced Programming | 2 | 2 | 0 | 2 | 3 | 3 |
Prerequisites | |
Admission Requirements |
Language of Instruction | French |
Course Type | Compulsory |
Course Level | Bachelor Degree |
Course Instructor(s) | Özlem DURMAZ İNCEL odurmaz@gmail.com (Email) |
Assistant | |
Objective | In this course, the fundamental concepts covered in the first class course "Introduction to Programming" are consolidated. Particularly the topics of pointers, dynamic memory allocation and management, file operations, introduction to algorithm analysis and introduction to data structures are elaborated. In the course practice (laboratory) C programming language and the Linux operating system are used. |
Content |
1. Introduction and Reminders 2. Advanced Variable Types 3. C Preprocessor, Libraries 4. Pointers 5. Dynamic Memory Management 6. Pointers, Arrays and Functions 7. String Operations 8. Introduction to Data Structures 9. Advanced Data Structures 10. Algorithm Analysis |
Course Learning Outcomes |
1. Algorithm Design 2. Advanced C Programming 3. Memory Management 4. Algorithm Analysis |
Teaching and Learning Methods | Class lectures and programming |
References |
1. Course slides and notes 2. Reference Books - 21st Century C, Ben Klemens, O’Reilly Media, 978-1-449-32714-9, 2013 - Understanding and Using C Pointers, Richard Reese, O’Reilly Media, 978-1-449-34418-4, 2013 |
Theory Topics
Week | Weekly Contents |
---|---|
1 | Introduction and Reminders |
2 | Advanced Variable Types |
3 | C Preprocessor, Libraries |
4 | Introduction to Pointers |
5 | Dynamic Memory Management |
6 | Pointers, Functions, Arrays |
7 | String Operations |
8 | Midterm |
9 | File Operations |
10 | Introduction to Data Structures |
11 | Data Structures |
12 | Introduction to Algorithm Analysis |
13 | Algorithm Analysis |
14 | Searching Algorithms |
Practice Topics
Week | Weekly Contents |
---|---|
1 | Introduction to Linux |
2 | Static and Dynamic Libraries |
3 | Application Development using Structures and Functions |
4 | Pointer Practice |
5 | Dynamic Memory Management Practice |
6 | Pointer, Function, Array Practice |
7 | String Application |
8 | Midterm Week |
9 | File Operation Practice |
10 | Stack, Queue Data Structures Practice |
11 | Advance Data Structures Practice |
12 | Algorithm Analysis Practice |
13 | Example Sorting Algorithm Practice |
14 | Practice Final Exam |
Contribution to Overall Grade
Number | Contribution | |
---|---|---|
Contribution of in-term studies to overall grade | 1 | 45 |
Contribution of final exam to overall grade | 1 | 55 |
Toplam | 2 | 100 |
In-Term Studies
Number | Contribution | |
---|---|---|
Assignments | 3 | 15 |
Presentation | 0 | 0 |
Midterm Examinations (including preparation) | 1 | 20 |
Project | 0 | 0 |
Laboratory | 0 | 0 |
Other Applications | 0 | 0 |
Quiz | 0 | 0 |
Term Paper/ Project | 1 | 10 |
Portfolio Study | 0 | 0 |
Reports | 0 | 0 |
Learning Diary | 0 | 0 |
Thesis/ Project | 0 | 0 |
Seminar | 0 | 0 |
Other | 0 | 0 |
Toplam | 5 | 45 |
No | Program Learning Outcomes | Contribution | ||||
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
1 | Matematik, fizik ve mühendislik bilimlerine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, mühendislik problemlerinin modellenmesi ve çözümünde kullanabilme becerisi. | X | ||||
2 | Karmaşık bilgisayar mühendisliği problemlerini saptama, tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi. | X | ||||
3 | Yazılımsal veya donanımsal karmaşık bir sistemi, süreci veya donanımı gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi. | X | ||||
4 | Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları geliştirme, seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi. | X | ||||
5 | Analitik düşünce ile bir sistemi, sistem bileşenini ya da süreci analiz etme, modelleme, deney tasarlama ve yapma, veri toplama, çözüm algoritmaları üretebilme, uygulamaya alma ve geliştirme becerileri. | X | ||||
6 | Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi. | X | ||||
7 | Türkçe sözlü ve yazılı etkin iletişim kurma becerisi; en az iki yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, yazılım ve donanım tasarımını, gerekirse teknik resim metotları kullanarak raporlayabilme, etkin sunum yapabilme becerisi. | X | ||||
8 | Bilgiye erişebilme ve bu amaçla kaynak araştırması yapabilme, veri tabanları ve diğer bilgi kaynaklarını kullanabilme becerisi | X | ||||
9 | Yaşam boyu öğrenmenin gerekliliği bilinci; kendini sürekli yenileme becerisi. | X | ||||
10 | Mesleki etik ilkelerine uygun davranma, mesleki sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi. | |||||
11 | Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgi. |
Activities | Number | Period | Total Workload |
---|---|---|---|
Class Hours | 14 | 2 | 28 |
Working Hours out of Class | 7 | 1 | 7 |
Assignments | 5 | 1 | 5 |
Midterm Examinations (including preparation) | 1 | 5 | 5 |
Project | 1 | 9 | 9 |
Laboratory | 14 | 2 | 28 |
Final Examinations (including preparation) | 1 | 5 | 5 |
Portfolio Study | 1 | 16 | 16 |
Total Workload | 103 | ||
Total Workload / 25 | 4,12 | ||
Credits ECTS | 4 |