[NFBCS] Querying Software Devs and Mathematicians: Productivity of Showcasing Self-created Algorithms in Scientific Calculator?

Nathaniel Schmidt schmidty2244 at gmail.com
Fri Jun 25 09:44:18 UTC 2021


Hi all (especially professional software developers),

 

I have a potential algorithmically-orientated question.  Before I put too
much of an intellectual effort into this endeavour, I am wondering whether
anyone thinks it would be productive for future employment opportunities if
I showcased something on my Github, like, for example, self-implemented
algorithms to perform computations that solve problems of a scientific
(specifically discrete-mathematical) nature? In other words, what if I
create a script / module in a language such as Python that culminated in a
very primitive calculator, which could do things helpful for cryptography
i.e. performing prime factorisations, finding gcd / lcm, etc? Or something
that could solve boolean algebra, or make calculations related to
Combinatorics?

 

Obviously, I do not need such a calculator for every-day personal use; in
that case, I would just use a CAS calculator such as Maxima, or a coding
package such as Numpy or Scipy or something like that, or otherwise just
manually work out a problem on paper.  But I am trying to think of ways to
publicly demonstrate to others: (a) my personal knowledge of mathematical
concepts foundational to Computer Science; and (b) my ability to put this
knowledge into practical use within a programming context.

 

The crux of the issue is: the practical ability to do coding is only
superficial and not worth much to you unless you understand algorithms,
abstract data structures and how to implement them.  So is it worth my time
to do something like this?

 

I'm finding that it can be tricky to determine what is and is not a time and
energy waster, when deciding between developing practical solutions for the
average computer end-user, as opposed to exposing and demonstrating in the
foreground internal computational stuff that the end-user doesn't have to
worry about.  It's just that I'm getting a little apprehensive in advance,
because a theoretical blueprint for  my idea is showing me that I am going
to have to break down even one single problem-solver into so many different
steps.

e.g. coding an algorithm that determines the prime factorisations of a
positive integer (its product of primes) by directly numerical means
inevitably involves (in rough order), the following sequential,
pyramid-style process:

1. Procedurally determining and returning the foundational truth value of a
modular-arithmetical operation, testing the divisibility of two provided
integers where the remainder must be 0;

2. Logically determining whether certain given numbers are primes by
applying the previously-implemented test, testing for the divisibility of
the given number by both 2 and itself;

3. Finding the prime no. that is less than and closest to the square-root of
the number being queried upon;

4. Successively (recursively?) checking divisibility, moving in descending
order to a different prime number whenever the test returns false; but
otherwise check the divisibility of $k$ according to the formulaic
divisibility proof of $b = ak$;

5. Keeping track of every relevant prime whenever the divisibility test
returns true;

6. Stop repeatedly testing divisibility when the tested result gets to be <=
1 or simply < 2;

7. Concatenating the ultimate result, returning and / or printing it.  And
that should be just about everything.

 

As one can see, collating both the concepts and code in multiple instances
would take up a quite a bit of forethought, planning and working, so I want
to be sure this is a worth-while project.

 

Does anyone have any thoughts on what I should do?

 

Kind regards,

 

Nathaniel

 

========================================

Nathaniel Schmidt

Undergraduate student

Bachelor of Computer Science (S306)

School of Information Technology

Faculty of Science, Engineering and Built Environment

Deakin University, Melbourne (Burwood) campus

https://sync.deakin.edu.au/profiles/student/njschmidt/

 

E: njschmidt at deakin.edu.au <mailto:njschmidt at deakin.edu.au> 

LinkedIn: https://www.linkedin.com/in/njsch/

GitHub: https://github.com/njsch/

Skype: nathaniel_schmidt1994

about.me/njschmidt/ <https://about.me/njschmidt/> 

 



More information about the NFBCS mailing list