My Classes for Spring 2019

8 minute read

It’s my second semester at UIUC! I learned a lot last semester, and I’m ready to learn even more. I also have to be prepared to be a whole lot busier… in addition to taking four courses this semester (4! 14 total credit hours! …That’s a lot in a master’s program!) I’m also working 20 hours a week as a Graduate Research Assistant (GRA) at the Cline Center. I think it’s a good problem to have that I want to be taking all of my classes and I got my dream assistantship, so there’s absolutely nothing I want to drop to make my life a bit easier this semester, but… boy have I been busy. I’m only starting week three and I don’t know how I’m going to get everything done.

Speaking of classes, this semester the four courses I’m taking are:

  • IS502: Libraries, Information & Society
  • IS561: Information Modeling
  • IS590PR: Programming for Analytics and Data Processing
  • IS590TH: Theories of Information

Time to introduce these classes and what they’re all about!

IS502: Libraries, Information & Society

IS502 serves as a forum for critical discussions about issues in the profession of Library Science, and is one of two required courses for the MSLIS degree (the other being IS501, which I took in the Fall). Like IS501, IS502 introduces LIS students to the many different jobs that information professionals can have, but focuses on the commonalities critical to the profession: ethics, social responsibility, intellectual freedom, literacy, etc. The class takes the general format of a lecture followed by a class discussion of the assigned readings.

Course Description

Explores major issues in the library and information science professions as they involve their communities of users and sponsors. Analyzes specific situations that reflect the professional agenda of these fields, including intellectual freedom, community service, professional ethics, social responsibilities, intellectual property, literacy, historical and international models, the socio-cultural role of libraries and information agencies and professionalism in general, focusing in particular on the interrelationships among these issues.

Central Themes & Topics

  1. The Fields of Librarianship and Information Science
  2. Historical & International Models
  3. Intellectual Freedom
  4. Professional Ethics
  5. Social Responsibilities & Community Service
  6. Intellectual Property
  7. Literacy
  8. Social-Cultural Role of Libraries and Information Providers
  9. Future of Librarianship and Information Science

Learning Objectives

  1. The variety of library and information agencies that exist and their missions and historical connections.
  2. The definitions of what is an information professional and the role of differing information professionals in meeting the missions of information institutions
  3. Major issues in librarianship and other information professions, including, but not limited to intellectual freedom, community service, social responsibility, ethics, intellectual property, and literacy.

IS561: Information Modeling

In order to best store information/data for future use, you need to understand how to best organize it. And to understand how to organize it, you need to know how to model it. This is a required course for the MSIM (Master’s in Information Management) program and the CAS in Digital Libraries, so I knew that it would be a good idea for me to take this class because I’m most interested in the more technical/digital side of things. But unlike the programming or database classes (which focused on hard skills), this class focuses on teaching the philosophical/conceptual foundations of how information is modeled/organized in today’s digital world, with the side-effect of teaching useful technologies like XML, RDF and OWL, UML diagrams, etc.

Course Description

An introduction to the foundations of information modeling methods used in current digital library applications. The specific methods considered include relational database design, conceptual modeling, markup systems, and ontologies. The basic concepts underlying these methods are, respectively, relations, entities, grammars, and logic. Implementations include relational database design, FR/EER/UML diagrams, XML markup languages, and RDF/OWL semantic web languages. First order logic is emphasized throughout as the foundational framework for information modeling in general, and for contemporary web-based information management and delivery systems (including semantic web technologies) in particular.

Learning Objectives

Content Objectives

  1. Develop fluency in reading and understanding formal definitions.
  2. Understand the role of abstraction in making systems design choices.
  3. Contrast deep vs. superficial differences in modeling languages.
  4. Recognize practical implications of trading expressive power for tractability.
  5. Appreciate the fundamental role of a very small set of inter-related concepts.

Teamwork and Communication Objectives

  1. Develop and practice strong teamwork skills.
  2. Develop and practice strong oral and written communication skills

IS590PR: Programming for Analytics and Data Processing

IS590PR is the follow-up course to IS452 (which I took last semester), so it assumes that you have either a basic working knowledge of Python or experience with another programming language (as many of the MSIM students do). Whereas IS452 introduced all of the basic concepts of Python like working with strings & integers/floats, for loops, lists, file reading & writing, functions, booleans & if/elif/else statements, dictionaries, and some extra stuff (working with csv, json, SQL, Xpath, regex)… IS590PR takes it a step further. You can see all of the stuff we’ll be learning down below under Course Topics (copied from the syllabus), but the basic format seems to be: read background in the textbook, listen to lecture on a specific topic, and complete a data processing programming exercise using real-world data. This class is definitely going to be challenging for me, but I expect to learn a lot and gain confidence in my ability to use Python to process data.

Course Description

Building on the fundamentals introduced in IS 452, this course adds skills, data structures, tools, and patterns needed for developing and modifying software to solve more complex problems and to improve code maintainability and reliability. These skills are relevant to many types of programming, but many scenarios used will involve data analysis, conversion, validation, and processing pipelines. The course helps prepare students for work on larger projects with multiple developers. Includes test-driven design, more OOP design concepts, refactoring, profiling, introductory parallel processing, and more. Primarily uses the Python language.

Course Topics & Learning Objectives

Programming Concepts:

  1. Expand study of data structures and libraries beyond 452 (e.g. sets, queues, graphs, numpy ndarray, pandas DataFrame & Series, etc.)
  2. Write functions including those that can accept a variable number of parameters
  3. Design object oriented classes, including operator overloading, encapsulation, abstraction, static methods, inheritance, and polymorphism
  4. Functional programming concepts: first-class functions; lambda functions; map, reduce, and filter functions; recursion; closures
  5. Algorithmic complexity and performance measurements; Big-O/Big-Q/Big-W notation, profiling, selective compilation
  6. Multi-threaded vs. multi-process design, locking, messaging
  7. Monte Carlo simulation techniques
  8. Designing and using multi-stage data pipelines; incorporating non-Python phases

Software Development Practices & Tools:

  1. Program quality considerations and code reviews; Refactoring
  2. Programming Teamwork
  3. Test-Driven Development: Using & writing automated tests, the TDD process and continuous integration.
  4. Version control/source code mgmt.: using git and GitHub. Do checkout, commits, versioning, branching, and merging; Compare distributed vs. centralized VCS tools for context.
  5. Debugging and Tracing Tools
  6. Code profiling and timing for performance and bottleneck analysis
  7. Full-featured Integrated Development Environments (IDE)
  8. Jupyter Notebook (common in data science)


“Programming in Python 3” (2nd Ed), by Mark Summerfield

Publisher’s Site

“Python for Data Analysis” (2nd Ed), by Wes McKinney

Publisher’s Site

IS590TH: Theories of Information

Maybe I shouldn’t play favorites with classes but… so far this class is definitely my favorite. It’s essentially a philosophy course, but with the topic of philosophical inquiry being information - and shouldn’t all information professionals know what “information” is? This is not your typical iSchool class: it’s small (about 10 people), very participatory, and it’s taught by the iSchool’s Dean - who has his Ph.D. in philosophy. As far as I know this is the first time this class has been offered (though I hope it becomes a regular part of the course catalog). The readings for the class (Frege, Church, Grice, Russell, Kripke, Gettier, Searle, Furner) are all works of philosophy, but with a direct relevance to the concept of information, and thus also to how we organize information (and thus how we can use information). I can say that I am taking this class because I firmly believe in having a strong philosophical grounding in your profession (which I do) but honestly… I’m taking this class because it’s fun.

Course Description

A theory of information attempts to articulate clearly and precisely what information is, and what it means to become informed. Theories of information can contribute to the scientific foundations for many important research and practice activities in LIS, including data curation, information modeling, information access, digital preservation, and informatics support for science and scholarship. This course, Theories of Information – A, takes a logic-based approach to investigating the nature of information. Methodologically we draw from a family of methods that might be called formal methods, in contrast to the empirical methods of social and nature science. Formal methods typically make use of concepts from logic, set theory, and discrete mathematics to construct and explore formal systems. Formal methods are widely used in linguistics, mathematics, philosophy, and computer science. Within the general area of formal methods our approach in this course might be more specifically referred to as conceptual analysis, as it takes the form of a systematic analysis of a concept, namely information. Most of the prior work that is relevant to our analysis is from analytic philosophy, linguistics (especially formal semantics), and computer science (especially knowledge representation and AI).

Topics to be covered

  1. Conceptual Analysis
  2. Ontology
  3. Propositions
  4. Communication
  5. Semantics
  6. Names
  7. Epistemology
  8. FRBR (Functional Requirements for Bibliographic Records)

Readings (a sampling)

“Sense and Nominatum” (1872) and “The Thought: A Logical Inquiry” (1918) by Gottlob Frege

“Propositions and Sentences” by Alonzo Church (1956)

“Meaning” by H.P. Grice (1957)

“On Denoting” by Bertrand Russell (1905)

“Naming and Necessity” by Saul Kripke (1872)

“Is Justified True Belief Knowledge” by Edmund Gettier (1963)

“Information Studies without Information” by Jonathan Furner (2004)

Leave a comment