All Projects → rambasnet → Python-Fundamentals

rambasnet / Python-Fundamentals

Licence: other
Jupyter Notebooks for How to Think Like a Computer Scientist - Learning with Python 3 (RLE) Textbook

Programming Languages

Jupyter Notebook
11667 projects

Projects that are alternatives of or similar to Python-Fundamentals

c2c2017
Course material and references for Campus To Corporate course, 2017.
Stars: ✭ 36 (+20%)
Mutual labels:  programming, coding, teaching-materials
Interactive Coding Challenges
120+ interactive Python coding interview challenges (algorithms and data structures). Includes Anki flashcards.
Stars: ✭ 24,317 (+80956.67%)
Mutual labels:  programming, coding
Programmingdesignsystems.com
The book!
Stars: ✭ 288 (+860%)
Mutual labels:  programming, coding
Guide To Staying Productive
If you're looking for ways to stay motivated and focused, while still having fun, this guide is for you! Contributions and any kind of improvements are very welcome!
Stars: ✭ 116 (+286.67%)
Mutual labels:  programming, coding
Data-structures
Data Structures in Java
Stars: ✭ 13 (-56.67%)
Mutual labels:  programming, datastructures
Telegram List
List of telegram groups, channels & bots // Список интересных групп, каналов и ботов телеграма // Список чатов для программистов
Stars: ✭ 3,362 (+11106.67%)
Mutual labels:  programming, coding
Hackphiles
BruteForce Tool For both Instagram and Facebook
Stars: ✭ 57 (+90%)
Mutual labels:  programming, coding
awesome-learn-by-playing
A collection of tech resources that allow you to learn new things by playing games
Stars: ✭ 95 (+216.67%)
Mutual labels:  programming, coding
State Of The Art Shitcode
💩State-of-the-art shitcode principles your project should follow to call it a proper shitcode
Stars: ✭ 2,207 (+7256.67%)
Mutual labels:  programming, coding
Android Cheat Sheet
Cheat Sheet for Android Interviews
Stars: ✭ 1,891 (+6203.33%)
Mutual labels:  programming, coding
Learning Go
Source code repository for my book "Learning Go Programming"
Stars: ✭ 194 (+546.67%)
Mutual labels:  programming, coding
YLib
📖 Kişisel Kütüphanem
Stars: ✭ 19 (-36.67%)
Mutual labels:  programming, coding
HALO-SCRIPT-PROJECTS
✅ Halo PC|CE - Add-ons for Phasor V2+ and SAPP 🇳🇿
Stars: ✭ 25 (-16.67%)
Mutual labels:  programming, coding
yt-channels-DS-AI-ML-CS
A comprehensive list of 180+ YouTube Channels for Data Science, Data Engineering, Machine Learning, Deep learning, Computer Science, programming, software engineering, etc.
Stars: ✭ 1,038 (+3360%)
Mutual labels:  programming, coding
codeReads
goodReads (pun intended) for coding and programming
Stars: ✭ 29 (-3.33%)
Mutual labels:  programming, coding
Cs Fundamentals
🎓 Data structures and algorithms
Stars: ✭ 869 (+2796.67%)
Mutual labels:  programming, coding
ds-algo-placement-resources
A complete roadmap and resources for competitive programming for placement purpose.
Stars: ✭ 58 (+93.33%)
Mutual labels:  programming, coding
Competitive-Programming-Codes
Includes codes from coding competitions and contests over the internet. Languages:- Python3 and C++
Stars: ✭ 14 (-53.33%)
Mutual labels:  programming, coding
Competitiveprogrammingquestionbank
This repository contains all the popular competitive programming and DSA questions with solutions.
Stars: ✭ 122 (+306.67%)
Mutual labels:  programming, coding
Effective Shell
Text, samples and website for my 'Effective Shell' series.
Stars: ✭ 204 (+580%)
Mutual labels:  programming, coding

FDS Python: Fundamentals and Data Structures with Python

These jupyter notebooks are based on open-source textbook "How to Think Like a Computer Scientist: Learning with Python 3 (RLE)" by Peter Wentworth, Jeffrey Elkner, Allen B. Downey, and Chris Meyers found online here.

The primary goal of these notebooks is to help instructors easily adopt the open-source textbook to teach programming and problem solving using Python in an interactive and hands-on approach (a.k.a. learning-by-doing). Some new chapters with important concepts and topics have been added and some existing chapters have been slightly reordered. These notebooks primarily consist of outlines of theoritical concepts, keywords and definitions along with code, code visualization compounded by appropriately challenging intercollegiate programming contests problems where applicable to help students engage in the challenging concepts of coding and problem solving.

See paper.md file for statement of need.

Notebook mapping with corresponding book chapter

Note: If book chapter is missing, texbook doesn't provide one on the topic

Notebook -> Think Python3 Textbook
Ch01-Introduction Chapter 1: The way of the program
Ch02-1-Data, Variables, Std IO Chapter 2: Data, Variables and Standard IO
Ch02-2-BitwiseOperators Number Systems & Bitwise Operators
Ch03-1-Functions-Built-in Examples of some built-in functions
Ch03-2-Functions-Library Examples of standard libraries, e.g., math
Ch03-3-Functions-UserDefined Chapter 4 and 6: Functions and Fruitful functions
Ch03-4-Functions-Advanced Some advanced topics on function
Ch04-Conditionals Chapter 5: Conditionals
Ch05-Iterations Chapter 7: Iteration - for and while loops
Ch06-Strings Chapter 8: Strings
Ch07-Tuples Chapter 9: Tuples
Ch08-1-Lists Chapter 11: Lists
Ch08-2-Lists-Advanced List comprehension, Lambda function, map, reduce, filter
Ch09-1-Dictionaries Chapter 20: Dictionaries
Ch09-2-Built-in-DataStructures zip, set, Collections: OrderedDict, defaultdict, Counter
Ch10-1-Files Chapter 13: Files - with, open, text file
Ch10-2-Files-Advanced Chapter 13: urllib, pickle, binary files, checksums
Ch11-Turtles-Events Chapter 3 & 10
Ch12-ModulesAndPackages Chapter 12: Modules - built-in and user-defined
Ch13-Recursion Chapter 18: Recursion
Ch14-OOP Chapter 15, 16 Classes and Basics
Ch15-Overloading-Polymorphism Chapter 21 and 22
Ch16-Exceptions Chapter 19 Exceptions
Ch17-PyGame Chapter 17 PyGame
Ch18-Inheritance Chapter 23 Inheritance
Ch19-Unittest UnitTest Framework
Ch20-Memoization-Optimization Basics of Dynamic Programming
Ch21-SqliteDB Intro to Sqlite3 Database
Ch22-LinkedLists Chapter 24 Linked Lists
Ch23-Stacks Chapter 25 Stacks
Ch24-Queues Chapter 26 Queues
Ch25-Trees Chapter 27 Trees

PDF Format

  • pdf version of all the notebooks can be found in pdfs folder

Who can use these notebooks

University and High-school Coding Instructors

Depending on the course level and topics covered, instructors can pick and choose appropriate chapters. E.g., we've used Chapter 1 - 15 (skipping some chapters such as Functions-Lambda) in Beginning programing 3/4-credit university courses (CS0 and CS1) where students have no prior experience to programming. On the other hand, we've also used all the chapters for 2-credit advanced programing courses where students have some prior programming experiences in Python or other programming languages (CS1, CS2 level).

Self learners

Depending on their skill and interest level, learners can move as swiftly as appropriate through the chapters. Try solving some exercises towards the end of each chapter before moving on to self-assess the mastery of the materials.

How to use these notebooks

Important

In order to learn coding, it's very important to actually type code on your own from scratch and NOT copy paste! You can run provided cells to see the output, follow along and learn from it. However, it's very important that you either start a new notebook or add cells and write your own code from scratch to practice the concepts covered with many similar examples and solve the exercises provided.

Online services

You can launch an interactive session of this project using online Binder service: Binder or Google Colab. Each chapter, where applicable, provides Open In Colab to simply click and run the notebook in Google's Colab environment.

On a local system

To run these notebooks interactively and save your work locally, you need [Python 3][https://www.python.org/] and Jupyter Notebook -- an interactive web-based editor that allows you to create and share documents that contain live code and data. Anaconda or Miniconda is the recommended way to install Python and other packages on all modern platforms.

Installing via Anaconda or Miniconda

Anaconda or Miniconda has Python 3 and many other packages that you can easily install on any platform (Windows, Linux, and Mac). First, install Anaconda: http://docs.continuum.io/anaconda/install/ or Miniconda https://conda.io/docs/user-guide/install/index.html for Python 3.

After installing anaconda or miniconda, open a terminal or cmd prompt and run the following commands:

    conda update conda
    conda install notebook # or
    conda install -c conda-forge retrolab # uses notebook

Running the notebooks in VS Code

  • Python notebooks can be run natively in VS Code. Simply open the notebook file with extension ipynb in VS Code and run each cell; add new cell, etc. right from VS Code.

Running the notebooks using jupyter notebook server

Once Python 3 and Jupyter Notebook are installed, open a terminal change working directory using cd command to go into the folder where this repo is cloned and run the notebook from there:

    cd <directory where this repo is cloned>
    jupyter notebook # or
    jupyter retro

This will start a Jupyter session in your browser. Open any chapter and start coding...

Contributing

Contributions are accepted via pull requests. You can also open issues on bugs, typos or any corrections and suggest improvements on the notebooks.

Copyright and License

© 2019 Ram Basnet and T. Doleck. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation. See LICENSE file for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].