Skip to main content

BIM 109 - Introduction to Algorithms and Programming

Faculty of Engineering and Natural Sciences · Computer Engineering · Undergraduate

ECTS: 5 T+P+L: 2+0+2 Compulsory
Coordinator: Dr. Öğr. Üyesi ARTRIM KJAMILJI
Instructors: Dr. Öğr. Üyesi ARTRIM KJAMILJI

Course Objective

The objective of this course is to introduce students to the field of computing and problem solving with the help of an object-oriented programming language (C++). Hence the course will cover many C++ features in detail as needed so students will also be learning a structured programming language. 
Through the lectures, interactive recitations, assignments, exams, student activities, students will learn how to design algorithms based on object-oriented programming paradigms. Evaluation of the solutions in terms of correctness and efficiency will also be covered

Course Content

1.
o    Introduction to Programming Languages, 
o    Data Representation (bits and bytes), 
o    Basic programming structure and concepts: identifiers, literals, symbols, variables, screen input/output (cin and cout)
2.    
o    Basic data types (int/double/char/bool) and basic arithmetic operations with their precedence, 
o    First C++ program with Visual MS Studio
3.    
o    Functions with/out return values, function prototypes
o    Parameter passing (pass by value and by reference),  
4.    
o    Conditional statements (if-else), nested else-if statements, 
o    Logical operators (&&, ||, !)
5.    
o    String class, 
o    Loops (while, for, do-while) 
6.    
o    Char data type and arithmetic operations
7.    
o    File I/O, console stream cin, input and output file streams, 
o    String streams

8.    
o    Structs, enum, 
o    Vectors/arrays and vector operations: 
    Insert/delete to a vector
    Searching (Sequential, binary) 
    Sorting (selection and insertion sort)
9.    
o    Vector of structs, matrix 
o    Introduction to algorithm complexity analysis

10.    Classes and objects: using and modifying existing classes such as Dice, RandGen, Date.
 

Required Resources

“A Computer Science Tapestry”, 2nd Edition, Owen L. Astrachan

Recommended Resources

Deitel, P., & Deitel, H. (2012). C How to program. Prentice Hall Press.

Rules

•    Medical reports must be submitted before the exam. In the event of last-minute issues or an inability to visit a healthcare facility due to COVID-19, the instructor must be notified prior to the exam. Excuses submitted after the exam will not be accepted.
•    Submitting a medical report does not automatically grant the right to a make-up exam. The validity of the report and the necessity of a make-up exam are at the instructor's discretion.
•    To ensure fairness, students taking make-up exams may face more difficult questions. Make-up exams may be conducted entirely or partially as oral exams.
•    Letter grades are not determined solely by the weighted average; imbalances between exam and assignment performances are also taken into consideration.
•    Attendance at lectures, laboratories, and practical sessions is expected. Absences do not entitle you to extra time.
•    You are responsible for topics covered in class, even if they do not appear in the lecture notes.
•    Check your email account and the Moodle platform regularly for announcements.
•    You are advised to study regularly and in a timely manner rather than relying on last-minute study sessions. Consultation hours held on the final day are usually very busy.
•    Submitting an assignment that is identical to another or has only been partially modified counts as plagiarism.
•    Collaboration (except for group projects) is not a valid excuse.
•    If plagiarism is detected, penalties will be applied to both parties involved:
•    First offense: –100 points
•    Recurrence: Failure of the course
•    Plagiarism, cheating, and receiving remote or unauthorized assistance are strictly prohibited, and penalties will be applied in accordance with relevant regulations.

 

Course Learning Outcomes

  1. 1. Students understand well basic programming concepts such as: syntax, data types, identifiers, literals, symbols, variables, data representation, compiling, etc.
  2. 2. Students have solid understandings of function and can write programs using them.
  3. 3. Students have solid understandings of conditional statements (if/else statements) and loops (for and while) and can write programs using them
  4. 4. Students have solid understandings classes and objects with examples such as: strings, char, file and I/O streams, etc., and can write programs using them.
  5. 5. Students have solid understandings vectors and arrays and can write programs using them.

Core Area Distribution

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

Teaching Methods

ExpressionQuestion-AnswerDiscussionExercise and PracticeGroup StudyBrain StormingSelf studyProblem Solving

Assessment & Evaluation

HomeworkProject / DesignTesting (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
Quiz717
Assignment000
Practice15230
Final122

Course Schedule

WeekSubjectPreparation
1Introduction to Programming Languages, ○ Data Representation (bits and bytes), ○ Basic programming structure and concepts: data types, identifiers, literals, symbols, variables, screen input/output (cin and cout)
2Basic data types (int/double/char/bool) and basic arithmetic operations with their precedence, ○ First C++ program with Visual MS StudioRepeat 1. week
3Functions with/out return values, function prototypes ○ Parameter passing (pass by value and by reference),Repeat 2. week
4Conditional statements (if-else), nested else-if statements, ○ Logical operators (&&, ||, !, etc.)Repeat 3. week
5String classRepeat 4. week
6Loops (while, for, do-while)Repeat 5. week
7Char data type and arithmetic operationsRepeat 6. week
8MidtermRepeat of weeks 1–7.
9File I/O, console stream cin, input and output file streams,-
10String streamsRepeat 9. week
11Structs, enum, ○ Vectors/arrays and vector operations: ■ Insert/delete to a vectorRepeat 10. week
12Searching (Sequential, binary) ■ Sorting (selection and insertion sort)Repeat 11. week
13Vector of structs, matrixRepeat 12. week
14Classes and objects: using and modifying existing classes.Repeat 13. week
15Preparations for the final examRepat 1. - 14. week
16Final ExamRepeat of weeks 1–15