Did you know

Thursday, January 16th, 2014

that some of the most important pioneers of computer science were women? It’s true.

As a prime example, Ada Lovelace (1815-1852), an English mathematician and writer, is considered by many to be the world’s first computer programmer. Lovelace worked alongside Charles Babbage (an English engineer) on his early mechanical/general-purpose computer called the “Analytical Engine.” Her notes on the Analytical Engine contain the first-ever algorithm written for a machine to carry out. She was an incredibly talented mathematician whose notes are integral to the early history of computation. Unlike Charles Babbage, who saw computers as a tool for calculations exclusively, Lovelace developed a vision for computer to go beyond just “number-crunching.” Her notes on the Analytical Engine illustrate her thoughts on individuals and societies being related to technology as a collaborate tool. The programming language “Ada” is named in commemoration of Lovelace and her foundational contributions to the field of CS.

Grace Hopper (1906-1992), a US Navy rear admiral, was another important woman of CS. Hopper is credited with inventing the first compiler, which is a computer program that transforms source code written in a particular programming language into a different programming language. Additionally, she invented the concept of machine-independent programming languages, which directly led to the development of COmmon Business-Oriented Language (shortened to COBOL), one of the first modern programming languages. Hopper is also credited with popularizing the term “debugging,” which refers to the process of fixing computer glitches (sidenote: the term was inspired by an actual moth being removed from the computer!). Here’s Grace Hopper working on the UNIVAC (UNIVersal Automatic Computer) I:

Grace_Hopper_and_UNIVAC

To read about some other famous women in computer science, go here.

Until next time ๐Ÿ™‚

How do you write the traditional Hello World program

Wednesday, January 15th, 2014

in Java? Like this!

public class HelloWorld {
    public static void main(String [] args) {
        System.out.println("Hello World!");
    }
}

Learn Java here.

Chatting with Sophie

Monday, January 13th, 2014

Hi, all! Hope you’re enjoying the weekend so far.

Last week, I sat down with my good friend Sophie to discuss what’s she’s up to at SU. Sophie is an aspiring software engineer and lover of all things “CPSC.” She’s working towards her Bachelor of Science and enjoying all the opportunities in her field. Here’s our interview!

554190_10151886164967333_2063894154_n copySo, who are you?
I’m a senior undergrad CS major and software engineer at SU.

And what are your current career aspirations?
I would love to be a program manager (PM) for a company like Google or Microsoft. I like to bring people together and utilize personal resources for optimal collaboration! Active leadership roles have always appealed to me, so I think I would enjoy being a manager.

What first got you interested in the field of computer science?
My mom is a big inspiration for me — she is a web developer. From a very early age, she got me interested in math and computing. I can remember her teaching me how to convert decimal to binary on a chalk board at age 8. We share a passion for teaching and learning new technologies, which is a core component of computer science education!

What was the first programming language you learned and what did you make?
The intro to programming course I took was taught using Python, a scripting language that was just starting to become popular at the time. I started with writing simple arithmetic and string manipulation algorithms. The first “real” program I wrote was a file parser that looks at copy/pasted text from the course website, calculates my grade in the class and tells me what score I needed on the final exam to get a 93% overall ๐Ÿ˜›

Whatโ€™s your favorite language(s)? Why?
I like Java/C#. The syntax is easy for me to remember, and you can do just about anything in these languages. Garbage collection is a lovely feature.

Java is great, and certainly versatile. Makes writing for Android very intuitive. What’s your least favorite?
Did not enjoy using PHP… Also, the little Objective-C I’ve seen is enough to keep me away from iOS development.

Can you talk a little bit about the project youโ€™re working on as a recipient of the Clare Boothe Luce scholarship?
I was really excited to receive this award, because it is not like most scholarships. It has given me the opportunity to work on a research project under the mentorship of two professors in my department, and also travel to several research conferences. The project was largely undefined when I started, so I had the opportunity to decide my own focus. A brief description of what I chose: building and evaluating the effectiveness of a tool for Android developers to ascertain the necessary permissions for their apps, to prevent the security threat that comes with with including unnecessary app permissions. If you want to know more, look here.

Proudest accomplishment in the field of CPSC thus far?
Effectively explaining the concept of binary search as an efficient algorithm to my 9 year old cousin.

That’s fantastic. So what gets you most excited about software engineering/the future of CPSC in general?
Cloud computing is pretty cool… But what really excites me is the sheer number of people (especially kids!) learning to code. Generation Z is already blossoming with computer-literate and analytical thinkers, and that makes me optimistic about the future.

Do you have a favorite computer scientist from history?
Ada Lovelace. I admire anyone who can write programs without sitting in front of a computer.

Ada was amazing. (Note to readers: she will be featured in an upcoming post!)
Any advice for the aspiring software engineer?

I think I’m still in the “aspiring” category… so advice to self: Do more independent coding projects!

Any closing remarks?
I would tell you a UDP joke, but you might not get it. (Stole that from Reddit)

lol! Thanks Sophie.

Until next time!
~m

System.out.println(“Hello World!”);

Monday, January 13th, 2014

Welcome to Computer Science Wonderland ๐Ÿ™‚

In this blog, I’ll be posting about computer scientists from history, the intricacies of various programming languages, interesting projects in the field of CS, conversations with my programmer-friends, and more.

Whether you are a software engineer yourself, an amateur programmer, or know nothing about CS, I hope you’ll join me in my exploration and appreciation of this fantastic topic. It is an immensely versatile discipline with seemingly endless practical applications.

Until next time!
~m