Skip to main content
TR

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
Keywords

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

  1. 01 Learn and enhance basics of algorithms - pseudocodes and flowcharts.
  2. 02 Improve computer programming abilities with arrays, structures, pointers, strings.
  3. 03 Implement popular searching and sorting algorithms.
  4. 04 Learn how to program using structured data.
  5. 05 Develop computer programs including file processing.
  6. 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

  1. 01 C++ PROGRAMMING: FROM PROBLEM ANALYSIS TO PROGRAM DESIGN, DS Malik
  2. 02 C How to Program, Fifth Edition, Deitel & Deitel, Prentice Hall, 2005.
  3. 03 1. J. Glenn Brookshear, Computer Science, Eighth edition, Addison Wesley, 2004.
  4. 04 A Book on C, Fourth Edition, Al Kelley and Ira Pohl, Addison Wesley, 1999.

Learning Outcomes

  1. L01 Learn and enhance basics of algorithms - pseudocodes and flowcharts.
  2. L02 Improve computer programming abilities with arrays, structures, pointers, strings.
  3. L03 Implement popular searching and sorting algorithms.
  4. L04 Learn how to program using structured data.
  5. L05 Develop computer programs including file processing.
  6. L06 Analyse the complexity of an algorithm and software implementation.

Program Outcomes

  1. 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.
  2. Ability to identify, formulate, and solve complex engineering problems; ability to select and apply proper analysis and modelling methods for this purpose.
  3. 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.
  4. 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.
  5. Ability to design and conduct experiments, gather data, analyse and interpret results for investigating complex engineering problems or discipline specific research questions.
  6. Ability to work efficiently in intra-disciplinary and multi-disciplinary teams; ability to work individually.
  7. 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.
  8. 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.
  9. Consciousness to behave according to ethical principles and professional and ethical responsibility; knowledge on standards used in engineering practice.
  10. Knowledge about business life practices such as project management, risk management, and change management; awareness in entrepreneurship, innovation; knowledge about sustainable development.
  11. 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 Average
L01 - - - - - - - - - - - -
L02 - - - - - - - - - - - -
L03 - - - - - - - - - - - -
L04 - - - - - - - - - - - -
L05 - - - - - - - - - - - -
L06 - - - - - - - - - - - -