The Computational Paradigm

by K. Yue

1. Paradigm

Example #1: In pure mathematics (as opposed to applied mathematics)

E.g., the Pythagorean theorem: the sum of the squares of the two shorter sides (legs) of a right-angled triangle is equal to the square of the longest side (hypotenuse)

E.g., Goldbach's Conjecture (stated in 1742): Every even integer greater than 2 can be expressed as the sum of two prime numbers. E.g.,

The Goldbach's conjecture is very easy to state but extremely hard to prove (one way or the other).

Example #2: History

2. Computing and software development

Software Development

E.g., a Python to output the square of an input integer.

Test cases:

Case # Input Expected Output
1 3 9
2 65 4425
3 0 0
4 -65 4425
5 123456789 15241578750190521
6 'hello' Error: input is not an integer.

3. Skills/Traits/Quality/Characteristics of software developers

3.1 A simple non-scientific experiment

Conducted a simple Google search for good software developer quality.

Four sources:

  1. Coding Temple, 6 Key Qualities of Successful Software Engineers, https://www.codingtemple.com/blog/6-key-qualities-of-successful-software-engineers/.
  2. MatchTech, 7 qualities exceptional developers possess, https://www.matchtech.com/resources/7-qualities-exceptional-developers-possess.
  3. UMBC, How To Know If Software Development Is The Right Job For You, 8 Hard To Learn Software Developer Skills You Need, https://www.umbctraining.com/software-developer-skills/.
  4. AlltheCode blog, Software Engineer Personality: 5 Traits For A Great Career, https://allthecode.co/blog/post/software-engineer-personality.

Results:

Coding Temple MatchTech UMBC AlltheCode
Technical Expertise Solid technical knowledge Curiosity Curiosity
Problem-Solving Skills Maintains an end-user focus Creativity Persistence
Attention to details Fast self learner Empathy Ability to learn
Strong communications and collaboration skills Strong communication skills Patience, Perseverance and Problem-Solving Focus
Continuous learning and adaptability Dependent time and task management Analytical Pragmatism
Passion for the craft A good team player Detail-oriented and organized  
  'Never say die' attitude Adaptability  
    Communication  

Some Lessons

  1. We tend to focus on technical matters in our computing degrees.
  2. Success in the computing profession requires much more than technical expertise. It will be increasing more so.
  3. Personal traits, characteristics, habits, etc. take a lot of effort and time to develop.
  4. Consider spending effort and time to cultivate them early and persistently.
  5. Your university degree may give you an entrance ticket to the job market but it is not sufficient by itself.