Course |
CMSC 113 Introduction to Computing: Robotics |
|
Professor |
Rebecca Thomas |
|
CRN |
97143 |
|
Schedule |
Tu Th 10:30 - 12:30 pm RKC 107 |
|
Distribution |
Mathematics &
Computing |
Cross-listed: Cognitive Science
This course introduces
students to ideas that are fundamental to robotics and to computing in
general. Teams of students will design
and build shoebox-sized robots, with guidance from
the instructor. These rather minimalist robots will be
mobile and will have multiple sensors.
The student teams will use a simple programming language to program
their robots to carry out simple tasks, and will move to a more robust
programming language and more complex tasks by the end of the semester.
Prerequisite: successful completion of Q exam.
Course |
CMSC 115 Introduction to Computing: Simulating Reality |
|
Professor |
Sven Anderson |
|
CRN |
97217 |
|
Schedule |
Mon Wed 10:30 - 12:20 am RKC 100 |
|
Distribution |
Mathematics &
Computing |
Cross-listed: Cognitive Science
How do rumors and fashions spread in society?
Does a small change in environmental temperature disrupt an ecosystem?
Questions like these are explored using computers to create virtual
worlds. This introduction to modeling and simulation is intended for
students who are interested in creating computer models of objects, processes,
and complex systems using computer software. Students will create and run
several different simulation model types drawn from a variety of disciplines,
including: artificial life, cognitive science, economics, environmental
science, evolution, neuroscience, physics, and political science.
Students will gain a practical understanding of how to combine mathematical
modeling, computer simulation, and data analysis as they use and create
software that enables them to build simulation models that answer a practical
need and/or scientific question. No prior knowledge of computer
programming is required. Prerequisite: strong background in
pre-calculus mathematics or its equivalent and successful completion of Q
exam.
Course |
CMSC 201 Data Structures |
|
Professor |
Rebecca Thomas |
|
CRN |
97218 |
|
Schedule |
Tu Th
2:30 - 3:50 pm RKC 100 LAB: Fr 10:30
- 12:30 pm RKC 100 |
|
Distribution |
Mathematics &
Computing |
Cross-listed: Cognitive Science
This course introduces students to principles of program design and analysis that underlie applications in digital animation, artificial intelligence, and internet communication. Building on skills acquired in Object-Oriented Programming, 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 more advanced programming. Consequently, throughout the course students will be introduced to 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. This course covers the implementation and use of advanced data structures such as stacks, queues, hash tables, binary search trees, sets, and graphs via an object-oriented programming language.
Prerequisite: CMSC 141.
Course |
CMSC 231 Intelligent Robots |
|
Professor |
Rebecca Thomas / Sven Anderson |
|
CRN |
97894 |
|
Schedule |
Tu 4:00 – 5:20 pm RKC 107 |
|
Distribution |
Mathematics &
Computing |
This studio workshop, the first in a planned
series, is intended for highly motivated students who want hands-on experience
with mobile robot hardware and software. During this semester we will learn
to program in Python and control robots using the ARIA robot interface.
Beginning with a Pioneer mobile robot base, we will build an intelligent
system that includes visual object identification, obstacle avoidance, and
sonar-based navigation capabilities. Our eventual goal is to have
robots participate in a scavenger hunt. Students will be assigned to small
teams; several teams will then work cooperatively toward a shared
objective. Each student must demonstrate a high degree
of individual responsibility. Prerequisites: Students should have
facility with computer programming, electronics, or the manipulation of digital
images. Interview is required and must take place prior to registration.
Contact Dr. Thomas at [email protected] to
arrange an interview.
Course |
CMSC 305 Design of Programming Languages |
|
Professor |
Robert McGrail |
|
CRN |
97219 |
|
Schedule |
Mon Wed 3:00 -4:20 pm RKC 100 LAB: Fr
3:00 -5:00 pm RKC 100 |
|
Distribution |
Mathematics &
Computing |
Cross-listed: Cognitive Science
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
Course |
CMSC 321 Databases: Theory & Practice |
|
Professor |
Robert McGrail |
|
CRN |
97220 |
|
Schedule |
Mon Fr 9:00 - 10:20 am RKC 100 |
|
Distribution |
Mathematics &
Computing |
An introduction to the design, implementation, and
uses of databases. Topics include database design, database models, integrity,
concurrency, security, and database query languages.
Prerequisite: a 100-level Computer
Science course.
Course |
CMSC 326 Operating Systems |
|
Professor |
Sven Anderson |
|
CRN |
97221 |
|
Schedule |
Mon Wed 1:30 -2:50 pm RKC 100 LAB: Fr
1:00 -3:00 pm RKC 107 |
|
Distribution |
Mathematics & Computing |
Cross-listed: Cognitive Science
Covers traditional topics of operating systems,
including interprocess communication, semaphores, monitors, scheduling
algorithms, deadlocks, virtual memory, and file system design. In addition, discussion
may include issues in distributed systems such as the client-server model,
remote procedure call, distributed synchronization, transactions, threads, and
file servers. Prerequisite: CMSC
201