For most students, computer science means lots of high-level coding, screens with black backgrounds and green text, and an esoteric subject. When students hear the term computer science, many think about programming languages – Java, C++, Python to name a few. However, what those students are really thinking about is computer programming, an extension and application of computer science. Computer science uses code and programming languages and different numerical systems, but computer science itself is the study of logic, efficiency, and problem solving. With that, it is worth examining what the world of computer science truly encompasses and what purposes it serves to study computer science.
API is the initials of “Application Programming Interface”. APIs are bundles of interfaces that developers must implement to build their applications. Common APIs are the Java, Python, and Ruby APIs, as well as the Android, iOS APIs and many other third-party libraries (e.g. jQuery and Google maps). Except for their source code, APIs come with their documentation. Then, client developers, from different programming levels, read this documentation to build distinct applications that use the same APIs. This means that an API should be unambiguous and useful in order to prevent developers from writing applications susceptible to crashes.
As mentioned in a previous post by Maria Kechagia, “Free, Libre and Open Source Software (FLOSS) is software released under a license that allows developers to: 1) access the software’s source code, 2) use the software for free, and 3) develop derived works based on software’s previous releases.” FLOSS software is very versatile and can be used for a variety of purposes. One such purpose is education and institutional learning, a world in which software and technology is prevalent. However, at the present day institutions of learning (i.e., from high school up to university) mostly use commercial software such as Microsoft Office and Adobe Photoshop. Meanwhile, open source software such as OpenOffice, GIMP, and Linux offer the same capabilities as their commercial counterparts, yet are not employed as much. Weighing the options, it becomes clear that educational institutions should move to using more FLOSS software. Why? Let’s review the benefits for students.
Some students in my department this quarter hosted a reading group on quantum computing. Quantum computing is becoming more and more relevant and the topic attracted the participation of a diverse group of researchers. The best way to handle the scope of the topic and diversity of the participants was to invite volunteer speakers to give talks on the quantum analog of their own research area — “Quantum Circuit Lower Bounds,” “Quantum Game Theory,” and “QPSPACE” were among some of the topics. Naturally, I saw this as a great opportunity to understand more about quantum spectral graph theory. In this post I will outline some basic definitions and properties of quantum graphs, and as a follow up to my previous post on the connections between spectral geometry and graph theory, discuss isospectral properties of discrete and quantum graphs. Continue reading