{"id":28933088,"url":"https://github.com/nihalsheikh/cs50p","last_synced_at":"2025-10-07T14:51:46.488Z","repository":{"id":299020047,"uuid":"1001840987","full_name":"nihalsheikh/CS50P","owner":"nihalsheikh","description":"Course: CS50P INTRO TO PRAGRAMMING WITH PYTHON","archived":false,"fork":false,"pushed_at":"2025-08-07T16:17:29.000Z","size":61810,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-07T18:21:31.343Z","etag":null,"topics":["cs50p","programming","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nihalsheikh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-14T06:24:28.000Z","updated_at":"2025-08-07T16:17:32.000Z","dependencies_parsed_at":"2025-06-14T07:40:28.656Z","dependency_job_id":"accd9de6-82bc-4456-96b3-4cdb15f85588","html_url":"https://github.com/nihalsheikh/CS50P","commit_stats":null,"previous_names":["nihalsheikh/cs50p"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nihalsheikh/CS50P","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nihalsheikh%2FCS50P","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nihalsheikh%2FCS50P/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nihalsheikh%2FCS50P/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nihalsheikh%2FCS50P/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nihalsheikh","download_url":"https://codeload.github.com/nihalsheikh/CS50P/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nihalsheikh%2FCS50P/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278794400,"owners_count":26046968,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cs50p","programming","python"],"created_at":"2025-06-22T17:12:06.574Z","updated_at":"2025-10-07T14:51:46.482Z","avatar_url":"https://github.com/nihalsheikh.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CS50P: Introduction to Programming with Python\n\n\u003cp\u003eThis is a repository made to track practice python programming along with a goal of keeping track of my learnings and making that github heatmap green\u003c/p\u003e\n\n## Index\n\n| Week | Problem Set |\n| ---- | ----------- |\n| [week 0](#week-0-functions-and-variables) | [0](./week_0/problem_set_0/) |\n| [week 1](#week-1-conditionals) | [1](./week_1/problem_set_1/) |\n| [week 2](#week-2-loops) | [2](./week_2/problem_set_2/) |\n| [week 3](#week-3-exceptions) | [3](./week_3/problem_set_3/) |\n| [week 4](#week-4-libraries) | [4](./week_4/problem_set_4/) |\n| [week 5](#week-5-unit-tests) | [5](./week_5/problem_set_5/) |\n| [week 6](#week-6-file-io) | [6](./week_6/problem_set_6/) |\n| [week 7](#week-7-regular-expressions) | [7](./week_7/problem_set_7/) |\n| [week 8](#week-8-object-oriented-programming) | [8](./week_8/) |\n\n- [Check Work Submission](https://submit.cs50.io/courses)\n\n\u003cbr\u003e\n\n## Week 0: Functions and Variables\n\u003cdetails\u003e\n\u003csummary\u003echeckout the topics covered:\u003c/summary\u003e\n\n- [x] Functions\n- [x] Arguements\n- [x] Variables\n- [x] Assignment Operator (=)\n- [x] Comments\n- [x] PseudoCode\n- [x] Args seperated by comma\n- [x] String or str\n    - [x] Practice python file =\u003e [here](./week_0/hello.py)\n    - [x] strip()\n    - [x] capitalize()\n    - [x] title()\n    - [x] split()\n- [x] Method Chaining\n- [x] Integers or int\n    - [x] Practice python file =\u003e [here](./week_0/calculator.py)\n    - [x] int()\n    - [x] round()\n- [x] Nesting and Nested Functions\n- [x] Float Point Values or Decimals\n- [x] Round off function\n- [x] Better Number Separation/Notation with fstring\n- [x] Functions in python\n- [x] Scope of variables\n- [x] Return Values\n- [x] Side Effect\n- [x] Global Keyword\n- [x] [Problem Set 0](./week_0/problem_set_0/)\n    - [x] [Indoor Voice](./week_0/problem_set_0/indoor/indoor.py)\n    - [x] [Playback Speed](./week_0/problem_set_0/playback/playback.py)\n    - [x] [Making Faces](./week_0/problem_set_0/faces/faces.py)\n    - [x] [Einstein](./week_0/problem_set_0/einstein/einstein.py)\n    - [x] [Tip Calculator](./week_0/problem_set_0/tip/tip.py)\n\n\u003c/details\u003e\n\n## Week 1: Conditionals\n\u003cdetails\u003e\n\u003csummary\u003echeckout the topics covered:\u003c/summary\u003e\n\n- [x] Conditionals\n- [x] if keyword\n- [x] Boolean Expressions\n    - [x] [Practice Question](./week_1/compare.py)\n- [x] elif keyword\n- [x] else keyword\n- [x] or keyword\n- [x] and keyword\n- [x] Question: Include the inclusive range values using conditionals with assignment operators\n    - [x] [Inclusive Range](./week_1/grade.py)\n- [x] Boolean Values\n    - [x] True\n    - [x] False\n- [x] match case (switch case in other language, ex: Java)\n- [x] | (pipe symbol) or used in match case\n    - [x] [Use of |](./week_1/house.py)\n- [x] not keyword\n- [x] [Problem Set 1](./week_1/problem_set_1/)\n    - [x] [Deep Thought](./week_1/problem_set_1/deep/deep.py)\n    - [x] [Bank](./week_1/problem_set_1/bank/bank.py)\n    - [x] [File Extension](./week_1/problem_set_1/extensions/extensions.py)\n    - [x] [Interpreter](./week_1/problem_set_1/interpreter/interpreter.py)\n    - [x] [Meal Time](./week_1/problem_set_1/meal/meal.py)\n\n\u003c/details\u003e\n\n## Week 2: Loops\n\u003cdetails\u003e\n\u003csummary\u003echeckout the topics covered:\u003c/summary\u003e\n\n- [x] Loops\n- [x] While Loop\n    - [x] continue\n    - [x] break\n- [x] Infinite Loop\n    - [x] while True\n- [x] For loops\n- [x] List\n    - [x] range\n    - [x] Accessing list items\n    - [x] length or len\n    - [x] append\n    - [x] remove\n    - [x] extend\n    - [x] insert\n    - [x] reverse\n- [x] Dictionary\n    - [x] Key: Value pairs\n    - [x] Accessing dictionary\n    - [x] get method\n    - [x] update method\n    - [x] pop\n    - [x] clear\n    - [x] items\n- [x] None keyword\n- [x] List and Dictionary Comprehension\n- [x] String Methods\n    - [x] capitalize\n    - [x] title\n    - [x] strip\n    - [x] join\n- [x] String Slicing\n- [x] Tuples\n    - [x] List vs Tuple\n    - [x] Better Memory utilization\n- [x] Some other functions/methods\n    - [x] getsizeof: (also use- import sys module)\n    - [x] enumerate\n    - [x] isalpha\n    - [x] isdigit\n    - [x] isalnum\n- [x] [Problem Set 2](./week_2/problem_set_2/)\n    - [x] [camelCase](./week_2/problem_set_2/camel/camel.py)\n    - [x] [Coke Machine](./week_2/problem_set_2/coke/coke.py)\n    - [x] [Just setting up my twttr](./week_2/problem_set_2/twttr/)\n    - [x] [Vanity Plates](./week_2/problem_set_2/plates/plates.py)\n    - [x] [Nutrition Facts](./week_2/problem_set_2/nutrition/nutrition.py)\n\n\u003c/details\u003e\n\n\n## Week 3: Exceptions\n\n\u003cdetails\u003e\n\u003csummary\u003echeckout the topics covered:\u003c/summary\u003e\n\n- [x] Errors\n    - [x] Runtime Errors\n    - [x] SyntaxError\n    - [x] ValueError\n    - [x] NameError\n- [x] Exception Handling\n    - [x] try\n    - [x] except\n    - [x] else\n- [x] Infinite loop with Exception handling\n- [x] **_`pass`_** keyword\n- [x] Debugging\n    - [x] Bugs\n    - [x] Debugger\n    - [x] Breakpoint\n- [x] Raising Exceptions\n    - [x] **_`raise`_** keyword\n- [x] [Problem Set 3](./week_3/problem_set_3/)\n    - [x] [Fuel Gauge](./week_3/problem_set_3/fuel/fuel.py)\n    - [x] [Felipe's Taqueria](./week_3/problem_set_3/taqueria/taqueria.py)\n    - [x] [Grocery List](./week_3/problem_set_3/grocery/grocery.py)\n    - [x] [Outdated](./week_3/problem_set_3/outdated/outdated.py)\n\n\u003c/details\u003e\n\n## Week 4: Libraries\n\n\u003cdetails\u003e\n\u003csummary\u003echeckout the topics covered:\u003c/summary\u003e\n\n- [x] Libraries\n- [x] Modules\n    - [x] random\n        - [x] randint(a, b)\n        - [x] shuffle(x)\n        - [x] choice(list)\n        - [x] choices(list, weights, num)\n        - [x] sampling with replacement\n        - [x] sample(list, num)\n        - [x] seed\n    - [x] statistics\n        - [x] mean(x)\n    - [x] sys\n        - [x] argv[indx]\n        - [x] exit(msg)\n    - [x] requests\n        - [x] get(url, params)\n    - [x] json\n        - [x] dumps(json_value, index)\n- [x] **_`import`_** keyword\n- [x] **_`from`_** keyword\n- [x] Command-line arguments\n- [x] String Method: `slices`\n- [x] Packages\n    - [x] PyPi: Python Package Index\n    - [x] pip\n- [x] API\n    - [x] Endpoints\n    - [x] JSON\n    - [x] Using Exception Handling with API\n    - [x] API Parameters\n- [x] Using main function\n    - [x] __name__\n    - [x] __main__\n- [x] Package\n    - [x] Dunder files\n    - [x] Dunder __init__ file\n- [x] Style\n    - [x] PEP: Python Enhancement Proposal\n    - [x] PEP8\n    - [x] linter\n        - [x] pylint\n        - [x] pycodestyle\n        - [x] black\n- [x] [Problem Set 4](./week_4/problem_set_4/)\n    - [x] [Emojize](./week_4/problem_set_4/emojize/emojize.py)\n    - [x] [Frank, Ian and Glen's Letters](./week_4/problem_set_4/figlet/figlet.py)\n    - [x] [Adieu, Adieu](./week_4/problem_set_4/adieu/adieu.py)\n    - [x] [Guessing Game](./week_4/problem_set_4/game/game.py)\n    - [x] [Little Professor](./week_4/problem_set_4/professor/professor.py)\n    - [x] [Bitcoin Price Index](./week_4/problem_set_4/bitcoin/bitcoin.py)\n\n\u003c/details\u003e\n\n## Week 5: Unit Tests\n\n\u003cdetails\u003e\n\u003csummary\u003echeckout the topics covered:\u003c/summary\u003e\n\n- [x] Testing a function\n- [x] assert\n    - [x] Exception handling with assert\n- [x] AssertionError\n- [x] Pytest\n    - [x] raises(ErrorName)\n    - [x] isinstance(object, classinfo)\n    - [x] approx(num, diff_num)\n- [x] Unit Testing\n- [x] Package\n- [x] **_`with`_** keyword\n- [x] [Problem Set 5](./week_5/problem_set_5/)\n    - [x] [testing my twttr](./week_5/problem_set_5/twttr/test_twttr.py)\n    - [x] [Back to the Bank](./week_5/problem_set_5/test_bank/test_bank.py)\n    - [x] [Re-requesting a Vanity Plate](./week_5/problem_set_5/test_plates/test_plates.py)\n    - [x] [Refueling](./week_5/problem_set_5/test_fuel/test_fuel.py)\n\n\n\u003c/details\u003e\n\n## Week 6: File I/O\n\n\u003cdetails\u003e\n\u003csummary\u003echeckout the topics covered:\u003c/summary\u003e\n\n- [x] open function\n    - [x] requirements for open\n    - [x] open(fileName, fileHandle)\n    - [x] `\"w\"`: write file handle\n    - [x] **__`write`__** method\n        - [x] write(value)\n    - [x] **__`close`__** method\n        - [x] file.close()\n    - [x] `\"a\"`: append file handle\n    - [x] `\"r\"`: read file handle: default for oepning a file\n    - [x] readlines function\n- [x] with keyword\n- [x] `as` keyword\n- [x] sorted(iterable, sortingMethod, doReverse)\n- [x] CSV: Comma Separated Values\n    - [x] csv module\n        - [x] reader function\n        - [x] DictReader\n        - [x] writer\n        - [x] DictWriter\n        - [x] witerow\n- [x] Dictionary Shorthand\n- [x] Lambda Function or Anonymous Function\n    - syntax: lamda param: returnValue\n- [x] Binary File\n- [x] Pillow or PIL\n    - [x] Image class\n    - [x] size\n    - [x] format\n    - [x] rotate\n    - [x] save\n    - [x] ImageFilter class\n    - [x] filer\n- [x] Reading and Writing CSV and Other file\n    - [x] using DictReader\n    - [x] using DictWriter\n    - [x] writer and writerheader\n    - [x] writerrow\n    - [x] read()\n    - [x] readlines()\n    - [x] writelines()\n- [x] [Problem Set 6](./week_6/problem_set_6/)\n    - [x] [Lines of Code](./week_6/problem_set_6/lines/)\n    - [x] [Pizza Py](./week_6/problem_set_6/pizza/pizza.py)\n    - [x] [Scourgify](./week_6/problem_set_6/scourgify/scourgify.py)\n    - [x] [CS50 P-Shirt](./week_6/problem_set_6/shirt/shirt.py)\n\n\u003c/details\u003e\n\n## Week 7: Regular Expressions\n\n\u003cdetails\u003e\n\u003csummary\u003echeckout the topics covered:\u003c/summary\u003e\n\n- [x] Regular Expressions or Regex\n- [x] re library\n    - [x] re.search\n        - patterns\n        - strings\n        - flags\n            - IGNORECASE\n            - MULTILINE\n            - DOTALL\n    - [x] re.match\n        -  group\n        - groups\n    - [x] re.sub\n    - [x] re.fullmatch\n    - [x] re.split\n    - [x] re.findall\n- [x] Some special symbols in regex\n    - [x] **`.`** dot - char\n    - [x] **`*`** asterisk - 0 or more character\n    - [x] **`+`** plus - 1 or more character\n    - [x] **`?`** question mark - 0 or 1 character\n    - [x] **`{m}`** repetitions of character\n    - [x] **`{m, n}`** range of repetitions of character\n    - [x] **`^`** caret - start of string\n    - [x] **`$`** dollar - end of string\n    - [x] **`[]`** set of characters\n    - [x] **`[^]`** complement of the set of characters\n    - [x] **`[x-y]`** range of characters using `-` dash\n    - [x] **`A | B`** either A or B with pipe symbol `|`\n    - [x] **`(...)`** group characters and capture\n    - [x] **`(?...)`** don't capture the group\n- [x] Non-deterministic Finite Automaton\n    - [x] keep track of pattern match\n    - [x] first state (single circle)\n    - [x] curve edge\n    - [x] label\n    - [x] reflexive edge\n    - [x] accept state (double circle)\n- [x] raw string\n    - `r\"\"`\n- [x] special characters\n    - `\\`\n- [x] list of patterns\n    - [x] **`\\d`** decimal digits (numbers 0-9)\n    - [x] **`\\D`** not decimal digit\n    - [x] **`\\s`** whitespace character\n    - [x] **`\\S`** not a whitespace character\n    - [x] **`\\w`** word characters(a-zA-Z), numbers(0-9) and underscore `_`\n    - [x] **`\\W`** not a word characters\n    - [x] **`\\b`** boundary of a character\n- [x] group\n- [x] Wallrus Operator (:=)\n- [x] replace()\n- [x] removeprefix()\n- [x] [Problem Set 7](./week_7/problem_set_7/)\n    - [x] [NUMB3RS](./week_7/problem_set_7/numb3rs/)\n    - [x] [Watch on YouTube](./week_7/problem_set_7/watch/watch.py)\n    - [x] [Working 9 to 5](./week_7/problem_set_7/working/)\n    - [x] [Regular, um, Expressions](./week_7/problem_set_7/um/)\n    - [x] [Response Validation](./week_7/problem_set_7/response/response.py)\n\n\u003c/details\u003e\n\n\n## Week 8: Object-Oriented Programming\n\n\u003cdetails\u003e\n\u003csummary\u003echeckout the topics covered:\u003c/summary\u003e\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnihalsheikh%2Fcs50p","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnihalsheikh%2Fcs50p","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnihalsheikh%2Fcs50p/lists"}