Posts tagged computer science

What Does Computer Science Have to Do with Business?

I'm in a 4000-level accounting class and we were doing group work. At some point my partner and I got on the topic of me not being an accounting major.

Him: "So you're like, a finance major?" (The class is 'Financial Statements Analysis')

Me: "Computer science with business admin."

Him: "Oh wow - what are you doing in this class?!"

Normally options and dual majors are between complementary fields. Accounting and management. Foreign language and international studies. Economics and math. Computer science and business - they're similar too, it's just not as obvious.

(Image credit - Village Voice, edited)
(Image credit - Village Voice, edited)

Simplicity vs. functionality

One of the tenets of good programming is to do the simplest thing that could possibly work.A software engineer should be able to more or less understand your codebase, walking in off the street. Writing simple code not only saves time, but is generally less buggy and easier for everyone to understand. Simplicity is big in business too. Supposedly at McDonald's there are written procedures for everything down to cleaning the toilets.Employees are getting paid by the hour. Turnover's probably high - things must be easy to learn. Dirty toilets ruin the "dining experience." Whoever wrote the toilet cleaning instructions had to consider what would get the toilet satisfactorily clean while being time efficient. The KISS principle permeates good computer science and good business. Complexity is to be minimized.
(Image credit - Hasbro)
(Image credit - Hasbro)

Planning before doing

More often than not, success in both fields requires some level of planning. In computer science, writing pseudo-code or drawing a flow diagram can clarify the logic behind a program before you start writing. You design a network before you build a network. "Pre-production" work helps get things right the first time. For business matters, planning helps put everyone on the same page. This can be drafting that toilet cleaning manual or doing a business plan sketch. Frequently you won't be working alone, maybe not even with people you like. Nobody is a mind reader. Solid communication makes for quality management and productive code collaboration. There's no plainer way to communicate than something written down.
Cave Drawing
(Image credit - Fanning Art)

Quality and efficiency

For both computer science and business, the "big picture" is to reach a point where quality and efficiency are as high as they can be. Think back to high school math.
(Image credit - RC Groups)
(Image credit - RC Groups)
That's where you're trying to go. And how you get there isn't even so different for each. Business - adhering to economic order quantities, cutting non-value added processes, expanding or contracting the workforce as needed ... Computer science - DRY programming (economic amount of code), limiting abstraction (non-value added processes), implementing or dropping features as deemed appropriate ...

Speed vs. progress

What level of output can we push the business to without sacrificing the quality of labor, and therefore overall progress? You can only spread a workforce so thin before people start leaving. In the casino business, if you have a shortage of dealers, you can start forcing part-timers to 40 hour weeks and full-timers to 48 hour weeks. But, especially with weird hours like graveyard shift, maybe then your dealers become really sleep-deprived. They see their families less so morale goes down. Now you have way more dealer errors than ever before, either costing the house in money or guest satisfaction. With tech startups, it seems like 80 hour workweeks and sleeping under your desk are fetishized. How does this affect the quality of code? Number of bugs? What people are saying about you on Glassdoor? As an individual programmer, how fast can you write code before quality slips? How much planning can you cut out before your codebase confuses even you? This may be more a business thing than computer science thing. Still, to some extent, finding a balance between speed and progress applies to both.
(Image credit - Car Insurance Comparison)
(Image credit - Car Insurance Comparison)

Closing

The studies of computer science and business aren't terribly different. There's a lot of different terminology dressing up similar principles. Will all good computer scientists make strong businesspeople, or vice versa? That's open to interpretation.

How to Supplement the St. John’s CS Program

At the time of this writing, there are some things missing from the St. John's University computer science curriculum. I don't want to be at a disadvantage to other CS grads, should I have to join the workforce. You probably wouldn't either. Luckily computer science is a field where demonstrable skill (largely) trumps formal schooling. We can fill in the gaps.
(Image credit - BabyNerds)
(Image credit - BabyNerds)

What's missing?

Take a look at the requirements for CS majors at St. John's, then compare those to Syracuse or most other programs. You'll notice a lack of:
  • Discrete math
  • Parallel computing
  • Computer architecture (present but optional)
  • Algorithms (present but optional)

How to supplement

Most anything from my studies can be found online - and the same is true for absences. Here are some suggestions. You can otherwise use an MOOC aggregator for these topics.

Discrete math

Discrete Math A, Discrete Math B - these are from an Italian university but available in English se non puoi parlare italiano. Self-paced, start anytime. Bonus: Mathematics for Computer Science - SJU doesn't have its most competent faculty teaching CS math topics, let's put it that way.

Parallel computing

Heterogeneous Parallel Programming - from University of Illinois at Urbana-Champaign. Parallel Programming - possibly a more advanced offering, from MIT.

Computer architecture

Computer Architecture - a Princeton course. I recommend against taking this at SJU.

Algorithms

Algorithms: Design & Analysis Part 1, Part 2 - both from Stanford via Coursera.
(Image credit - BlenderGuru)
(Image credit - BlenderGuru)

Closing

There are holes in the St. John's CS program that could leave graduates at a disadvantage. Hopefully in the future 9 mandatory credits of theology might be swapped for algorithms or parallel computing coursework. Until then - happy learning. Will make an edit if I post notes from these.