ساختمان داده - دکتر اسکندری - پاییز ۱۴۰۴
استاد: دکتر اسکندری
دستیاران آموزشی ارشد: امیرحسین همتی، حمید نامجو
دستیاران آموزشی: علی مجاهد، فاطمه امیری، هستی طباطبایی، نرجس نصیری، یاسمن نارنگیفرد
لینک گروه: https://t.me/DS_Fall2025_Group
لینک کانال: https://t.me/DS_Fall2025
اخبار و اطلاعیههای کلاس
جلسه توجیهی (جلسه صفر!)
جلسه توجیهی درس ساختمان داده روز دوشنبه ۳۱ شهریور ساعت ۱۰ صبح توسط دستیاران آموزشی برگزار خواهد شد. مکان جلسه متعاقباً اعلام میشود.
برای کسانی که موفق به شرکت در جلسه نشدند، میتوانید اسلایدها را از طریق لینک زیر مشاهده کنید:
🔗 لینک ارائه: Presentation Link
1404/6/17شروع کلاسها
اولین جلسه کلاس ساختمان داده طبق برنامه انتخاب واحد از تاریخ دوشنبه ۷ مهر ماه ۱۴۰۴ آغاز میشود.
1404/6/31یادگیری پایتون
موفقیت در درس و ازمون ها و تکالیف بسیار زیاد به مهارت شما در برنامه نویسی به زبان پایتون مرتبط است. در صورتی که برای فراگیری پایتون نیاز به راهنمایی دارید به دکتر اسکندری مراجعه کنید.
1404/7/01معرفی دستیاران آموزشی (TAها)
سرپرستهای دستیار آموزشی
دستیاران آموزشی
منابع تکمیلی
منابع پیشنهادی جهت پیش آموزش های پایه ای و ضروری:
- نصب پایتون ⬅️ Real Python: Installing Python
-
مروری بر کلیات پایتون ⬅️
علاوه بر ۳۰ صفحهی اول جزوه از این منابع هم میتوانید استفاده کنید:
Kaggle: Hello Python (منبع پیشنهادی)
Stanford: Python Review (PDF)
W3Schools: Python Intro - نصب Jupyter Notebook و اجرای آن در بستر گوگل کروم⬅️ Saturn Cloud: How to open Jupyter Notebook in Chrome
-
مروری بر ریاضیات گسسته ⬅️
کانال تلگرام شریف IE (منبع پیشنهادی)
مکتبخونه: ریاضیات گسسته -
آموزشی اولیه برای کتابخانههای Matplotlib, NumPy و Math⬅️
YouTube: Matplotlib Tutorial (Derek Banas)
YouTube: Python NumPy Tutorial for Beginners (freeCodeCamp.org)
Python Docs: Math Module
منابع تکمیلی پیشنهادی بیشتر(اگر که مشتاق هستید)😅:
-
بصری سازی نحوه کار الگوریتم ها مرتب سازی
Sorting Algorithm Visualizer📉📈
(Made by Hamid Namjoo😊)
-
ویدیوهای آموزشی برای درک بصری الگوریتمها:
Tushar Roy - Coding Made Simple
Michael Sambol - Data structures and algorithms in X minutes
YouTube: Reducible
YouTube: CS Dojo
YouTube: MyCodeSchool
Sorting Visualizer Tutorial
وبسایت: VisuAlgo.net
وبسایت: GeeksforGeeks (بخش Visualizer)
-
پلتفرمهای تمرین و حل مسئله:
LeetCode
HackerRank
Codeforces
TopCoder
Codewars
AtCoder
-
کتابهای تکمیلی:
(پیادهسازی ساختمان داده و الگوریتم با پایتون)
Data Structures and Algorithms in Python (Goodrich et al.)
(پیادهسازی ساختمان داده با پایتون)
Grokking Algorithms (Aditya Bhargava)
(الگوریتمها با رویکرد مصور و ساده)
Cracking the Coding Interview (Gayle Laakmann McDowell) - (تمرکز بر مصاحبههای استخدامی)
Elements of Programming Interviews (EPI) - (مسائل و راهحلهای عملی)
Algorithm Design (Jon Kleinberg, Éva Tardos) - (طراحی الگوریتم)
Algorithms Unlocked (Thomas H. Cormen) - (مقدمهای روانتر بر الگوریتمها)
-
دورههای آنلاین جامع:
Coursera: Algorithms, Part I (Princeton)
Coursera: Algorithms, Part II (Princeton)
Coursera: Data Structures and Algorithms Specialization (UCSD) | پیشنهاد نمیشود
Coursera: Algorithms Specialization (Stanford)
-
منابع برای مباحث خاص:
گرافها و الگوریتمهای گراف:
TutorialsPoint: Graph Data Structure
GeeksforGeeks: Graph Algorithms Introduction
CP-Algorithms: Algorithms for Competitive Programming
TopCoder
برنامهنویسی پویا (Dynamic Programming - DP):
GeeksforGeeks: Dynamic Programming
freeCodeCamp: What is Dynamic Programming?
TopCoder: Dynamic Programming Tutorial
CP-Algorithms: Dynamic Programming (Comprehensive)
الگوریتمهای حریصانه (Greedy Algorithms):
GeeksforGeeks: Greedy Algorithms
Programiz: Greedy Algorithm
درختهای پیشرفته (Advanced Trees):
GeeksforGeeks: AVL Tree
Programiz: Red-Black Tree
B-Tree Visualization (Interactive)
CP-Algorithms: Segment Tree
مجموعههای مجزا (Disjoint Set Union - DSU):
GeeksforGeeks: Disjoint Set Union
TopCoder: Disjoint Set Union (DSU)
درخت فنویک (Fenwick Tree / BIT):
GeeksforGeeks: Fenwick Tree (BIT)
CP-Algorithms: Fenwick Tree
درهمسازی (Hashing - پیشرفته):
GeeksforGeeks: Hashing Data Structure
Hashing Collision Visualization (Interactive)
Educative.io: linear Hash Table Explained and Implementation in Python
تحلیل سرشکن (Amortized Analysis):
CMU Lecture Notes: Amortized Analysis (PDF)
GeeksforGeeks: Amortized Analysis
مرتبسازیهای مقایسهای و غیر مقایسهای:
BytePlus: Comparison vs Non-Comparison Sorts
فیلم جلسات تکمیلی
قوانین کلاس
- حضور منظم در کلاس الزامی است.
- تحویل به موقع تکالیف.
- عدم تقلب در امتحانات و عدم استفاده از LLMها در حل تکالیف.
- در صورت کشف تقلب ( هر نوعی ) علاوه بر اینکه نمره آن تمرین را نمی گیرید؛ از ارسال تکلیف هفته بعد هم محروم میشوید.
- سوالات مربوط به درس در پیوی دستیاران آموزش پرسیده نشود و فقط در گروه تلگرام مطرح شود.
❗️زمان های مهم:
- کلاس درسی: دوشنبه
- زمان انتشار تکالیف: ۹ صبح سه شنبه
- ددلاین ارسال تکالیف: ۲۳:۵۹ جمعه
- زمان انتشار پاسخنامهی تکالیف: ۰۰:۰۰ جمعه