پرش به مطلب اصلی

مبانی کامپیوتر و برنامه‌سازی

Computer Fundamentals and Programming


نام درس:مبانی کامپیوتر و برنامه‌سازیمقطع:کارشناسی
پیش‌نیاز:نداردگروه درس:پایه
هم‌نیاز:نداردنوع درس:نظری
تعداد واحد:3تعداد ساعت:48
حل تمرین:دارد

سرفصل درس:

آشنایی مقدماتی با ساختار کامپیوتر، معرفی کلی اجزاء سخت افزاری یک کامپیوتر به عنوان یک مدل محاسباتی، ارتباط بین اجزاء مختلف، بیان ساده ترین عملیات اولیه انجام شونده توسط این مدل محاسباتی،معرفی الگوریتم های ساده بر اساس این عملیات اولیه، بررسی الگوریتم‌های مسائل ساده از قبیل: جمع چند عدد- میانگین- جستجو و ،.... معرفی یک زبان برنامه نویسی سطح بالا برای اجرای الگوریتم های ارائه شده، معرفی متغیر و ثابت ها، آشنایی مقدماتی با ساختار کامپیوتر، برنامه نویسی و ارائه الگوریتم مستقل از زبان، معرفی متغیرها و ثابتها، عبارات شرطی-کنترلی، انواع حلقه ها، متودها و پارامترها، کار با آرایه و فایل، مفهوم زمان اجرا و حافظه مصرفی، مفهوم الگوریتمهای بازگشتی، الگوریتم های جستجو و مرتب سازی.

راهبردهای تدریس و یادگیری متناسب با محتوا و هدف:

از آنجا که در این برنامه درسی، چند درس به موضوع برنامه‌نویسی اختصاص یافته است، شایسته است در این درس پایه، تاکید اصلی بر تقویت مهارت حل مسأله و الگوریتم‌نویسی دانشجویان باشد. لحاظ کردن مثالها و تمرین‌های متنوع و جالب و مشارکت دانشجویان در مباحث درس و بیان روش‌های مختلف حل یک مسأله می‌تواند ترغیب کننده دانشجویان به فراگیری درس باشد. آشنایی دانشجویان با وب‌گاه‌های برگزاری مسابقات و چالش‌های برنامه‌نویسی و آموزش‌های متنوع دردسترس و انجام پروژه مثمرثمر خواهد بود.

نکته: درصورتی که در مبانی کامپیوتر زبان پایتون تدریس می‌شود، می‌توان از این سرفصل استفاده کرد: مقدمه ای بر الگوریتم. متغیرها. ورودی خروجی. ساختارهای کنترلی. ساختارهای تکرار. توابع. آرایه‌ها، ساختارهای داده‌ای پایه‌ای در پایتون همچون رشته‌، لیست‌، تاپل و دیکشنری. کتابخانه‌های معمول همچون Numpy، Scipy. عملیات روی آرایه‌های نامپای، مانند اندیس دهی و برش، ufunc. کار با فایلها، حوزه شناسایی متغیرها، اشکالزدایی برنامه، جستجو و مرتب‌سازی، مستندسازی، کتابخانه‌هایی همچون SymPy برای عملیات ریاضی نمادین و PyGame.

منابع:

  • Horton, I. (2013). Beginning C (Expert's Voice in C). Apress. [PDF]

  • Downey, A., Scheffler, T. (1999). How to Think Like a Computer Scientist: C Version. Green Tea Press. https://github.com/tscheffl/ThinkC

  • Downey, A. (2012). How to Think Like a Computer Scientist: C++ Version. Green Tea Press. https://open.umn.edu/opentextbooks/textbooks/619

  • Wentworth, P., Elkner, J., Downey, A. B., & Meyers, C. (2011). How to Think Like a Computer Scientist: Learning with Python (3rd ed.). https://openbookproject.net/thinkcs/python/english3e/

  • Matthes, E. (2019). Python Crash Course: A Hands-On, Project-Based Introduction to Programming. No Starch Press.

  • Downey, A. (2015). Think Python: How to Think Like a Computer Scientist (2nd ed.). Green Tea Press.

  • Campbell, J., Gries, P., Montojo, J., & Wilson, G. (2009). Practical Programming: An Introduction to Computer Science Using Python. The Pragmatic Bookshelf.

  • Zelle, J. M. (2004). Python Programming: An Introduction to Computer Science. Franklin, Beedle & Associates.

  • Gorelick, M., & Ozsvald, I. (2014). High-Performance Python. O’Reilly Media, Inc.

  • Lutz, M. (2013). Learning Python (5th ed.). O'Reilly Media.

  • Barry, P., & Griffiths, D. (2009). Head First Programming. O'Reilly Media.

  • Draper, B. (2020). Python Programming: A Complete Guide For Beginners To Master And Become An Expert.

  • Introduction To Computer Science And Programming In Python, MIT Open Courseware

  • Some other references: https://github.com/ambadidi/Python-Books

  • Coding Games and Programming Challenges to Code Better (codingame.com)