17532

IDEA 135

 Games at Work: PARTICIPATION, PROCEDURE, AND PLAY

Ben Coonley

Keith O'Hara

M  W    1:30pm-4:30pm

RKC 100

AVERY 333

MC

PA

MATC

PART

Cross-listed: Computer Science; Film and Electronic Arts;  Experimental Humanities  8 credits This course is an intensive, interdisciplinary investigation of games and their pervasive role in contemporary life. What constitutes a game? Why do people play them? What makes digital games different from non-digital games? What roles do games play in contemporary culture? How have game-like incentive systems and other forms of "gamification" infused non-game contexts, such as social media, fine art, democracy, education, war, and the modern workplace? Do games and "gamer" culture effectively preclude, privilege, include, or exclude certain groups, identities, and worldviews? Course readings, screenings, and mandatory game play will augment and inform our investigation of these questions and beyond. The primary coursework will consist of game creation using tools and methodologies from computer science and electronic art. Students will create original games (non-digital and digital video games), both independently and in groups. This work will be augmented by short assignments designed to build fluency in visual art creation and interactive game design through short exercises in coding in Javascript, visual design applications, and Unity, a game design application. Assignments will push students to develop experimental and critical approaches to game creation.  This course is restricted to students in the lower college. Students with little experience playing games and/or a healthy skepticism about the cultural and artistic value of games are encouraged to apply. No prerequisites. Application procedure: Email [email protected] and [email protected] one paragraph (no more than 100 words) explaining your interest in taking this course. Class size: 16

 

17134

CMSC 143

 Object-Oriented ProgRAMMING WITH RObots

Khondaker Salehin

        LAB:

M  W    10:10am-11:30am

    F      10:30am-12:30pm

RKC 107

MC

MATC

Cross-listed: Experimental Humanities; Mind, Brain, Behavior This course introduces studentsto object-oriented design and programming through the design and implementation of mobile robot programs. The programs will enable the robot to move around the world, reacting to sensors such as obstacle detectors and a color camera.  Students will learn how to move from an informal problem statement, through increasingly precise problem specifications, to design and implementation of a solution.  Good programming habits will be emphasized. Prerequisite: any Introduction to Computing course, or permission of the instructor.  Class size: 18

 

17135

CMSC 145

 Discrete Math

Robert McGrail

 T  Th 10:10am-11:30am

RKC 100

MC

MATC

Discrete mathematics includes those areas of mathematics that are essential to computer science, information theory, combinatorics, and genetics.  This course emphasizes creative problem solving, linking language to logic, and learning to read and write proofs.  The topics covered include propositional logic, predicate logic, inductive proof, sets, relations, functions, introductory combinatorics and discrete probability.  Applications drawn from computation will motivate most topics.  Prerequisite: Mathematics 141 or programming experience.  Class size: 16

 

17136

CMSC 201

 Data Structures

Keith O'Hara

         LAB:

M  W    10:10am-11:30am

F          10:30am-12:30pm

RKC 100

MC

MATC

Cross-listed: Mind, Brain, Behavior This course introduces students to essential principles of program design and analysis that underlie applications of computation to internet  communication, digital media, and artificial intelligence.  Building on basic programming skills, we will focus on the construction of more sophisticated and reliable computer programs that employ the most important data structures.  Data structures, common ways in which data is organized and manipulated, are an important aspect of modern programs.  Consequently, throughout the course students will learn to create and use the most useful data structures, including files, lists, stacks, trees, and graphs.  Students will write several programs, ranging from short lab assignments to larger systems of their own design.  Prerequisite: CMSC 141 or 143, or permission of the instructor.  Class size: 18

 

17137

CMSC 301

 Algorithms

Robert McGrail

 T  Th 3:10pm-4:30pm

RKC 101

MC

MATC

Cross-listed: Mind, Brain, Behavior The course discusses design and analysis of correct and efficient computer algorithms. Topics include sorting, greedy algorithms, divide-and-conquer algorithms, dynamic programming algorithms, and graph algorithms. Advanced topics in algorithms may be selected from specialized areas of the mathematical and empirical sciences. Prerequisites: CMSC 201: Data Structures; MATH 141: Calculus I; and CMSC 145: Discrete Mathematics  (or MATH 261: Proofs and Fundamentals).  Class size: 18

 

17139

CMSC 312

 Theory of Computation

Rebecca Thomas

M  W    8:30am-9:50am

RKC 101

MC

MATC

The course will introduce several computational models that have been developed to formalize the notion of an algorithm. It will also discuss in detail several of the primary topics in the theory of computation including the theory of recursive functions, Turing machines, and several undecidable problems such as the Halting problem. Prerequisites: CMSC 145: Discrete Mathematics  or MATH 261: Proofs and Fundamentals.  Class size: 18

 

17140

CMSC 335

 Computer Networks

Khondaker Salehin

          LAB:

M  W    1:30pm-2:50pm

  T        10:10am- 12:10pm

RKC 107

MC

MATC

This course takes a bottom-up approach to computer networking, covering in detail the physical, data link, MAC, network, transport, and application layers. TCP/IP and OSI reference models are introduced with examples taken from the Internet, ATM networks, and wireless networks. Prerequisite: CMSC 143: Object-Oriented Programming.  Class size: 16