Abstract
ﻓﻲ ھذا اﻟﻔﺻل ﺳوف ﻧﺳﺗﻌرض اﻟﻣواﺿﯾﻊ اﻟﺗﺎﻟﯾﺔ:
اﻟﺣﺻﺔ اﻷوﻟﻰ :ﻣﻘدﻣﺔ ﻓﻲ اﻟﺧوارزﻣﯾﺎت وأﺳﺎﺳﯾﺎت اﻟﺑرﻣﺟﺔ .ﻧﺑدأ أﯾﺿًﺎ ﺑﺄﺳﺎﺳﯾﺎت Pythonوﻧﻧﺷﺊ أول ﺧوارزﻣﯾﺔ ﻟدﯾﻧﺎ.
اﻟﺣﺻﺔ اﻟﺛﺎﻧﯾﺔ :ﻛﯾف ﺗﻘﺎرن ﺑﯾن اﻟﺧوارزﻣﯾﺎت وﺗﻌﻘﯾدھﺎ .ﻧﺑدأ ﺑﮭﯾﺎﻛل ﺑﯾﺎﻧﺎت ﺑﺳﯾطﺔ(Complexity in big O notation) .
اﻟﺣﺻﺔ اﻟﺛﺎﻟﺛﺔ :اﻻﺳﺗﻣرار ﻓﻲ ھﯾﺎﻛل اﻟﺑﯾﺎﻧﺎت وﺗﻧﻔﯾذھﺎ(Data structures and their implementation):
اﻟﺣﺻﺔ اﻟراﺑﻌﺔ :ﻣﻔﺎھﯾم ﻣﺗﻘدﻣﺔ ﻓﻲ PythonﻣﺛلList comprehension, unpacking, lambda functions :
اﻟﺣﺻﺔ اﻟﺧﺎﻣﺳﺔ :ﻣﺧﺗﻠف اﻟطرق ﻓﻲ ﺣل اﻟﺧوارزﻣﯾﺎت(Algorithm solving technique).
اﻟﺣﺻﺔ اﻟﺳﺎدﺳﺔ :إﻋداد ﻣﻘﺎﺑﻠﺔ ﻓﻲ ﺣل اﻟﻣﺷﻛﻼت(Technical Interview preparation).
ﻣﺪﺧﻞ إﻟﻰ اﻟﺒﺮﻣﺠﺔ
27/03/2020 ﺣﻤﺰة ﺑﻮرﺑﻮح
أﻳﻮب ﻛﺸﻜﺎش
ﻋﻼش ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ؟
● ﺣﯾﺎﺗﻧﺎ ﻣﺣﺎطﺔ ﺑﺎﻟﺗﻛﻧوﻟوﺟﯾﺎ :ﻛﯾف ﺗﻛون ﺻﺎﻧﻊ ﻟﻠﺗﻛﻧوﻟوﺟﯾﺎ ﻋوض ﻣﺳﺗﮭﻠك ﻟﮭﺎ
● إذا ﻛﻧت ﻣﮭﺗﻣﺎ ﺑﺎﻟﮭﻧدﺳﺔ ﻓﻔﻲ اﻟﻐﺎﻟب ﺳﺗﺣﺗﺎج ﻟﻠﺑرﻣﺟﺔ
● ﻟﯾزادت ﻓراس ﺗﻧﻔﻊ (:
ﻣﺎ ﻫﻲ اﻟﺒﺮﻣﺠﺔ؟
إﻋطﺎء ﺧطوات ﻋﻠﻰ ﺷﻛل ﺗﻌﻠﯾﻣﺎت ) (instructionsﻟﻠﺣﺎﺳوب ﻟﺣل ﻣﺷﻛل ﻣﺎ.
ھﺎد اﻟﺗﻌﻠﯾﻣﺎت ﺧﺎص إﺣﺗﺎرﻣو واﺣد اﻟﺗرﻛﯾﺑﺔ اﻟﻠﻐوﯾﺔ ) (syntaxﺧﺎﺻﺔ ﺑﻠﻐﺔ
اﻟﺑرﻣﺟﺔ ﻟﻲ ﻋزﻟﺗﻲ
ﻧﻔﺲ اﻟﻨﺘﻴﺠﺔ، ﻟﻐﺎت ﻣﺨﺘﻠﻔﺔ
#include <stdio.h> print(‘Salam!’) import "fmt"
int main() { func main() {
printf(“Salam!”); fmt.Println("Salam!")
} }
C Python Go
اﻟﺼﻌﻮﺑﺔ دﻳﺎل اﻟﺒﺮﻣﺠﺔ
أﺻﻌب ﺷﺊ ﻣﺎﺷﻲ ھو ﺗﻌﻘل ﻋﻠﻰ syntaxدﯾﺎل programming
languageﻟﻠﻲ ﻛﺗﺧدم
ﺑل اﻷﺻﻌب ھو ﺗﺣط راﺳك ﺑﻼﺳت اﻟﺣﺎﺳوب دﯾﺎﻟك ﻣﻠﻲ ﺗﻛون ﻛﺗﺣﺎول ﺗﻠﻘﻰ
ﺣل
ﻣﺛﻼ ...
][5, 3, 12, 10, 27, 9, 15 أﻛﺒﺮ ﻋﺪد
Variable
ﻣﺗﻐﯾر
.1ﻟﻧﻌﺗﺑر أول ﻋدد ھو أﻛﺑر ﻋدد .ﻧﺳﻣﻲ ھذا اﻟﻌدد max
Loop
.2ﻟﻛل ﻋدد xﻓﻲ اﻟﻘﺎﺋﻣﺔ:
x → max .aإذا ﻛﺎن xأﻛﺑر ﻣن :max
ﻋﻘدة Condition
ﺷرط
.3أﻛﺑر ﻋدد ھو max
أﻛﺒﺮ ﻋﺪد
l = [5, 3, 12, 10, 27, 9, 15]
1. max_num = l[0]
2. for x in l:
3. if x > max_num:
max_num = x
4. print(max_num)
(variables) اﻟﻤﺘﻐﻴﺮات
a = 2 2
a 3
a = 3.2 3.2
a = a + 1 b
4.2
b = a
b = 8 8
Memory representation
Code ﺗﻤﺜﻴﻞ اﻟﺬاﻛﺮة
(variables) اﻟﻤﺘﻐﻴﺮات
a = [11, 12, 3] [11, 12, 3]
a 3
a = ‘salam’ ‘salam’
a = a + ‘ qalam’ b
‘salam qalam’
b = a
b = [99] + [3, 6] [99, 3, 6]
Memory representation
Code ﺗﻤﺜﻴﻞ اﻟﺬاﻛﺮة
(variables) اﻟﻤﺘﻐﻴﺮات
a = [11, 12] [11,12,
[11, 12]3]
a
b = a
a.append(3) # mutates b [11, 12, 3, 10]
b = b + [10] # doesn’t
Memory representation
Code ﺗﻤﺜﻴﻞ اﻟﺬاﻛﺮة
Input/Output اﻟﺘﻮاﺻﻞ ﻣﻊ اﻟﻤﺴﺘﻌﻤﻞ
name = input(“Please enter your name”)
grade = input(“Please enter your age”)
print(f“{name} is {age} years old.”)
Conditions اﻟﺸﺮوط
if <condition1>:
# do something
elif <condition2>:
# do other thing
elif <condition3>:
# do other thing
...
else:
# do something
ﺗﻤﺮﻳﻦ ﺗﻄﺒﻘﻲ 1
اﻛﺗب ﺑرﻧﺎﻣﺞ ﯾﺗﻠﻘﻰ إﺳم و ﻧﻘطﺔ ﺗﻠﻣﯾذ ﯾﻌطﻲ اﻟﻧﻘطﺔ ﻋﻠﻰ ﺷﻛل ﺣرف.
A = 100-90
B = 90-80
C = 70-80
F = 70-0
Loops اﻟﻌﻘﺪة
for <var> in <sequence>: while <condition>:
# do smthg
# do smthg
----
for <var> in range(start, end, step):
# do smthg
ﺗﻤﺮﻳﻦ ﺗﻄﺒﻘﻲ 2
اﻛﺗب ﺑرﻧﺎﻣﺞ ﯾﺗﻠﻘﻰ ﻋدد اﻟﺗﻼﻣﯾذ و ﻧﻘطﮭم و ﯾﻌطﻲ أﻋﻠﻰ و أدﻧﻰ ﻧﻘطﺔ.
ﺗﻤﺮﻳﻦ ﺗﻄﺒﻘﻲ 3
اﻛﺗب ﺑرﻧﺎﻣﺞ ﯾﺗﻠﻘﻰ ﻧﻘط اﻟﺗﻼﻣﯾذ و ﻛﯾﻌطﻲ إﺣﺻﺎﺋﯾﺎت ﻋﻠﻰ ھﺎد اﻟﻧﻘط.
4 ﺗﻤﺮﻳﻦ ﺗﻄﺒﻘﻲ
Guess the output.
Functions اﻟﺪوال
# FUNCTION DEFINITION
# ﺗﻌﺮﻳﻒ اﻟﺪاﻟﺔ
def add(x, y): x=a
# do smthg y=b
result 5
return x + y
x a 1
# FUNCTION CALL
# اﺳﺘﺪﻋﺎء داﻟﺔ
a = 1 y b 4
b = 4
result = add(a, b)
add
Global
Functions اﻟﺪوال
def incr(x):
x = x + 1
a = 2
incr(a)
print(a) # output: 2 x a 2
incr
Global
Functions اﻟﺪوال
def incr(x):
x = x + 1
x = 2
incr(x)
print(x) # output: 2 x x 2
incr
Global
Functions اﻟﺪوال
def add_four(l):
l.append(4)
lst = [0, 3]
add_four(lst)
lst
print(lst) l [0, 3,
3] 4]
incr
Global
ﺗﻤﺮﻳﻦ ﺗﻄﺒﻘﻲ 5
اﻛﺗب ﺑرﻧﺎﻣﺞ ﻛﯾﺗﻌطﺎه ﻧﻘط ،أﺳﻣﺎء و رﻗم ھوﯾﺔ ﺗﻼﻣﯾذ و ﻛﯾﻌطﯾك ﺑﯾﺎﻧﺎت
اﻟﺗﻼﻣﯾذ اﻟﻠﻲ ﺳﻘطو اﻷﻣﺗﺣﺎن
Classes and Objects
class Human: def __init__(self, name, age):
def __init__(self, name, age):
self.age = age
self
self.name = name self self self
age =
4
age = 42 age = 42 name 2
def present(self, f_name): name = ‘Ali’ = ‘Ali’
return f’Salam {f_name}!
Ana {self.name}.’
h1 = Human(‘Ali’, 42)
h1.present(‘Ayoub’)
# output:
# ‘Salam Ayoub! Ana Ali.
Python ﻣراﺟﻊ ﻟﺗﻌﻠم
● Automate the Boring Stuff with Python:
https://automatetheboringstuff.com
● Python Programming Tutorials (Socratica channel):
https://www.youtube.com/playlist?list=PLi01XoE8jYohWFPpC17Z-w
WhPOSuh8Er-
● Python official Tutorials: https://docs.python.org/3/tutorial/
● RealPython channel:
https://www.youtube.com/channel/UCI0vQvr9aFn27yR6Ej6n5UA
ﺷﻜﺮ َا
داﺑﺎ وﻗﺖ اﻷﺳﺌﻠﺔ و اﻟﺒﻠﺒﻠﺔ