Free and Open Source Software and Free Culture Minor

Required Courses
Free & Open Source Culture
This course charts the development of the free culture movement by examining the changing relationship between authorship and cultural production based on a variety of factors: law, culture, commerce and technology. In particular, we will examine the rise of the concept of the individual author during the last three centuries. Using a variety of historical and theoretical readings, we will note how law and commerce have come to shape the prevailing cultural norms surrounding authorship, while also examining lesser known models of collaborative and distributed authoring practices. This background will inform our study of the rapid social transformations wrought by media technologies in last two centuries, culminating with the challenges and opportunities brought forth by digital media, mobile communications and networked computing. Students will learn about the role of software in highlighting changing authorship practices, facilitating new business and economic models and providing a foundation for conceiving of open source, open access, participatory, peer-to-peer and Free (as in speech, not beer) cultures. (Prerequisites: Completion of First Year Writing (FYW) requirement is required prior to enrolling in this class.) Lecture 3 (Spring).
Humanitarian Free & Open Source Software Development
This course provides students with exposure to the design, creation and production of Open Source Software projects. Students will be introduced to the historic intersections of technology and intellectual property rights and will become familiar with Open Source development processes, tools and practices. They will become contributing members of humanitarian software, game and interactive media development communities. Students will actively document their efforts on Humanitarian Free and Open Source Software community hubs. (Prerequisites: This class is restricted to students with at least 2nd year standing.) Lec/Lab 3 (Spring).
Legal and Business Aspects of FOSS
The entertainment and software industries are grappling with the impacts of free software digital distribution. Agile development, 3D printing, the Internet and other technologies are changing the face of how business is done, as well as what business can charge for and hold onto. Disruptive technologies, emerging interfaces, and real-time, on-demand product creation and distribution are transforming our entertainment, telecommunications and manufacturing landscapes. This course will examine the impacts of these new technologies and the new thinking that are taking us into these new worlds. (Prerequisites: IGME-582 or equivalent course.) Lec/Lab 3 (Fall).
Constrained Elective
Choose one of the following:
   Technical Writing
Provides knowledge of and practice in technical writing. Key topics include audience analysis; organizing, preparing and revising short and long technical documents; designing documents using effective design features and principles, and formatting elements using tables and graphs; conducting research; writing technical definitions, and physical and process descriptions; writing instructions; and individual and group peer editing. Lecture 3 (Fall, Spring).
   Software Development on Linux Systems
Students will learn how to package software for release and engage in version maintenance within the FOSS community. Topics such as Linux package management, version control systems, potential license conflicts, development vs. production releases, bug tracking, maintenance management, forking, patching and future development will be covered in from both a management and end-user perspective in lectures, lab exercises and a project. (Prerequisites: IGME-582 or equivalent course.) Lec/Lab 3 (Spring).
Elective Course
Choose one of the following:
   Unix-based System Forensics
This course is designed to provide students with the ability to identify and employ forensics techniques for gathering, preserving and analyzing evidence on Unix-based systems, and to report the pertinent evidence to the courts. The course emphasizes both the fundamental computer forensics procedures and the hands-on experience of utilizing forensics tools to uncover pertinent evidence from memory, allocated and unallocated space, and other Unix artifacts including log files, deleted files, browser history, emails, etc. Students will also follow and practice the forensically-sound procedures to ensure evidence admissibility in court. (Prerequisites: NSSA-221 or equivalent course.) Lec/Lab 4 (Spring).
   Text & Code
We encounter digital texts and codes every time we use a smart phone, turn on an app, read an e-book, or interact online. This course examines the innovative combinations of text and code that underpin emerging textual practices such as electronic literatures, digital games, mobile communication, geospatial mapping, interactive and locative media, augmented reality, and interactive museum design. Drawing on key concepts of text and code in related fields, students will analyze shifting expressive textual practices and develop the literacies necessary to read and understand them. Practicing and reflecting on such new media literacies, the course explores their social, cultural, creative, technological, and legal significance. To encourage multiple perspectives on these pivotal concepts of text and code and their import, the course includes guest lectures by scholars and practitioners in these fields. Lecture 3 (Fall).
   Language Technology
We will explore the relationship between language and technology from the invention of writing systems to current natural language and speech technologies. Topics include script decipherment, machine translation, automatic speech recognition and generation, dialog systems, computational natural language understanding and inference, as well as language technologies that support users with language disabilities. We will also trace how science and technology are shaping language, discuss relevant artificial intelligence concepts, and examine the ethical implications of advances in language processing by computers. Students will have the opportunity to experience text analysis with relevant tools. This is an interdisciplinary course and technical background is not required. Lecture 4 (Spring).
   Natural Language Processing I
This course provides theoretical foundation as well as hands-on (lab-style) practice in computational approaches for processing natural language text. The course will have relevance to various disciplines in the humanities, sciences, computational, and technical fields. We will discuss problems that involve different components of the language system (such as meaning in context and linguistic structures). Students will additionally collaborate in teams on modeling and implementing natural language processing and digital text solutions. Students will program in Python and use a variety of relevant tools. Expected: Programming skills, demonstrated via course work or instruction approval. Lecture 3 (Spring).
   Project in FOSS Development
Free and Open Source Software development is an internationally growing methodology for distributing work across multiple developers. The process can be applied to small garage-sized teams (small utility packages, multimedia plugins, simple games) or teams of hundreds (Mozilla, Java, Linux). This course builds on the introductory experience provided in the prerequisite to provide hands-on open-source development experience in a large-scale, project that will be prepared for open-source distribution. The actual projects and domains addressed will vary offering to offering, but will be along the lines of those listed above. (Prerequisites: IGME-582 or equivalent course.) Lec/Lab 3 (Spring).
   Foundations of Mobile Design
This course is an introduction to designing, prototyping, and creating applications and web applications for mobile devices. These devices include a unique set of hardware and communications capabilities, incorporate novel interfaces, are location aware, and provide persistent connectivity. Topics covered include user interaction patterns, connectivity, interface design, software design patterns, and application architectures. Programming projects are required. (Prerequisites: ISTE-240 or IGME-330 or equivalent course.) Lec/Lab 3 (Fall, Spring).

* Students may elect to take both of the constrained elective courses to complete the minor instead of selecting one constrained course and one elective course.