Skip to content

alainkaegi/pythonorama

Repository files navigation

Pythonorama

This repository holds topic summaries and questions for some Lewis & Clark computer science courses that use the Python programming language.

We have three purposes in creating this repository:

  1. To keep our own notes and useful links organized.
  2. To provide a place where we can direct students' frequently-asked questions.
  3. To provide a bank of questions and answers, which both serves as a study guide and makes exam creation easier. Answers are provided, but there should be so many questions that memorizing all of the answers is infeasible.

We list additional online and print resources where applicable, trying to list the most valuable ones first. In general, print resources go into more depth or provide a more gentle explanation.

Questions are rated according to their difficulty:

  • ⭐ By the end of the course in question, you should be able to answer these questions immediately off the top of your head. They often involve terminology or basic concepts.
  • ⭐⭐ These questions may take a bit of thought, close reading, experimentation, or research.
  • ⭐⭐⭐ These questions require even more thought.

The table below shows which topics are covered in which courses. Links are to existing pages in Pythonorama. CS 171 is taught in C, but the concepts are very similar between C and Python. DSCI 140 is taught in Python by Peter Drake, but in R by some other instructors.

Topic CS 171
(CS1)
CS 172
(CS2)
CS 369
(AI & ML)
CS 383
(Algo)
CS 488
(SofDev)
DSCI 140
(DataSci)
Basic Python Cheat Sheet x x x x x x
NumPy/Pandas/Matplotlib Cheat Sheet x x
Development Tools
    Command Line x x x x
    Visual Studio Code x
    PyCharm x x x
    Git x
    Jupyter / Google Colab x
Control Structures
    Your First Program x x x x x x
    If Statements x x x x x x
    Loops x x x x x x
    Functional Decomposition x x x x x x
    Recursion x x x x
    Higher-Order Functions x x x
Data Structures
    Built-in Types x x x x x x
    Operators x x x x x x
    Variables x x x x x x
    Strings x x x x x x
    Lists x x x x x x
    References x x x x x
    Equality x x x x x
    Tuples x x x x x
    Sets x x x x x
    Dictionaries x x x x x
    Abstract Base Classes x
    Stacks x x x
    Queues x x x
    Array-based Structures x x
    Linked Structures x x
    Trees x x x x x
    Graphs x x x x
    Binary Search Trees x
    Hash Tables x
    Priority Queues x
    Union-Find x
Algorithms
    Analysis of Algorithms x x
    Search x x
    Traversal x x x
    Algorithmic Strategies x
    Sorting x
    Graph Algorithms x
Style
    Documentation x x x
    Omitting Needless Code x x x
    Names x x x x x x
    Defensive Programming x
Object-Oriented Programming
    Classes and Initializers x x x x
    Methods x x x x
    Magic Methods x x x
    Inheritance x
    Packages x
    Exceptions x
Libraries
    stdlib x
    tkinter x x
    matplotlib x
    numpy x x
    pandas x x
    scikit-learn x x
    tensorflow x
Software Development
    Time Management x x x x x x
    Iterative Development x x x x x
    Pair Programming x x x
    Testing x x x
    Debugging x x x x x
    Teamwork x x x
    Extreme Programming x
    UML x
    Object-Oriented Design x
    Design Patterns x

About

Topics and question bank for some of Lewis & Clark's computer science courses

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •