Vicky Steeves (@VickySteeves) is the first Research Data Management and Reproducibility Librarian
Reproducibility is made so much more challenging because of computers, and the dominance of closed-source operating systems and analysis software researchers use. Ben Marwick wrote a great piece called ‘How computers broke science – and what we can do to fix it’ which details a bit of the problem. Basically, computational environments affect the outcome of analyses (Gronenschild et. al (2012) showed the same data and analyses gave different results between two versions of macOS), and are exceptionally hard to reproduce, especially when the license terms don’t allow it. Additionally, programs encode data incorrectly and studies make erroneous conclusions, e.g. Microsoft Excel encodes genes as dates, which affects 1/5 of published data in leading genome journals.
technology to capture computational environments, workflow, provenance, data, and code are hugely impactful for reproducibility. It’s been the focus of my work, in supporting an open source tool called ReproZip, which packages all computational dependencies, data, and applications in a single distributable package that other can reproduce across different systems. There are other tools that fix parts of this problem: Kepler and VisTrails for workflow/provenance, Packrat for saving specific R packages at the time a script is run so updates to dependencies won’t break, Pex for generating executable Python environments, and o2r for executable papers (including data, text, and code in one).
Visualizations of library data have been used to: • reveal relationships among subject areas for users. • illuminate circulation patterns. • suggest titles for weeding. • analyze citations and map scholarly communications
Each unit of data analyzed can be described as topical, asking “what.”6 • What is the number of courses offered in each major and minor? • What is expended in each subject area? • What is the size of the physical collection in each subject area? • What is student enrollment in each area? • What is the circulation in specific areas for one year?
libraries, if they are to survive, must rethink their collecting and service strategies in radical and possibly scary ways and to do so sooner rather than later. Anderson predicts that, in the next ten years, the “idea of collection” will be overhauled in favor of “dynamic access to a virtually unlimited flow of information products.” My note: in essence, the fight between Mark Vargas and the Acquisition/Cataloguing people
The library collection of today is changing, affected by many factors, such as demanddriven acquisitions, access, streaming media, interdisciplinary coursework, ordering enthusiasm, new areas of study, political pressures, vendor changes, and the individual faculty member following a focused line of research.
subject librarians may see opportunities in looking more closely at the relatively unexplored “intersection of circulation, interlibrary loan, and holdings.”
Using Visualizations to Address Library Problems
the difference between graphical representations of environments and knowledge visualization, which generates graphical representations of meaningful relationships among retrieved files or objects.
Exhaustive lists of data visualization tools include: • the DIRT Directory (http://dirtdirectory.org/categories/visualization) • Kathy Schrock’s educating through infographics (www.schrockguide.net/ infographics-as-an-assessment.html) • Dataviz list of online tools (www.improving-visualisation.org/case-studies/id=5)
p. 771 By looking at the data (my note – by visualizing the data), more questions are revealed, The visualizations provide greater comprehension than the two-dimensional “flatland” of the spreadsheets, in which valuable questions and insights are lost in the columns and rows of data.
By looking at data visualized in different combinations, library collection development teams can clearly compare important considerations in collection management: expenditures and purchases, circulation, student enrollment, and course hours. Library staff and administrators can make funding decisions or begin dialog based on data free from political pressure or from the influence of the squeakiest wheel in a department.
Eaton, M. E. (2017). Seeing Seeing Library Data: A Prototype Data Visualization Application for Librarians. Journal of Web Librarianship, 11(1), 69–78. Retrieved from http://academicworks.cuny.edu/kb_pubs
Visualization can increase the power of data, by showing the “patterns, trends and exceptions”
Librarians can benefit when they visually leverage data in support of library projects.
Nathan Yau suggests that exploratory learning is a significant benefit of data visualization initiatives (2013). We can learn about our libraries by tinkering with data. In addition, handling data can also challenge librarians to improve their technical skills. Visualization projects allow librarians to not only learn about their libraries, but to also learn programming and data science skills.
The classic voice on data visualization theory is Edward Tufte. In Envisioning Information, Tufte unequivocally advocates for multi-dimensionality in visualizations. He praises some incredibly complex paper-based visualizations (1990). This discussion suggests that the principles of data visualization are strongly contested. Although Yau’s even-handed approach and Cairo’s willingness to find common ground are laudable, their positions are not authoritative or the only approach to data visualization.
a web application that visualizes the library’s holdings of books and e-books according to certain facets and keywords. Users can visualize whatever topics they want, by selecting keywords and facets that interest them.
To give SeeCollections a unified visual theme, I have used Bootstrap. Bootstrap is most commonly used to make webpages responsive to different devices
D3.js facilitates the binding of data to the content of a web page, which allows manipulation of the web content based on the underlying data.
Introduction to functional programming principles, including immutability, higher-order functions, and recursion using the Clojure programming language. This workshop will cover getting started with the Clojure REPL, building programs through function composition, testing, and web-development using ClojureScript.
This workshop will do a deep dive into approaches and recommend best practices for customizing Blacklight applications. We will discuss a range of topics, including styling and theming, customizing discovery experiences, and working with Solr.
Proposed by: Chris Beer, Jessie Keck, and Jack Reed
We all encounter failure in our professional lives: failed projects, failed systems, failed organizations. We often think of failure as a negative, but it has intrinsic value — and since it’s inevitable that we’ll eventually experience failure ourselves, it’s important to know how to accept it, how to take lessons from it, and how to grow from it professionally. Fail4Lib, now in its 5th year, is the perennial Code4Lib preconference dedicated to discussing and coming to terms with the failures that we all face in our professional lives. It is a safe space for us to explore failure, to talk about our own experiences with failure, and to encourage enlightened risk taking. The goal of Fail4Lib is for participants to be adept at failing gracefully, so that when we do fail, we do so in a way that moves us forward. This half-day preconference will consist of case studies, round-table discussions, and, for those interested in sharing, lightning talks on failures we’ve dealt with in our own work.
Amazon Web Services currently offers 58 services ranging from the familiar compute and storage systems to game development and the internet of things. We will focus on the 20-some services that you should be aware of as you move your applications to their cloud.
The morning session will be mostly overview and the afternoon session will be more practical examples and discussion. This could be broken into two sessions.
Proposed by: Cary Gordon, t/b/d, and t/b/d
FOLIO is a library services platform — infrastructure that allows cooperating library apps to share data. This workshop is a hands-on introduction to FOLIO for developers of library apps. In this tutorial you will work with your own Vagrant image through a series of exercises designed to demonstrate how to install an app on the platform and use the data sources and design elements the platform provides.
Have an idea for an app? Want to work with FOLIO developers and others in the community on the FOLIO platform to make it happen. Come to this half-day hack-a-thon! Ideas for new developers will be posted in the project Jira, or bring your own concepts and work with others to make them reality.
REQUIREMENTS Laptop (4GB) with Vagrant installed. Attending the FOLIO Tutorial is recommended, but not required.
In this workshop, we will step through the various types of applications that can be built with Google Apps Script.
(1) Custom cell formulas
(2) Spreadsheet Add On Functions (menu items, time based triggers)
(3) Google Apps Script as a Web Service
(4) Google Apps Script Add-Ons that can be shared globally or by domain
In this workshop, we will build sample instances of each of these types of applications (wifi-permitting) and spend some time brainstorming additional applications that would be useful for the library community.
Calls to mindfulness and self care can have mixed reception in our field. While some view this important work as navel-gazing or unnecessary, it is integral to being present and avoiding burnout. Often this skewed attention to output comes at the expense of our personal lives, our organizations, our health, our relationships, and our mental well-being. Learning to prioritize self-care is an ongoing project among those who perform emotional labor. While some view the work of mindfulness as self-indulgent, it has proven to keep many on the track of being present and avoiding burnout.*
The purpose of this preconference is to provide a short introduction to self care and mindfulness with practical work we can use regardless of setting. We’ll discuss microaggressions and allyship (microaggressions being the brief and commonplace verbal, behavioral, or environmental indignities that marginalized people of various groups experience daily and allyship referring to the powerful role that individuals from privileged groups can play in supporting marginalized individuals). We will then transition to a modified unconference setting where participants can practice scenarios and learn practical solutions. Each of the presenters has different set of skills and experiences that allow for many techniques and strategies to be explored. Preconference attendees will participate in sessions like “Mentor Speed Dating” where they get to talk to and question potential mentors/mentees. They may be coached through a guided meditation or walked through a calming breathing exercise. For those looking to a more physical space, office yoga and stretching techniques may be shared depending on the outcomes of the unconference interest.
Foundational materials and articles will be shared with the registrants prior to the meeting with the option of further discussion at the workshop. An open access guide to all the resources and readings will be available after the preconference, and people will be encouraged to share additional their tools on a website.
Suggested Hashtag #c4lselfcare
* Abenavoli, R.M., Jennings, P.A., Greenberg, M.T., Harris, A.R., & Katz, D.A. (2013). The protective effects of mindfulness against burnout among educators. Psychology of Education Review, 37(2), 57-69
Proposed by: Carmen Mitchell, Lia Friedman, and Torie Quinonez
In this preconference, participants will be introduced to Virtual Reality uses in library settings, notably, by way of the VR Reading Room. Within the VR Reading Room prototype, users can collaboratively explore digital collections (e.g. HathiTrust) by way of VR headsets. Participants of this workshop will have the opportunity to experience HTC Vive functionality. The system will be setup with a prototype e-book experiment in order to model several VR affordances. Once attendees have been introduced to the HTC Vive hardware and sample project, groups of participants will have an opportunity to further brainstorm novel uses cases.
Python has become one of the dominant languages in scientific computing and is used by researchers around the world. Its popularity is due in large part to a rich set of libraries for data analysis like Pandas and NumPy and tools for exploring scientific code like Jupyter notebooks. Join us for this half-day workshop on the basics of using Pandas within a Jupyter notebook. We will cover importing data, selecting and subsetting data, grouping data, and generating simple visualizations. All are welcome, but some familiarity with Python is recommended, e.g. the concepts covered in the Codecademy or Google Python courses.
Learn about the features and capabilities of Sufia, a Hydra-based repository solution. Attendees will participate in a hand-on demonstration where they deposit content, edit metadata, create collections, and explore access control options. Attendees should bring laptops with Chrome, Firefox, or Safari installed. Please plan on bringing at least one image, document, or other digital content that you’re comfortable uploading and using for demo and experimentation purposes 🙂
The web can be a trove of openly accessible data, but it is not always readily available in a format that allows it to be downloaded for analysis and reuse. This workshop aims to introduce attendees to web scraping, a technique to automate extracting data from websites.
Part one of the workshop will use browser extensions and web tools to get started with web scraping quickly, give examples where this technique can be useful, and introduce how to use XPath queries to select elements on a page.
Part two will introduce how to write a spider in Python to follow hyperlinks and scrape several web pages using the Scrapy framework. We will conclude with an overview of the legal aspects of web scraping and an open discussion.
You don’t need to be a coder to enjoy this workshop! Anyone wishing to learn web scraping is welcome, although some familiarity with HTML will be helpful. Part two will require some experience with Python, attendees unfamiliar with this language are welcome to stay only for part one and still learn useful web scraping skills!
Paper prototyping is a low-cost, structured brainstorming technique that uses materials such as paper and pencils to better understand the way users interact with physical, visual, and textual information. It can help us learn how to better think through workflows, space design, and information architecture. Session attendees will learn about the ways low-fidelity prototyping and wireframing can be used to develop ideas, troubleshoot workflows, and improve learning and interaction.
In the first half of the workshop, participants will step through activities in icon design, persona development, and task development. In the second half they will develop a low fidelity prototype and step through a guerilla usability testing process with it.
Proposed by: Ekatarina (Eka) Grguric and Andreas Orphanides
Data Visualization Designer and Consultant for the Arts
The University Libraries of Virginia Tech seeks a specialist to join a team offering critical and sophisticated new technology development services that enhance the scholarly and creative expression of faculty and graduate students. This new position will bring relevant computational techniques to the enhance the fields of Art and Design at Virginia Tech, and will serve as a visual design consultant to project teams using data visualization methodologies.
The ideal candidates will have demonstrated web development and programming skills, knowledge of digital research methods and tools in Art and Design, experience managing and interpreting common types of digital data and assets studied in those fields.
The Data Visualization Designer & Digital Consultant for the Arts will not only help researchers in Art and Design fields develop, manage, and sustain digital creative works and digital forms of scholarly expression, but also help researchers across Virginia Tech design effective visual representations of their research. Successful candidates will work collaboratively with other Virginia Tech units, such as the School of Visual Arts; the School of Performing Arts; the Moss Center for the Arts; the Institute for Creativity, Arts, and Technology; and the arts community development initiative VTArtWorks (made possible by the Institute of Museum and Library Services [SP-02-15-0034-15])
– Investigates and applies existing and emerging technologies that help strengthen the Libraries’ mission to enhance and curate visual representations of data at Virginia Tech.
– Develops and modifies technologies and designs processes that facilitate data visualization/exploration, data and information access, data discovery, data mining, data publishing, data management, and preservation
– Serves as consultant to researchers on data visualization, visual design principles, and related computational tools and methods in the digital arts
– Keeps up with trends in digital research issues, methods, and tools in related disciplines
– Identifies data, digital scholarship, and digital library development referral opportunities; makes connections with research teams across campus
– Participates in teams and working groups and in various data-related projects and initiatives as a result of developments and changes in library services
The James E. Walker Library at Middle Tennessee State University (MTSU) seeks a systems librarian to contribute to the mission of the library through administration and optimization of the library’s various management systems.
This is a 12-month, tenure-track position (#401070) at the rank of assistant/associate professor. Start date for the position is July 1, 2018. All library faculty are expected to meet promotion and tenure standards.
This position reports to the team director. The successful candidate will collaborate with campus faculty and library colleagues to ensure long-term preservation and accessibility of digital assets, projects, and datasets collected and created by the library, and to support metadata strategies associated with digital scholarship and special collections. The person in this position will engage in national and/or international initiatives and insure that best practice is followed for curation of digital materials.
Coordinate management of digital repositories, working across teams, including Digital Initiatives & Scholarly Communication, Special Collections & Archives, Technology, and Resource Services, to ensure the sustainability of projects and content
Create and maintain policies and procedures guiding digital preservation practices, including establishing authenticity and integrity workflows for born digital and digitized content
In collaboration with the Digital Collections Librarian, create guidelines and procedures for metadata creation, transformation, remediation, and enhancement
Perform metadata audits of existing digital assets to ensure compliance with standards
Maintain awareness of trends in metadata and resource discovery
Participates in team and library-wide activities; serves on Library, Librarians’ Assembly, and University committees; represents the library in relevant regional, state, and national organizations
Participates in local, regional, or national professional organizations; enriches professional expertise by attending conferences and professional development opportunities, delivering presentations at professional meetings, publishing in professional publications, and serving on professional committees
Perform other duties as assigned
Master’s degree in Library Science from an ALA-accredited program or a master’s degree in a related field
Knowledge of best practices for current digital library standards for digital curation and of born digital and digitized content
Knowledge of current trends in data stewardship and data management plans
Experience with preservation workflows for born digital and digitized content
Experience with metadata standards and protocols (such as Dublin Core, Open Archives Initiative-Protocol for Metadata Harvesting (OAI-PMH), METS, MODS, PREMIS)
Demonstrated ability to manage multiple projects, effectively identify and leverage resources, as well as meet deadlines and budgets
Aptitude for complex, analytical work with an attention to detail
Ability to work independently and as part of a team
Excellent communication skills
Strong service orientation
One to three years of experience with digital preservation or metadata creation in an academic library setting
Experience with developing, using, and preserving research data collections
Familiarity with GIS and data visualization tools
Demonstrated skills with scripting languages and/or tools for data manipulation (e.g. OpenRefine http://openrefine.org/, Python, XSLT, etc.)
Mimi O’Malley is the learning technology translation strategist at Spalding University
THE DIGITAL HUMANITIES: IMPLICATIONS FOR LIBRARIANS,
LIBRARIES, AND LIBRARIANSHIP
The redefinition of humanities scholarship has received major attention in higher education over the past few years. The advent of digital humanities has challenged many aspects of academic librarianship. With the acknowledgement that librarians must be a necessary part of this scholarly conversation, the challenges facing subject/liaison librarians, technical service librarians, and library administrators are many. Developing the knowledge base of digital tools, establishing best procedures and practices, understanding humanities scholarship, managing data through the research lifecycle, teaching literacies (information, data, visual) beyond the one-shot class, renegotiating the traditional librarian/faculty relationship as ‘service orientated,’ and the willingness of library and institutional administrators to allocate scarce resources to digital humanities projects while balancing the mission and priorities of their institutions are just some of the issues facing librarians as they reinvent themselves in the digital humanities sphere.
A CALL FOR PROPOSALS
College & Undergraduate Libraries, a peer-reviewed journal published by Taylor & Francis, invites proposals for articles to be published in the fall of 2017. The issue will be co-edited by Kevin Gunn (firstname.lastname@example.org) of the Catholic University of America and Jason Paul (email@example.com) of St. Olaf College.
The issue will deal with the digital humanities in a very broad sense, with a major focus on their implications for the roles of academic librarians and libraries as well as on librarianship in general. Possible article topics include, but are not limited to, the following themes, issues, challenges, and criticism:
Developing the project development mindset in librarians
Creating new positions and/or cross-training issues for librarians
Librarian as: point-of-service agent, an ongoing consultant, or as an embedded project librarian
Developing managerial and technological competencies in librarians
Administration support (or not) for DH endeavors in libraries
Teaching DH with faculty to students (undergraduate and graduate) and faculty
Helping students working with data
Managing the DH products of the data life cycle
Issues surrounding humanities data collection development and management
Relationships of data curation and digital libraries in DH
Issues in curation, preservation, sustainability, and access of DH data, projects, and products
Linked data, open access, and libraries
Librarian and staff development for non-traditional roles
Teaching DH in academic libraries
Project collaboration efforts with undergraduates, graduate students, and faculty
Data literacy for librarians
The lack of diversity of librarians and how it impacts DH development
Advocating and supporting DH across the institution
Developing institutional repositories for DH
Creating DH scholarship from the birth of digital objects
Consortial collaborations on DH projects
Establishing best practices for dh labs, networks, and services
Assessing, evaluating, and peer reviewing DH projects and librarians.
Articles may be theoretical or ideological discussions, case studies, best practices, research studies, and opinion pieces or position papers.
Please submit proposals to Kevin Gunn (firstname.lastname@example.org) by August 17, 2016; please do not use Scholar One for submitting proposals. First drafts of accepted proposals will be due by February 1, 2017 with the issue being published in the fall of 2017. Feel free to contact the editors with any questions that you may have.
Kevin Gunn, Catholic University of America
Jason Paul, St. Olaf College
The Transformational Initiative for Graduate Education and Research (TIGER) at the General Library of the University of Puerto Rico-Mayaguez (UPRM) seeks an enthusiastic and creative Research Services Librarian to join our recently created Graduate Research and Innovation Center (GRIC).
The Research Services Librarian works to advance the goals and objectives of Center and leads the creation and successful organization of instructional activities, collaborates to envision and implement scholarly communication services and assists faculty, postdoctoral researchers, and graduate students in managing the lifecycle of data resulting from all types of projects. This initiative is funded by a five year grant awarded by the Promoting Postbaccalaureate Opportunities for Hispanic Americans Program (PPOHA), Title V, Part B, of the U.S. Department of Education.
The Research Services Librarian will build relationships and collaborate with the GRIC personnel and library liaisons as well as with project students and staff. This is a Librarian I position that will be renewed annually (based upon performance evaluation) for the duration of the project with a progressive institutionalization commitment starting on October 1st, 2016. .
The Mayaguez Campus of the University of Puerto Rico is located in the western part of the island. Our library provides a broad array of services, collections and resources for a community of approximately 12,100 students and supports more than 95 academic programs. An overview of the library and the university can be obtained through http://www.uprm.edu/library/.
Master’s degree in library or information science (MLS, MIS, MLIS) from an ALA (American Library Association)-accredited program • Fully bilingual in English and Spanish • Excellent interpersonal and communication skills and ability to work well with a diverse academic community • Experience working in reference and instruction in an academic/research library and strong assessment and user-centered service orientation • Demonstrated experience working across organizational boundaries and managing complex stakeholder groups to move projects forward • Experience with training, scheduling and supervising at various settings • Ability to work creatively, collaboratively and effectively on teams and on independent assignments • Experience with website creation and design in a CMS environment and accessibility and compliance issues • Strong organizational skills and ability to manage multiple priorities.
Second master’s degree, doctorate or formal courses leading to a doctorate degree from an accredited university
PRIMARY RESPONSIBILITIES AND DUTIES
Manages daily operations, coordinates activities, and services related to the GRIC and contributes to the continuing implementation of TIGER goals and objectives.
Works closely with liaison and teaching librarians to apply emerging technologies in the design, delivery, and maintenance of high-quality subject guides, digital collection, learning objects, online tutorials, workshops, seminars, mobile and social media interfaces and applications.
Provide support to faculty and graduate students through the integration of digital collection, resources, technologies and analytical tools with traditional resources and by offering user-centered consultation and specialized services 4. Participates in the implementation, promotion, and assessment of the institutional repository and e-science initiative related to data storage, retrieval practices, processes, and data literacy/management.
Advises and educates campus community about author’s rights, Creative Commons licenses, copyrighted materials, open access, publishing trends and other scholarly communication issues.
Develops new services as new needs arise following trends in scholarly communication e-humanities, and e-science.
Provides and develops awareness and knowledge related to digital scholarship and research lifecycle for librarians and staff.
Actively disseminates project outcomes and participates in networking and professional development activities to keep current with emerging practices, technologies and trends.
Actively promote TIGER or GRIC related activities through social networks and other platforms as needed.
Periodically collects, analyzes, and incorporates relevant statistical data into progress reports as needed (e.g. Facebook, Twitter, Springshare, among others).
Actively collaborates with the TIGER Project Assessment Coordinator and the Springshare Administrator to create reports and tools to collect data on user needs.
Coordinates the transmission of online workshops through Google Hangouts Air with the Agricultural Experiment Station Library staff.
Collaborates in the creation of grants and external funds proposals.
Availability and flexibility to work some weeknights and weekends.
SALARY: $ 45,720.00 yearly+ (12 month year).
BENEFITS: University health insurance, 30 days of annual leave, 18 days of sick leave.
Technology Integration and Web Services Librarian
The Ferris Library for Information, Technology and Education (FLITE) at Ferris State University (Big Rapids, Michigan) invites applications for a collaborative and service-oriented Technology Integration and Web Services Librarian. The Technology Integration and Web Services Librarian ensures that library systems and web services support and enhance student learning. Primary responsibilities include management and design of the library website’s architecture, oversight of the technical and administrative aspects of the library management system and other library enterprise applications, and the seamless integration of all library web-based services. Collaborates with other library faculty and staff to provide reliable electronic access to online resources and to improve the accessibility, usability, responsiveness, and overall user experience of the library’s website. Serves as a liaison to other campus units including Information Technology Services. The Technology Integration and Web Services Librarian is a 12-month, tenure-track faculty position based in the Collections & Access Services team and reports to the Assistant Dean for Collections & Access Services.
DIRECTOR OF DIGITAL PROJECTS, MIT Libraries, to direct the development, maintenance, and scaling of software applications and tools designed to dramatically increase access to research collections, improve service capabilities, and expand the library platform. Will be responsible for leading efforts on a variety of collaborative digital library projects aimed at increasing global access to MIT’s collections and facilitating innovative human and machine uses of a full range of research and teaching objects and metadata; and lead a software development program and develop partnerships with external academic and commercial collaborators to develop tools and platforms with a local and global impact on research, scholarly communications, education, and the preservation of information and ideas.
MIT Libraries seek to be leaders in the collaborative development of a truly open global network of library repositories and platforms. By employing a dynamic, project-based staffing model and drawing on staff resources from across the Libraries to deliver successful outcomes, it is poised to make immediate progress.
REQUIRED: four-year college degree; at least seven years’ professional experience and increasing responsibility with library systems and digital library strategy and development; evidence of broad, in-depth technology and systems knowledge; experience with integrated library systems/library services platforms, discovery technologies, digital repositories, and/or digital preservation services and technologies and demonstrated understanding of the trends and ongoing development of such systems and of emerging technologies in these areas; and experience directly leading and managing projects (i.e., developing proposals; establishing timelines, budgets, and staffing plans; leading day-to-day project work; and delivering on commitments). Job #13458-S
THE UNIVERSITY OF ALABAMA LIBRARIES Digital Projects Librarian Position Description
General Summary of Responsibilities
The University of Alabama Libraries seeks an innovative, dynamic, and service-oriented professional for the position of Digital Projects Librarian. Reporting to the Head of Web Services, this position is primarily responsible for development, implementation, and project management of technology projects in a collaborative environment, as well as supporting the development and management of the UA Libraries various web interfaces. This position will also act as primary administrator for LibApps and similar cloud-based library application suites.
Primary Duties and Responsibilities
The Web Services Unit is part of the University Libraries Office of Library Technology and is responsible for web applications, web sites, content, and services that comprise the University Libraries web presence. Among its duties, Web Services manages the University Libraries discovery service application, multiple instances of the WordPress CMS, WordPress Blogs, the LibApp suite of library tools, and Omeka as well as other tools, along with usability and accessibility efforts.
Administrate the UA suite of the LibApps tools (LibGuides, LibCal, LibAnswers, etc.); responsible for implementation of existing guidelines and maintaining continuity of look, feel and action;
Works as part of team that is responsible for management and extension of the University Libraries various web-based applications and tools (such as WordPress as a CMS and other CMS frameworks, WordPress Blogs, custom apps using an Angular JS framework and Bootstrap, Omeka, Drupal);
General, project-based web development and UX implementation within the framework of our web site, intranet and student portal;
Responsible for creating, modifying and implementing learning-tool solutions, such as Blackboard Learn widgets;
Evaluate the use and effectiveness of web applications and other technological services using analytics, usability studies, and other methods;
Work to identify and assist in implementing and evaluating promising emerging technologies and social media tools;
Provide technical expertise for the use of social media applications and tools;
Other duties as assigned.
Master’s degree in Library & Information Sciences from an ALA-accredited program or advanced degree in Instructional Technology or comparable field from an accredited institution;
Ability to successfully initiate, track, and manage projects;
Demonstrated experience working on digital library projects;
Experience administering CMS-type tools and an understanding of web programming work;
Familiarity with the Linux and/or Unix command-line;
Excellent interpersonal, communication, and customer service skills and the ability to interact effectively with faculty, students, and staff.
One year of experience working in an academic library on large digital projects – either implementation or programming/developing, or both.
Demonstrable experience creating course and/or subject guides via LibGuides or a comparable application;
Experience developing for libraries using current best practices in writing and implementation of multiple scripting or programing languages;
Experience with automated development repository environments using Grunt, Bower, GitHub, etc.
Experience with an Open Source content management systems such as WordPress;
Demonstrated ability to work collaboratively in a large and complex environment;
Familiarity with project management and team productivity tools such as Asana, Trello, and Slack;
Knowledge of XML and library metadata standards ;
Familiarity with responsive design methodologies and best practices;
Familiarity with agile-design practices;
Knowledge of graphic design and image editing software.
The University of Alabama, The Capstone University, is the State of Alabama’s flagship public university and the senior comprehensive doctoral level institution in Alabama. UA enrolls over 37,000 students, is ranked in the top 50 public universities in the United States, and its School of Library and Information Studies is ranked in the top 15 library schools in the country. UA has graduated 15 Rhodes Scholars, 15 Truman Scholars, has had 121 Fulbright Scholars, is one of the leading institutions for National Merit Scholars (150 in 2015), and has 5 Pulitzer Prize winners among its ranks. Under the new leadership of President Stuart Bell, UA has launched a strategic planning process that includes an aggressive research agenda and expansion of graduate education. UA is located in Tuscaloosa, a metropolitan area of 200,000, with a vibrant economy, a moderate climate, and a reputation across the South as an innovative, progressive community with an excellent quality of life. Tuscaloosa provides easy access to mountains, several large cities, and the beautiful Gulf Coast.
The University of Alabama is an equal opportunity employer and is strongly committed to the diversity of our faculty and staff. Applicants from a broad spectrum of people, including members of ethnic minorities and disabled persons, are especially encouraged to apply. The University Libraries homepage may be accessed at http://libraries.ua.edu
Prior to employment the successful candidate must pass a pre-employment background investigation.
SALARY/BENEFITS: This will be a non-tenure track 12-month renewable appointment for up to three year cycles at the Assistant Professor rank based on performance, funding, and the needs of the University Libraries. Salary is commensurate with qualifications and experience. Excellent benefits, including professional development support and tuition fee waiver.
Columbia University Libraries seeks a collegial, collaborative, and creative Digital Humanities Developer to join our Libraries IT staff. The Digital Humanities Developer will provide technology support for digital humanities-focused projects by evaluating, implementing and managing relevant platforms and applications; the Developer will also analyze, transform and/or convert existing humanities-related data sets for staff, engage in creative prototyping of innovative applications, and provide technology consulting and instructional support for Libraries staff.
This new position, based in the Libraries’ Digital Program Division, will work on a variety of projects, collaborating closely with the Digital Humanities Librarian, the Digital Scholarship Coordinator, other Libraries technology groups, librarians in the Humanities & History division and project stakeholders. The position will contribute to building out flexible and sustainable technology platforms for the Libraries’ DH programs and will
also explore new and innovative DH applications and tools.
– Evaluate, implement and manage web and related software applications and platforms relevant to the digital humanities program
– Analyze, transform and/or convert existing humanities-related data sets for staff, students and faculty as needed
– Engage in creative prototyping and model innovative technology solutions in support of the goals of the Digital Humanities Center
– Provide technology consulting, guidance and instruction to CUL staff a well as students and faculty as required
– Conduct independent exploration of technology issues and opportunities in the Digital Humanities domain
The successful candidate will have great collaboration and communication skills and a strong interest in developing expertise in the evolving field of digital humanities.
Columbia University is An Equal Opportunity/Affirmative Action employer and strongly encourages individuals of all backgrounds and cultures to consider this position.
-Bachelor’s degree in computer science or a related field, with experience in the humanities, a minimum of 3 years of related work experience, or an equivalent combination of education and experience
Advanced degree in computer science or a related field, or an advanced degree in the humanities or related field; experience in one or more of the following areas: natural language processing, text analysis, data-mining, machine learning, spatial information / mapping, data modeling, information visualization, integrating digital media into web applications; experience with XML/XSLT, GIS, SOLR, linked data technologies; experience with platforms used for digital exhibits or archives.
The University Libraries at Appalachian State University seeks a responsive and collaborative Electronic Resources Librarian. The Electronic Resources Librarian will ensure a seamless and transparent research environment for students and faculty by managing access to electronic resources. Working collaboratively across library teams, the Electronic Resources Librarian will identify and implement improvements in online content, systems and services. The successful candidate will have strong project management, problem solving, and workflow management skills. The Electronic Resources Librarian is a member of the Resource Acquisition and Management Team.
ALA-accredited master’s degree.
Excellent communication, presentation, and interpersonal skills.
Demonstrated e-resources project and workflow management skills.
Experience with integrated library systems (Sierra preferred).
Experience with setup and maintenance of knowledge base, OpenURL, and discovery systems (EDS preferred).
Experience with proxy setup and maintenance (Innovative’s WAM, and/or EZ Proxy preferred).
Knowledge of security standards and protocols such as LDAP, Single-Sign On, and Shibboleth, and data transfer standards and protocols such as IP, FTP, COUNTER, and SUSHI.
Advanced skills with office productivity software including MS Office, and Google Apps for Education.
Evidence of establishing and maintaining excellent vendor relationships.
Demonstrated ability to work collaboratively across library teams.
Demonstrated skill in technical trouble-shooting and problem-solving.
Demonstrated supervisory skills.
Second advanced degree.
From: email@example.com [mailto:firstname.lastname@example.org] On Behalf Of Spencer Lamm
Sent: Thursday, October 13, 2016 12:13 PM
Subject: [lita-l] Jobs: Digital Repository Application Developer, Drexel University Libraries
Drexel University Libraries seeks a collaborative and creative professional to develop solutions for managing digital collections, research data, university records, and digital scholarship. Working primarily with our Islandora implementation, this position will play a key role as the Libraries advance preservation services and public access for a wide array of digital content including books, articles, images, journals, newspapers, audio, video, and datasets.
As a member of the Data & Digital Stewardship division, the digital repository application developer will work in a collaborative, team-based environment alongside other developers, as well as archives, metadata, and data services staff. The position’s primary responsibility will be working in a Linux environment with the Islandora digital repository stack, which includes the Fedora Commons digital asset management layer, Apache Solr, and Drupal. To support the ingestion and exposure of new collections and digital object types the position will extend the repository using tools such as: RDF, SPARQL, and triplestores; the SWORD protocol; and XSLT.
Reporting to the manager, discovery systems, the developer will collaborate with collection managers and stakeholders across campus. In addition, the successful candidate will play an active role in the Islandora and Fedora open source communities, contributing code, participating in working groups and engaging in other activities in support of current and future implementers of these technologies.
Librarian and Instructional Technology Liaison – Data Services (#459)
Date Posted: 10/19/2016 Type/Department: Staff in Library, Information & Technology Services
As a member of a fully blended group of librarians and instructional technologists in the Research & Instructional Support (RIS) department, the Librarian/Library and Instructional Technology Liaison (title dependent on qualifications) will work closely with fellow liaisons in RIS to provide forward-looking library research and instructional technology services to faculty and students, with a special focus on data services.The liaison collaborates broadly across LITS as well as with internal and external partners to support faculty and students participating in the College’s data science curricular initiative and in data-intensive disciplines. The liaison coordinates the development, design, and provision of responsive and flexible data services programming for faculty and students, including data analysis, data storage, data publishing, data management, data visualization, and data preservation. The liaison consults with faculty and students in a wide range of disciplines on best practices for teaching and using data/statistical software tools such as R, SPSS, Stata, and MatLab.All liaisons collaborate with faculty to support the design, implementation and assessment of meaningfully integrated library research and technology skills and tools (including Moodle, the learning management system) into teaching and learning activities; provide library research and instructional technology consultation; effectively design, develop, deliver, and assess seminars, workshops, and other learning opportunities; provide self-motivated leadership in imagining and implementing improvements in teaching and learning effectiveness; serve as liaison to one or more academic departments or programs, supporting pedagogical and content needs in the areas of collection development, library research, and instructional technology decisions; maintain high levels of quality customer service standards responding to questions and problems; partner with colleagues across Library, Information, and Technology Services (LITS) to ensure excellence in the provision of services in support of teaching and learning; and actively work to help the RIS team and the College to create a welcoming environment in which a diverse population of students, faculty, and staff can thrive.Evening and weekend work may be necessary. In some circumstances, it may be important to assist during adverse weather and emergency situations to ensure essential services and service points are covered. Performs related duties as assigned.Qualifications:
Advanced degree required, preferably in education, educational technology, instructional design, or MLS with an emphasis in instruction and assessment. Open to other combinations of education and experience such as advanced degree in quantitative academic disciplines with appropriate teaching and outreach experience.
3-5 years experience in an academic setting with one or more of the following: teaching, outreach, instructional technology and design support, or research support.
Significant experience with statistical/quantitative data analysis using one or more of the following tools: R, SPSS, Stata, or MatLab.
Significant experience with one or more of the following: data storage, data publishing, data management, data visualization, or data preservation.
Demonstrated passion for the teaching and learning process, an understanding of a variety of pedagogical approaches, and the ability to develop effective learning experiences.
Demonstrated ability to lead projects that include diverse groups of people.
A love of learning, the ability to think critically with a dash of ingenuity, the open-mindedness to change your mind, the confidence to admit to not knowing something, and a willingness to learn and move on from mistakes.
Attention and care for detail without losing sight of the big picture and our users’ needs.
Flexibility to accept, manage, and incorporate change in a fast-paced environment.
Excellent oral and written communication, quantitative, organization, and problem-solving skills.
The ability to work independently with minimal supervision.
Able to maintain a professional and tactful approach in all interactions, ensuring confidentiality and an individual’s right to privacy regarding appropriate information.
Enthusiastic service orientation with sensitivity to the needs of users at all skill levels; the ability to convey technical information to a non-technical audience is essential.
Ability to travel as needed to participate in consortia and professional meetings and events.
From:email@example.com [mailto:firstname.lastname@example.org] On Behalf Of Williams, Ginger Sent: Tuesday, November 22, 2016 8:37 AM To: ‘email@example.com’ <firstname.lastname@example.org> Subject: [lita-l] Job: Library Specialist Data Visualization & Collection Analytics (Texas USA)
library Specialist: Data Visualization & Collections Analytics
The Albert B. Alkek Library at Texas State University is seeking a Library Specialist: Data Visualization & Collections Analytics. Under the direction of the Head of Acquisitions, this position provides library-wide support for data visualization and collection analytics projects to support data-driven decision making. This position requires a high level of technical expertise and specialized knowledge to gather, manage, and analyze collection data and access rights, then report complex data in easy-to-understand visualizations. The position will include working with print and digital collections owned or leased by the library.
RESPONSIBILITIES: Develop and maintain an analytics strategy for the library. Manage and report usage statistics for electronic resources. Conduct complex holdings comparison analyses utilizing data from the Integrated Library System (ILS), vendors and/or external systems. Produce reports from the ILS on holdings and circulation. Develop strategies to clean and normalize data exported from the ILS and other systems for use in further analysis. Utilize data visualization strategies to report and present analytics. Conduct benchmarking with vendors, peer institutions, and stakeholders. Coordinate record-keeping of current and perpetual access rights for electronic resources and the management of titles in preservation systems such as LOCKSS and PORTICO. Maintain awareness of developments with digital preservation systems and national and international standards for electronic resources. Serve as the primary resource person for questions related to collections analytics and data visualization. Represent department and library-wide needs by participating in various committees. Participate in formulating departmental and unit policies. Pursue professional development activities to improve knowledge, skills, and abilities. Coordinate and/or perform special projects, participate in department & other staff meetings and perform other duties as needed.
Required: Ability to read, analyze, and understand data in a variety of formats; strong written, oral, and interpersonal skills, including ability to work effectively in a team; experience using R, Tableau, BayesiaLab or other data visualization or AI applications, demonstrated by an online portfolio; advanced problem solving, critical thinking, and analytical skills; demonstrated advanced proficiency with Microsoft Excel, including experience using VBA, macros, and formulas; intermediate familiarity with relational databases such as Microsoft Access, including creating relationships, queries, and reports; innovative thinking including the ability to utilize analytics/visualization tools in new, creative, and effective ways.
Preferred: Bachelor’s degree in quantitative or data visualization field such as Applied Statistics, Data Science, or Business Analytics or certificate in data visualization; familiarity with library collection management standards and tools, such as reporting modules within integrated library systems, COUNTER, SUSHI, PIE-J, LOCKSS, PORTICO, library electronic resource usage statistics, and continuing resources; experience with SQL or other query language.
SALARY AND BENEFITS: Commensurate with qualifications and experience. Benefits include monthly contribution to health insurance/benefits package and retirement program. No state or local income tax.
BACKGROUND CHECK: Employment with Texas State University is contingent upon the outcome of a criminal history background check.
Texas State University is an Equal Opportunity Employer. Texas State, a member of the
Texas State University System, is committed to increasing the number of women and
minorities in administrative and professional positions.
Assistant Professor – Web Development Librarian #002847
Office of the Dean – Hunter Library
Hunter Library seeks an enthusiastic, innovative, collaborative, and user-oriented librarian for the position of Web Development and User Experience Librarian. This librarian will research, develop, and assess enhancements to the library’s web presence. The person in this position will design new sites and applications to improve the user experience in discovering, finding, and accessing library content and services. Providing vision and leadership in designing, developing and supporting the library website content and integrating it with the larger library web presence, which includes discovery tools, digital collections, and electronic resources; supervision of one technology support analyst, as well as staff/student employees engaged in related work, as assigned. Monitors workflow and deadlines; day-to-day management, including programming and editorial recommendations, of the library’s web pages and intranet; serves as a member of the library’s web steering committee, an advisory group that includes representatives from across the library; development and implementation web applications and tools, particularly for mobile environments. The library values collaboration and broad engagement in library-wide decisions and initiatives. This position reports directly to the Head of Technology, Access, and Special Collections.
WCU embraces its role as a regionally engaged university and is designated by the Carnegie Foundation for the Advancement of Teaching as a community engaged university. Preference will be given to candidates who can demonstrate a commitment to public engagement through their teaching, service, and scholarship
Knowledge, Skills, & Abilities Required for this Position
Academic library experience; demonstrated skills in User Experience Design; demonstrated experience with usability testing, WAI guidelines, and web analytics; demonstrated experience with mobile platforms, applications, and design; demonstrated experience developing responsive web pages or applications; demonstrated experience with content management systems, relational databases, and web servers; skills or interest in photography; experience with graphic design software; familiarity with a programming environment that includes languages such as ASP.NET, PHP, Python, or Ruby
Position: Library Information Analyst
The Library Information Analyst coordinates Access & Information Services (AIS) technology assessment activities, working in a 24/5 environment to support the technology needs of customers. This position will analyze and report quantitative and qualitative data gathered from various technology-related services including the iSpace (library maker space), equipment lending, and all public-facing user technology. Using this data, the incumbent will support strategic planning for improving and operationalizing technology-related services, provide analysis to support a wide variety of data to management, and makes recommendations for process improvements.
The University of Alabama Libraries seeks a talented and energetic professional Web Development Librarian in the Web Technologies and Development unit. Reporting to the Manager of Web Technologies and Development, this position will be responsible for supporting and extending the Libraries’ custom web applications, tools, and web presence. The position will also engage in project work, and support new technology initiatives derived from our strategic plan. The position duties will be split among extending and supporting our custom PHP web apps framework, maintaining and enhancing our web site, maintaining and extending our custom Bento search tool, and developing for open-source digital initiatives such as EBSCO’s FOLIO library framework. The position will also support inter-departmental development and troubleshooting using your front-stack and back-end skills.
The successful candidate will maintain a knowledge of current best practices in all areas of responsibility with special attention to security. S/he will identify promising new technologies that can positively impact services or generate a better user experience and will be an innovative and entrepreneurial professional who desires to work in a creative, collaborative and respectful environment.
The Web Technologies and Applications department is responsible for the development of such nationally-recognized tools as our Bento search interface and our innovative applications of Ebsco’s EDS tool. The University Libraries emphasizes a culture of continuous learning, professional growth, and diversity through ongoing and regular training, and well-supported professional development.
MLS/MLIS degree from an ALA accredited program, or
Demonstrated ability to work independently, as well as collaboratively with diverse constituencies; comfortable with ambiguity; and effective oral, written and interpersonal communication
Experience (1 year+) developing for LAMP systems / extensive familiarity with PHP and MySQL or other back-end development Eg, must be able to write SQL queries and PHP code, and show understanding of web application usage using these tools within a Linux and Apache environment.
Familiarity with version control usage systems in a development
Familiarity with basic UX, iterative design, accessibility standards and mobile first
Experience developing within a WordPress
Ability to problem solve
Ability to set and follow through on both individual and team priorities and
Aptitude for learning new technologies and working in a dynamic
Demonstrated comfort with an evolving technology
A desire to be awesome, and develop awesome projects.
1-3 years of programming and development experience in a web environment using LAMP
Experience developing for, and supporting, common open-source library applications such as Omeka, ArchiveSpace, Dspace,
Experience with Java, Ruby, RAML
Familiarity with NoSQL databases and
Experience interacting with and manipulating REST API data
Application or mobile development
Experience with professional workflows using IDEs, staging servers, Git, Grunt, and
Familiarity with js, Bootstrap, Angular.js, Roots.io.
Familiar with UX methodologies and
Experience with web security issues, HTTPS, and developing secure
Experience developing for and within open-source
Web Developer/Content Strategist
– Experience working with Drupal or similar CMS.
– Experience working with LibGuides.
– Familiarity with academic libraries.
General Summary: Designs, develops and maintains websites and related applications for the University Libraries. The position also leads a team to develop holistic communication strategies including the creation and maintenance of an intuitive online experience.
– Develops web content strategy for all University Libraries departments. Serves as Manager for CMS website. Leads effort to coordinate website messaging across multiple platforms including Libraries CMS, LibGuides, social media, and other electronic outlets. Leads research, organization, and public relations efforts concerning the development and release of new websites.
– Designs, tests, debugs and deploys websites. Maintains and updates website architecture and content. Ensures website architecture and content meets University standards.
– Collaborates with University staff to define and document website requirements. Gathers and reports usage statistics, errors or other performance statistics to improve information access and further the goals of the University Libraries.
– Works with Libraries Resource Management to incorporate web-related materials and resources from the Integrated Library System into other web platforms. Works with Libraries IT Services to coordinate maintenance of the architecture, functionality, and integrity of University Libraries websites.
– Bachelor’s degree or higher in a related field from an accredited institution.
– Three years’ relevant experience.
– Strong interpersonal, written and verbal communication skills.
– Experience documenting technical and content standards.
Integers: A signed or unsigned whole number running from -32,768 to 32,768 or from 0 to 65,535 if not signed. Integers are used anytime something needs to be counted.
Long Integer: Any whole number outside the above range. Python doesn’t distinguish between the two though many languages do. Practically, Python’s integers range from −2,147,483,648 to 2,147,483,648 or 0 to 0 to 4,294,967,295. Most of us will be very happy with this many whole numbers to choose from.
Real and Floating Point Numbers: Real numbers are signed or unsigned numbers including decimals. The numbers 2,3,4 are Integers and Real Numbers. The numbers 2.1, 2.9,3.9 are Real Numbers, but not Integers. Real Numbers can include representations of irrational numbers such as pi. Real numbers must be rational, that is a decimal number that terminates after a finite number of decimals. You will sometimes encounter the term Floating Point Numbers. This is a technical term referring to the way that large Real Numbers are represented in a computer. Python hides this detail from you so Real and Floating Point are used intercangeably in this language.
Binary Numbers: And Octal and Hexadecimal. These are numbers used internally by computers. You will run into these values fairly often. For instance, when you see color values in HTML such as “FFFFFF” or “0000FF”,
Hexadecimal and Octal are used because humans can read them without too much trouble and they are compromise between what computers process and what we can read. Any time you see something in Octal or Hexadecimal, you are looking at something that interfaces with the lower levels of a computer. You will most commonly use Hexadecimal numbers when dealing with Unicode character encodings. Python will interpret any number which begins with a leading zero as binary unless formatting commands have been used.
Numbers such as 7i are referred to as complex. They have a real part, the 7, and an imaginary part, i. Chance are you won’t use complex numbers unless you’re working with scientific data.
A String consists of a sequence of characters. The term String refers to how this data type is represented internally. You store text in Strings. Text can by anything, letters, words, sentences, paragraphs, numbers, just about anything.
Lists are close cousins to Strings, though you may never need to think of them that way. A list is just that, a list of things. Lists may contain any number of numbers or any number of strings. List may even contain any number of other lists. Lists are compared to arrays, but they are not the same thing. In most uses, the function the same so the difference, for our purposes, is moot. Strings are like lists in that, internally, the computer works with strings in an identical manner to lists. This is why the operations on Strings are so different from numbers.
The last main data type in the Python programming language is the dictionary. Dictionaries are map types, known in other languages as hashes, and in computer science as Associative Arrays. The best way to think of what the dictionary does is to consider a Library of Congress Call Number(something this audience is familiar with). The call number is what’s called a Key. It connects to a record which contains information about a book. The combination of keys and records, called values, comprises a dictionary. A single key will connect to a discrete group of values such as the items in this record. Dictionaries will be touched on in the next lesson in some detail in the next course. These are fairly advanced data structures and require a solid understanding a programming fundamentals in order to be used properly.
Statements, an Overview
Programs consist of statements. A statement is a unit of executable code. Think of a statement like a sentence. In a nutshell, statements are how you do things in a program. Writing a program consists of breaking down a problem you want to solve into smaller pieces that you can represent as mathematical propositions and then solve. The statement is where this process gets played out. Statements themselves consist of some number of expressions involving data. Let’s see how this works.
An expression would be something like 2+2=4. This expression, however is not a complete statements. Ask Python to evaluate it and you will get the error “SyntaxError: can’t assign to operator”. What’s going on here? Basically we didn’t provide a complete statement. If we want to see the sum of 2+2 we have to write a complete statement that tells the interpreter what to do and what to do it with. The verb here is ‘print’ and the object is ‘2+2’. Ask Python to evaluate ‘print 2+2’ and it will show ‘4’. We could also throw in subject and do something a bit more detailed: ‘Sum=2+2’. In this case we are assigning the value of 2+2 to the variable, Sum. We can then do all sorts of things with Sum. We can print it. We can add other numbers to it, hand it off to a function and so on. For instance, might want to know the root of Sum. In which case we might write something like ‘print sqrt(sum)’ which will display ‘2’.
A shell is essentially a user interface that provides you access to a system’s features. Normally, this means access to an Operating System. In cases like this, the shell provides you access to the Python programming environment.
Anything preceed by a “#” is not interpreted or executed by the programming shell. Comments are used widely to document programs. One school of programming holds that code should be so clear that comments are uncessary.
Operations on Numbers
Expressions are discrete statements in programming that do something. They typically occupy one line of code, though programmers will sometimes squeeze more in. This is generally bad form and can really make your program a mess. Expressions consist of operations and data or rather data and operations on them. So, what can you do with numbers? Here is a concise list of the basic operations for integers and real numbers of all types:
Addition: z= x + y
Subtraction: z = x – y
Multiplication: z = x * y. Here the asterisk serves as the ‘X’ multiplication symbol from grade school.
Division: z = x/y. Division.
Exponents: z = x ** y or xy, x to the y power.
Operations have an order of precedence which follows the algebraic order of precedence. The order can be remembered by the old Algebra mnenomic, Please Excuse My Dear Aunt Sally which is remeinds you that the order of operations is:
Operations on Strings
Strings are strange creatures as I’ve noted before. They have their own operations and the arithmetic operations you saw earlier don’t behave the same way with strings.
Putting Expressions Together to Make Statements
As I noted earlier, all computer languages, and natural languages, possess pragmatics, larger scale structures which reduce ambiguity by providing context. This is a fancy way of saying just as sentences posses rules of syntax to make able to be comprehended, larger documents have similar rules. Computer Programs are no different. Here’s a break down of the structure of programs in Python, in a general sense.
Programs consist of one or more modules.
Modules consist of one or more statements.
Statements consist of one or more expressions.
Expressions create and/or manipulate objects(and variables of all kinds).
Modules and Programs are for the next class in the series, though we will survey these larger structures next lesson. For now, we’ll focus on statements and expressions. Actually, we’ve already started with expressions above. In Python, statements can do three things.
Assign a variable
Change a variable
Take an action
Variable Names and Reserved Words
Now that we’ve seen some variable assignments, let’s talk about best practices. First off, aside from reserved words, variable names can be almost any combination of letters, numbers and punctuation marks. You, however, should never ever, use the following punctuation marks in variable names:
These punctuation marks tends to be operators and characters that have special meanings in most computer languages. The other issue is reserved words. What are “reserved words”? They are words that Python interprets as commands. Pythons reservers the following words.:
True: A special value set aside for boolean values
False: The other special value set aside for boolean vaules
None: The logical equivalent of 0
and: a way of combining logical conditions
as: describes how modules are imported
assert: a way of forcing something to take on a certain value. Used in debugging of large programs
break: breaks out of a loop and goes on with the rest of the program
class: declares a class for object oriented design. For now, just remember not to use this variable name
continue: returns to the top of the loop and keeps on going again
def: declares functions which allow you to modularize your code.
elif: else if, a cotnrol structure we’ll see next lesson
else: as above
except: another control structure
finally: a loop control structure
for: a loop control structure
from: used to import modules
global: a scoping statement
if: a control structure/li>
in: used in for each loops
is: a logical operator
lamda: like def, but weird. It defines a function in a single line. I will not teach this becuase it is icky. If you ever learn Perl you will see this sort of thing a lot and you will hate it, but that’s just my personal opinion.
nonlocal: a scoping command
not: a logical operator
or: another logical operator
pass: does nothing. Used as placeholder
raise: raises an error. This is used to write custom error messages. Your programs may have conditions which would be considered invalid based on our business situation. The interpreter may not consider them errors, but you might not want your user to do something so you ‘raise’ an exception and stop the program.
return: tells a function to return a value
try: this is part of an error testing statement
while: starts a while loop
with: a context manager. This will be covered in the course after the next one in this series
yield: works like return
Variable names should be meaningful. Let’s say I have to track a person’s driver license number. explanatory names like ‘driverLicenseNumber’.
Use case to make your variable names readable. Python is case sensitive, meaning a variable named ‘cat’ is different from named ‘Cat’. If you use more than one word to name variable, start of lower case the change case on the second word. For instance “bigCats = [‘Tiger’,’Lion’,’Cougar’, ‘Desmond’]”. The common practice used by programmers in many settings is that variables start with lowercase and functions(methods and so on) start with upper case. This is called “Camel Case” for its lumpy, the humpy appearance. Now, as it happens, there is something of a religious debate over this. Many Python programmers prefer to keep everything lower case and join words in a name by underscores such as “big_cats”. Use whichever is easiest or looks the nicest to you.
Variable names should be unique. Do not reuse names. This will cause confusion later on.
Python conventions. Python, as with any other programming language, has culture built up around it. That means there are some conventions surrounding variable naming. Two leading underscores, __X, denote system variables which have special meaning to the interpreter. So avoid using this for your own variables. There may be a time and place, but that’s for an advanced prorgramming course. A single underscore _X indicates to other programmers that this a fundamental variable and that they mess with it at their own peril.
Avoid starting variable names with a number. This may or may not return an error. It can also mislead anyone reading your program.
“A foolish consistency is the hobgoblin of little minds”. But not to programming minds. Consistency helps the readability of code a great deal. Once you start a system, stick with it.
Putting together valid statements can be a little hard at first. There’s a grammar to them. Thus far, we’ve mainly been workign with expressions such as “x = x+1”. You can think of expression as nouns. We’ve clearly defined x, but how do we look inside? For that we need to give it a verb, the print command. We would then write “print x”. However we can skip the middle statement and print an expression such as “print x + 1”. The interpreter evaluates this per the order of operations I laid out earlier. However, once that expression is evaluated, it then applies the verb, “print”, to that expression.
Print is a function that comes with the Python distribution. There are many more and you can create your own. We’ll cover that a bit in next lesson. Let’s look at little more at the grammar of a statement. Consider:
x = sin(b)
Assume that b has been defined elsewhere. x is the subject, b is the object and sin is the verb. Python will go to the right side of the equal sign first. It will then go to the inside of the function and evaluate what’s there first. It then evaluates the value of the function and finishes by setting x to that value. What about something like this?
Python evaluates from the inside out according to the rules of operation. Very complex statements can be built up this way.
x = sin(log((x + 3)/(e**2)))
Regardless of what this expression evaluates to (I don’t actually know), Python starts with the innermost parentheses, then works through the value of e squared then adds 3 to x and divides the result by e squared. With that worked out, it takes the logarithm of the result and takessthe sine of that before setting x to the final result.What you cannot do is execute more than one statement on a line. No more than one verb on a line. In this context, a verb is an assignment, or a command acting on an expression
Call up your copy of Think Python or go to the website at http://www.greenteapress.com/thinkpython/html/. Read Chapter 2. This will reiterate much of what I’ve presnted here, but this will help cement the content into you minds. Skip section 2.6 because IPython treats everything as script mode. IPyton provides you with the illusion of interactive, but everything happens asynchronously. This means that any action you type in will not instantaneously resolve as it would if you were running Python interactively on your computer. You will have to use print statements to see the results of your work.
Your assignment consists of the following:
Exercise 1 from Chapter 2 of Think Python. If you type an integer with a leading zero, you might get a confusing error:
<<< zipcode = 02492
SyntaxError: invalid token
Other numbers seem to work, but the results are bizarre:
<<< zipcode = 02132
Can you figure out what is going on? Hint: display the values 01, 010, 0100 and 01000.
Exercise 3 from Chapter 2 of Think Python.Assume that we execute the following assignment statements:
width = 17
height = 12.0
delimiter = ‘.’
For each of the following expressions, write the value of the expression and the type (of the value of the expression).
1 + 2 5
Exercise 4 from Capter 2 of Think Python. Practice using the Python interpreter as a calculator:
1. The volume of a sphere with radius r is 4/3 π r3. What is the volume of a sphere with radius 5? Hint: 392.7 is wrong!
2. Suppose the cover price of a book is $24.95, but bookstores get a 40% discount. Shipping costs $3 for the first copy and 75 cents for each additional copy. What is the total wholesale cost for 60 copies?
3/ If I leave my house at 6:52 am and run 1 mile at an easy pace (8:15 per mile), then 3 miles at tempo (7:12 per mile) and 1 mile at easy pace again, what time do I get home for breakfast?
In your IPython notebook Create a markdown cell and write up your exercise in there. Just copy it from the textbook or from the above write up. Next ceate a code cell and do your work in there. Please, comment your work thoroughly. You cannot provide too many comments. Use print statements to see the outcome of your work.
Our beginning programming course, CNA 267, is now using Python as the programming language. Students learn to work with decision and loop control structures, variables, lists (arrays) and procedures, etc. Python is becoming one of the most widely-accepted languages for business professionals and scientists.
Please inform your students (who need to learn programming) of this course. It is being offered during spring semester, as well as next fall.