Prof.Dr. Selim AKYOKUŞ, Lect. Malek Jamal Abdulah MALKAWI
Assistant(s)
Aim
This course introduces fundamentals of programming, problem solving and algorithm development for students with little or no prior programming experience using Pyhton programming language. The objective of this course is to prepare students for more advanced programming courses as well as providing an understanding of computation in problem solving and engineering as a self-contained course for those students who want to write programs for their studies and professional work. The course emphasizes structured programming, algorithmic and object thinking in a problem-driven way after teaching fundamental concepts and structures. Topics include an introduction to computers, programming languages and Pyhton; elementary programming, selections, data types, strings, iteration, functions, GUIs (graphical user interfaces), objects and classes, inheritance and polymorphism, lists (arrays) and multidimensional lists, sets and dictionaries, files, exceptions and recursion. Weekly laboratories and assignments with different problems, practice and coding exercises will improve student's capabilities and fluency in programming.
Course Content
This course contains; Introduction to Computers, Programming, and Python,Elementary Programming,Mathematical Functions, Strings, and Objects,Selection statements,Loops,Loops,Functions,Lists, Multidimensional Lists, Tuples, Sets, and Dictionaries,Basic GUI Programming,Advanced GUI Programming ,Inheritance and Polymorphism,Files and Exception Handling,Recursion,Developing Efficient Algorithms.
Dersin Öğrenme Kazanımları
Teaching Methods
Assessment Methods
Understand programming concepts and techniques using Python Language.
12, 16, 9
A, E
Use control statements, loops, functions, and lists.
12, 14, 17, 9
A, E, F
Understand the differences between procedural and object-oriented paradigms.
12, 14, 17, 9
A, E, F
Develop custom classes using encapsulation, polymorphism, inheritance, and abstraction.
12, 14, 16, 17, 2, 9
A, E, F
Learn how to use files, exceptions and build GUIs.
12, 14, 16, 17, 2, 9
A, E, F
Analyze and design strategies for solving basic programming problems.
12, 14, 16, 17, 9
A, E, F
Teaching Methods:
12: Problem Solving Method, 14: Self Study Method, 16: Question - Answer Technique, 17: Experimental Technique, 2: Project Based Learning Model, 9: Lecture Method
Assessment Methods:
A: Traditional Written Exam, E: Homework, F: Project Task
Course Outline
Order
Subjects
Preliminary Work
1
Introduction to Computers, Programming, and Python
2
Elementary Programming
3
Mathematical Functions, Strings, and Objects
4
Selection statements
5
Loops
6
Loops
7
Functions
8
Lists, Multidimensional Lists, Tuples, Sets, and Dictionaries
9
Basic GUI Programming
10
Advanced GUI Programming
11
Inheritance and Polymorphism
12
Files and Exception Handling
13
Recursion
14
Developing Efficient Algorithms
Resources
- Y. Daniel Liang, Introduction to Programming Using Python, 2nd Ed., Pearson, 2019.
- Allen B. Downey, Think Python How to Think Like a Computer Scientist 2nd Ed., OReilly Media, 2015.
Lecture notes that will be delivered during the classes.
Course Contribution to Program Qualifications
Course Contribution to Program Qualifications
No
Program Qualification
Contribution Level
1
2
3
4
5
1
1. An ability to apply knowledge of mathematics, science, and engineering
X
2
2. An ability to identify, formulate, and solve engineering problems
X
3
3. An ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability
X
4
4. An ability to use the techniques, skills, and modern engineering tools necessary for engineering practice
X
5
5. An ability to design and conduct experiments, as well as to analyze and interpret data
X
6
6. An ability to function on multidisciplinary teams
X
7
7. An ability to communicate effectively
X
8
8. A recognition of the need for, and an ability to engage in life-long learning
X
9
9. An understanding of professional and ethical responsibility
X
10
10. A knowledge of contemporary issues
X
11
11. The broad education necessary to understand the impact of engineering solutions in a global, economic, environmental, and societal context
X
Assessment Methods
Contribution Level
Absolute Evaluation
Rate of Midterm Exam to Success
30
Rate of Final Exam to Success
70
Total
100
ECTS / Workload Table
Activities
Number of
Duration(Hour)
Total Workload(Hour)
Course Hours
42
1
42
Guided Problem Solving
10
7
70
Resolution of Homework Problems and Submission as a Report
8
3
24
Term Project
0
0
0
Presentation of Project / Seminar
0
0
0
Quiz
2
5
10
Midterm Exam
1
22
22
General Exam
1
22
22
Performance Task, Maintenance Plan
0
0
0
Total Workload(Hour)
190
Dersin AKTS Kredisi = Toplam İş Yükü (Saat)/30*=(190/30)
6
ECTS of the course: 30 hours of work is counted as 1 ECTS credit.
Detail Informations of the Course
Course Description
Course
Code
Semester
T+P (Hour)
Credit
ECTS
INTRODUCTION to PROGRAMMING
-
Fall Semester
3+2
4
6
Course Program
Prerequisites Courses
Recommended Elective Courses
Language of Course
English
Course Level
First Cycle (Bachelor's Degree)
Course Type
Required
Course Coordinator
Prof.Dr. Selim AKYOKUŞ
Name of Lecturer(s)
Prof.Dr. Selim AKYOKUŞ, Lect. Malek Jamal Abdulah MALKAWI
Assistant(s)
Aim
This course introduces fundamentals of programming, problem solving and algorithm development for students with little or no prior programming experience using Pyhton programming language. The objective of this course is to prepare students for more advanced programming courses as well as providing an understanding of computation in problem solving and engineering as a self-contained course for those students who want to write programs for their studies and professional work. The course emphasizes structured programming, algorithmic and object thinking in a problem-driven way after teaching fundamental concepts and structures. Topics include an introduction to computers, programming languages and Pyhton; elementary programming, selections, data types, strings, iteration, functions, GUIs (graphical user interfaces), objects and classes, inheritance and polymorphism, lists (arrays) and multidimensional lists, sets and dictionaries, files, exceptions and recursion. Weekly laboratories and assignments with different problems, practice and coding exercises will improve student's capabilities and fluency in programming.
Course Content
This course contains; Introduction to Computers, Programming, and Python,Elementary Programming,Mathematical Functions, Strings, and Objects,Selection statements,Loops,Loops,Functions,Lists, Multidimensional Lists, Tuples, Sets, and Dictionaries,Basic GUI Programming,Advanced GUI Programming ,Inheritance and Polymorphism,Files and Exception Handling,Recursion,Developing Efficient Algorithms.
Dersin Öğrenme Kazanımları
Teaching Methods
Assessment Methods
Understand programming concepts and techniques using Python Language.
12, 16, 9
A, E
Use control statements, loops, functions, and lists.
12, 14, 17, 9
A, E, F
Understand the differences between procedural and object-oriented paradigms.
12, 14, 17, 9
A, E, F
Develop custom classes using encapsulation, polymorphism, inheritance, and abstraction.
12, 14, 16, 17, 2, 9
A, E, F
Learn how to use files, exceptions and build GUIs.
12, 14, 16, 17, 2, 9
A, E, F
Analyze and design strategies for solving basic programming problems.
12, 14, 16, 17, 9
A, E, F
Teaching Methods:
12: Problem Solving Method, 14: Self Study Method, 16: Question - Answer Technique, 17: Experimental Technique, 2: Project Based Learning Model, 9: Lecture Method
Assessment Methods:
A: Traditional Written Exam, E: Homework, F: Project Task
Course Outline
Order
Subjects
Preliminary Work
1
Introduction to Computers, Programming, and Python
2
Elementary Programming
3
Mathematical Functions, Strings, and Objects
4
Selection statements
5
Loops
6
Loops
7
Functions
8
Lists, Multidimensional Lists, Tuples, Sets, and Dictionaries
9
Basic GUI Programming
10
Advanced GUI Programming
11
Inheritance and Polymorphism
12
Files and Exception Handling
13
Recursion
14
Developing Efficient Algorithms
Resources
- Y. Daniel Liang, Introduction to Programming Using Python, 2nd Ed., Pearson, 2019.
- Allen B. Downey, Think Python How to Think Like a Computer Scientist 2nd Ed., OReilly Media, 2015.
Lecture notes that will be delivered during the classes.
Course Contribution to Program Qualifications
Course Contribution to Program Qualifications
No
Program Qualification
Contribution Level
1
2
3
4
5
1
1. An ability to apply knowledge of mathematics, science, and engineering
X
2
2. An ability to identify, formulate, and solve engineering problems
X
3
3. An ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability
X
4
4. An ability to use the techniques, skills, and modern engineering tools necessary for engineering practice
X
5
5. An ability to design and conduct experiments, as well as to analyze and interpret data
X
6
6. An ability to function on multidisciplinary teams
X
7
7. An ability to communicate effectively
X
8
8. A recognition of the need for, and an ability to engage in life-long learning
X
9
9. An understanding of professional and ethical responsibility
X
10
10. A knowledge of contemporary issues
X
11
11. The broad education necessary to understand the impact of engineering solutions in a global, economic, environmental, and societal context