Skip to main content

YAM 107 - Introduction to Algorithms and Programming

Faculty of Engineering and Natural Sciences · Software Engineering (English 30%) · Undergraduate

ECTS: 5 T+P+L: 1+0+2 Compulsory
Coordinator: Dr. Öğr. Üyesi Şengül BAYRAK
Instructors: Dr. Öğr. Üyesi Abdullah SÖNMEZ

Course Objective

The Introduction to Algorithms and Programming course aims to equip students with the essential foundational knowledge and skills to step into the world of programming using the C programming language.

Course Content

The course will cover fundamental programming concepts such as variables, data types, operators, loops, conditional statements, and functions. Within the scope of the course, students will acquire skills in algorithm development and problem-solving.

 

The course aims to provide students with the ability to debug programs and troubleshoot issues effectively. It also focuses on enhancing programming logic and problem-solving skills, teaching students how to break down complex problems into simple steps for solution.

Course Learning Outcomes

  1. Students acquire the skills to break down complex problems into smaller, manageable steps and express these steps clearly and effectively through algorithm development.
  2. Students gain an understanding of the fundamental concepts and structure of the programming language. This includes programming constructs such as variables, data types, operators, loops, conditional statements, and functions.
  3. Students develop basic knowledge and skills to understand and use the C programming language.
  4. Students become familiar with fundamental data structures and algorithms.
  5. Students learn the skills to identify, correct, and test code errors.
  6. Students gain the ability to analyze and solve complex problems.
  7. Students enhance their ability to complete programming projects through collaboration and group work.
  8. Students develop the skills to adhere to coding standards and write code that is readable and maintainable.
  9. The course provides students with a fundamental introduction to computer science and establishes a foundation for further exploration in this field.
  10. Students gain self-efficacy in programming and algorithm development, allowing them to apply these skills in future projects or endeavors

Core Area Distribution

(48) Computing%50 (52) Engineering and Engineering Trades%50

Teaching Methods

ExpressionQuestion-AnswerExercise and PracticeProblem Solving

Assessment & Evaluation

Testing (Essay / Tests: True-Falls, multiple-choice, short answer, matching)

ECTS / Workload

ActivityQuantityDuration (h)Total Workload
Course Duration (Including Exam Week)15345
Out of Class Study Period15230
Midterm122
Quiz414
Assignment000
Practice15230
Final122

Course Schedule

WeekSubjectPreparation
1Introduction to C Programming - Compilers & Interpreters
2Algorithms, Pseudocode, Flowcharts - Basic Concepts for Programming (Tokens, Expressions, Left Value, Right Value)Repeat 1. week
3Algorithms, Pseudocode, Flowcharts - Basic Concepts for Programming (Tokens, Expressions, Left Value, Right Value)Repeat 2. week
4Statements (if, if… else, while, for, switch … case, do while, break&continue)Repeat 3. week
5Statements (if, if… else, while, for, switch … case, do while, break&continue)Repeat 4. week
6OperatorsRepeat 5. week
7Type ConversionRepeat 6. week
8MidtermRepeat 1.- 7. week
9Arrays and Matrixes-
10FunctionsRepeat 9. week
11PointersRepeat 10. week
12Characters & StringsRepeat 11. week
13File ProcessingRepeat 12. week
14Dynamic Memory ManagementRepeat 13. week
15Final ExamRepat 1. - 14. week