ALGORITHMS AND PROGRAMMING
- Course
- CMPE124 - ALGORITHMS AND PROGRAMMING
- Department
- Computer Engineering - English - Undergraduate
- Course Type
- Course
- Status
- Required
- Language
- English
- Credit
- 4
- ECTS
- 6
- T+P+L
- 3 + 0 + 2
- Course Coordinator(s)
- Dr. Inst. Basmah ANBER
- Prerequisite
Course Description
The course mainly focuses on software implementations in C Programming Language. Firstly, basic concepts of algorithms are discussed and then structures of programming are studied. Then, arrays and searching and sorting algorithms on arrays are studied. Fundamentals of basic data structures, which are arrays, structures and unions are discussed together with bitwise operations and enumerations in C. Pointers, functions and file processing are studied in the second part of the course, after midterm examination. Case studies related to searching and sorting algorithms are also studied. Functions, characters and strings are studied as last topics of algorithm developments and course is finalized with complexity analysis of algorithms.
ALGORITHMS AND PROGRAMMING
Evaluation Tools (Active Term)
No evaluation items have been defined.
Course outcomes
- 01 Learn and enhance basics of algorithms - pseudocodes and flowcharts.
- 02 Improve computer programming abilities with arrays, structures, pointers, strings.
- 03 Implement popular searching and sorting algorithms.
- 04 Learn how to program using structured data.
- 05 Develop computer programs including file processing.
- 06 Analyse the complexity of an algorithm and software implementation.
Course Syllabus
| Week | Topic |
|---|---|
| Week 1 | Review Arrays (1 Dimension & 2 Dimensions) |
| Week 2 | C-Strings (Character Arrays); Pointers |
| Week 3 | Functions (Value returning & Void ); Recursion |
| Week 4 | Arrays as Parameters to Functions (1 Dimension & 2 Dimensions) |
| Week 5 | APPLICATIONS OF ARRAYS (SEARCHING AND SORTING): Sequential Search, Binary Search |
| Week 6 | APPLICATIONS OF ARRAYS (SEARCHING AND SORTING): Bubble Sort, Selection Sort |
| Week 7 | Review |
| Week 8 | Midterm Examination |
| Week 9 | APPLICATIONS OF ARRAYS (SEARCHING AND SORTING): Divide and Conquer approach, Quick Sort, Merge Sort |
| Week 10 | Structure, Union, Bit, Manipulations and Enumerations |
| Week 11 | File Input/Output; Complexity Analysis of Algorithms |
| Week 12 | Complexity Analysis of Algorithms |
| Week 13 | Complexity Analysis of Algorithms |
| Week 14 | Complexity Analysis of Algorithms |
| Week 15 | Final Exam |
Reference Books & Course Materials
- 01 C++ PROGRAMMING: FROM PROBLEM ANALYSIS TO PROGRAM DESIGN, DS Malik
- 02 C How to Program, Fifth Edition, Deitel & Deitel, Prentice Hall, 2005.
- 03 1. J. Glenn Brookshear, Computer Science, Eighth edition, Addison Wesley, 2004.
- 04 A Book on C, Fourth Edition, Al Kelley and Ira Pohl, Addison Wesley, 1999.
Learning Outcomes
- L01 Learn and enhance basics of algorithms - pseudocodes and flowcharts.
- L02 Improve computer programming abilities with arrays, structures, pointers, strings.
- L03 Implement popular searching and sorting algorithms.
- L04 Learn how to program using structured data.
- L05 Develop computer programs including file processing.
- L06 Analyse the complexity of an algorithm and software implementation.
Program Outcomes
- P01 Adequate knowledge in mathematics, science and engineering subjects pertaining to the relevant discipline; ability to use theoretical and applied knowledge in these areas in complex engineering problems.
- P02 Ability to identify, formulate, and solve complex engineering problems; ability to select and apply proper analysis and modelling methods for this purpose.
- P03 Ability to design a complex system, process, device or product under realistic constraints and conditions, in such a way as to meet the desired result; ability to apply modern design methods for this purpose.
- P04 Ability to devise, select, and use modern techniques and tools needed for analysing and solving complex problems encountered in engineering practice; ability to employ information technologies effectively
- P05 Ability to design and conduct experiments, gather data, analyse and interpret results for investigating complex engineering problems or discipline specific research questions.
- P06 Ability to work efficiently in intra-disciplinary and multi-disciplinary teams; ability to work individually.
- P07 Ability to communicate effectively in Turkish, both orally and in writing; knowledge of a minimum of one foreign language; ability to write effective reports and comprehend written reports, prepare design and production reports, make effective presentations, and give and receive clear and intelligible instructions.
- P08 Recognition of the need for lifelong learning ; ability to access information, to follow developments in science and technology, and to continue to educate him/herself.
- P09 Consciousness to behave according to ethical principles and professional and ethical responsibility; knowledge on standards used in engineering practice.
- P10 Knowledge about business life practices such as project management, risk management, and change management; awareness in entrepreneurship, innovation; knowledge about sustainable development.
- P11 Knowledge about the global and social effects of engineering practices on health, environment, and safety, and contemporary issues of the century reflected into the field of engineering; awareness of the legal consequences of engineering solutions.
Po-Lo Matrix
| LO | P01 | P02 | P03 | P04 | P05 | P06 | P07 | P08 | P09 | P10 | P11 | Average |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| L01 | - | - | - | - | - | - | - | - | - | - | - | - |
| L02 | - | - | - | - | - | - | - | - | - | - | - | - |
| L03 | - | - | - | - | - | - | - | - | - | - | - | - |
| L04 | - | - | - | - | - | - | - | - | - | - | - | - |
| L05 | - | - | - | - | - | - | - | - | - | - | - | - |
| L06 | - | - | - | - | - | - | - | - | - | - | - | - |