91641

CMSC 116

 Introduction  to  Computing:

Web Informatics

Robert McGrail

                                 Lab:

 T         10:10 am-11:30 am

Th       10:10 am-12:10 pm

RKC 100

MC

MATC

This course is an introduction to content deployment for the World Wide Web.  Participants in this course will construct social networking software, similar in scope to blogs or FaceBook, using a dynamic web programming system.  Strong emphasis will be placed on the development of flexible applications that efficiently store and process data and metadata.  In addition to basic computer programming, various XML technologies will be introduced and employed.  Prerequisite: Passing score on Part I of the Mathematics Diagnostic.  Class size: 18

 

91642

CMSC 120

 Technologies of Reading: Human and machine approaches to literature

Sven Anderson

Collin Jennings

 T  Th 3:10 pm-4:30 pm

RKC 100

MC

MATC

Cross-listed: Experimental Humanities; Literature  Recent debates in literary studies regarding "close" and "distant" reading methods have emerged alongside rapid innovation in the field of natural language processing (NLP). These concurrent developments have sparked exciting collaborations between literary scholars and computer scientists (as evidenced by this co-taught course). Yet this burgeoning affinity can easily obscure the longer history of scholarly activity combining humanist and computational approaches to literature. In this course, we will chart the contours of this history -- stretching back to the early twentieth century -- and learn the fundamentals of NLP in order to consider new questions regarding changing literary patterns over time. We will read the works of foundational linguists and close-reading theorists (e.g., Victoria, Lady Welby; C. K. Ogden; I. A. Richards; William Empson; and Cleanth Brooks) as well as scholars of emergent critical reading practices (eg., N. Katherine Hayles, Franco Moretti, Sharon Marcus, and Stephen Best).  We will explore these ideas by learning fundamentals of programming and then using them to apply NLP techniques such as parsing, sentence generation, language modeling, and creation of high-dimensional semantic spaces to problems in reading. Pre-requisites: Students must have passed part 1 of the Mathematics diagnostic.  Class size: 18

****************************************************************************************************************************************************************************

91643

CMSC 143

 Object-Oriented ProgRAMMING

wITH Robots

Keith O'Hara

Khondaker Salehin

M  W    10:10 am-11:30 am

HEG 204

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: 36

LAB OPTIONS:

 

91644

CMSC 143 LBA

 Object-Oriented ProgRAMMING

wITH Robots  Lab

TBA

    F      10:30 am-12:30 pm

RKC 107

MC

MATC

Class size: 18

 

91645

CMSC 143 LBB

 Object-Oriented ProgRAMMING

wITH Robots  Lab

TBA

    F      1:30 pm-3:30 pm

RKC 107

MC

MATC

Class size: 18

******************************************************************************************************************************************************************************

 

91646

CMSC 157

 Object-Oriented Programming Workshop

Keith O'Hara

M  W    1:30 pm-2:30 pm

RKC 100

MC

MATC

(2 Credits) Programming design principles like composition, modularity, encapsulation, and interfaces will be emphasized. The course will cover intermediate algorithmic problem solving in some computing context (e.g., data processing, simulation, visualization). This course serves as a bridge course to Data Structures (CMSC 201) for students with substantial prior programming experience:  students with 5 AP CS credits and permission of the instructor, those that have excelled in a CMSC 11X: Intro to Computing course, or those coming from CMSC 143 that need more programming practice.   Prerequisite: CMSC 11X or CMSC 143.  Class size: 12

 

91647

CMSC 201

 Data Structures

Sven Anderson

                                   Lab:

M  W    10:10 am-11:30 am

 F         10:30 am-12:30 pm

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: 20

 

91648

CMSC 225

 Computer Architecture

Khondaker Salehin

                                  Lab:

M  W    3:10 pm-4:30 pm

   Th    3:00 pm-5:00 pm

RKC 107

MC

MATC

This course is an introduction to the structure and operation of a modern computer architecture. Topics will include instruction sets, pipelining, instruction-level parallelism, caches, memory hierarchies, storage systems and multiprocessors. Assembly language programming will be used to demonstrate the concepts.  Prerequisites: Computer Science 143, Object-Oriented Programming.  Class size: 16

 

91649

CMSC 305

 Design of Programming Languages

Robert McGrail

                                  Lab:

 T  Th 1:30 pm-2:50 pm

       F   1:30 pm-3:30 pm

RKC 100

MC

MATC

Cross-listed: Mind, Brain & Behavior      This course will cover a selection of issues important to the design of programming languages including, but not limited to, type systems, procedure activation, parameter passing, data encapsulation, dynamic memory allocation, and concurrency.  In addition, the functional, logic, and object-oriented programming paradigms will be presented as well as a brief history of high-level programming languages. Students will be expected to complete a major programming project in Standard ML of New Jersey as well as other programming assignments in Java or Prolog. Prerequisite:  CMSC 201.  Class size: 20

 

91650

CMSC 374

 Mobile AppLICATION Development

Sven Anderson

 T  Th 10:10 am-11:30 am

RKC 107

MC

 

This course provides a hands-on introduction to the design of applications on hand-held mobile devices such as mobile phones and tablets that are characterized by limited computational resources. Particular emphasis will be placed on developing application architectures and interface designs that incorporate the specialized input-output capabilities of these devices such as wireless communication, touch input, spoken interfaces, location sensors, and video capture. Students will be assigned to small teams that work together to develop a complete application for this platform. Prerequisite: CMSC 201, Data Structures.  Class size: 16