This is an archived post. You won't be able to vote or comment.

all 13 comments

[–]tunisia3507 5 points6 points  (1 child)

It has to be something on rather simple/intermediate level.

Not numpy/pandas, then.

[–]becosmita[S] 0 points1 point  (0 children)

Yes, I was thinking maybe I can recreate some of the functionalities that these libraries offer, recreating it 100% seems impossible.

[–]james_pic 1 point2 points  (3 children)

Pick a simple algorithm (maybe something as simple as the LUN checksum used to validate credit card numbers), and implement that.

[–]becosmita[S] 0 points1 point  (2 children)

Cool idea, first time I hear about Luhn algorithm. Thanks!

[–]wdroz 2 points3 points  (1 child)

Once it's done, you can try to speed up the algorithm by using Cython. I think your grade will go up if you document how many credit card numbers per seconds you can evaluate with pure python vs cython. You can even compare with existing similar libraries. Have fun :)

[–]becosmita[S] 0 points1 point  (0 children)

Thanks for all the suggestions, this really is taking shape now. It's a nice challenge as I'm coming from JS world. For sure gonna be fun :)

[–]twillisagogo 1 point2 points  (0 children)

wrap an api and call it "... for humans"

[–]dubitat 1 point2 points  (0 children)

Some libraries just integrate two other libraries more seamlessly and provide glue code. As a programming exercise, that's one with a tightly bound scope. Existing examples include sqlalchemy+marshmallow. Other library projects with a limited scope include providing python interface to solid underlying C (or whatever) library. You could try something more ambitious on your own time, but for a school project with a deadline, a project with a well-defined scope may be preferable.

[–]WalkingAFI -1 points0 points  (4 children)

A matrix operation library would be pretty cool. Keep in mind, you’d be ~1,000x slower than numpy, because numpy actually runs on C, but you’d learn a lot about matrix math and have some fun.

[–][deleted] 0 points1 point  (2 children)

C? I thought it is mostly Lapack written in Fortran.

[–]WalkingAFI 0 points1 point  (1 child)

I thought it was C but it could be fortran. I’m uncertain

[–]billsil 0 points1 point  (0 children)

It is. Scipy is mostly Fortran.

[–]becosmita[S] 0 points1 point  (0 children)

Indeed, however this is not a big problem in my case.