Note: These are the course descriptions as they appear in the 2004-2006 UMBC Undergraduate Catalog. The course descriptions for other years are available here.
Last update: 09/16/2005
CMSC 100 Introduction to Computers and Programming. [3]
A one-semester introduction to computers and their uses. This course is
intended for nonscience majors. Topics include computer programs, computer
systems, personal computers and software packages, simulation, databases,
artificial intelligence, computers in education and industry, and the
effects of computers on society.
Note: This course is not open to students who have passed CMSC
103. This course should not be taken by students planning to take CMSC 103
or 201.
CMSC 103 Scientific Computing. [4]
An introduction to computers and programming. This course is intended for
students who will major in scientific disciplines other than computer
science. The course emphasizes scientific applications and uses the
FORTRAN programming language. The elements of FORTRAN covered in this
course include assignment statements, input/output statements, control
structures, repetition structures, subroutines, functions, arrays and
files. This course also covers general programming concepts, including
computer components, structured programming, algorithm development,
problem-solving, testing, debugging and documentation.
Prerequisite: MATH 151 or 140.
CMSC 104 Problem-Solving and Computer Programming. [3]
This course is designed to prepare students for CMSC 201 by providing an
introduction to computer programming that does not require prior
programming experience. Students will be taught the basic use of a
programming environment and the basic elements of the C programming
language (including loops, control statements and arrays). This course
also introduces general computer science concepts such as operating
systems, computer organization, computer architecture, data representation
and memory usage.
Note: This course does not fulfill any of the computer science
major requirements. Students who have taken and received transfer credit
for, or who are taking concurrently any computer programming course in a
high-level programming language will not receive credit for CMSC 104. The
list of such computer programming courses includes, but is not limited to:
CMSC 103, 106, 109, 201, 202 and sections of 291 that cover programming
topics.
CMSC 106 Programming in C. [2]
An introduction to programming in C for students experienced in a
high-level programming language. Topics include elementary data
structures, control structures and input/ output functions in C; the use of
the C preprocessor; userdefined types such as arrays, records and
structures; system calls; and the use of a symbolic debugger. Students
will be expected to complete significant programming projects using the C
programming language.
Note: This course is not open to students who have previously
taken a course in C programming. Credit will not be given for both CMSC
106 and 201.
Prerequisite: Mastery of a high-level programming language other
than C.
CMSC 109 Programming Topics. [2]
An introduction to programming in a specific programming language, which
may vary from semester to semester.
Note: Not open to students who have had programming experience
using the specified language. This course may be repeated when the
language is different.
Prerequisite: CMSC 103 or 201.
CMSC 121 Introduction to UNIX. [1]
This is an introductory course on UNIX intended primarily for incoming students new to UNIX and to computing at UMBC. Topics include an introduction to the UMBC computing environment, basics of the UNIX environment, e-mail using Pine and the emacs/Xemacs editor. Students are required to obtain a UMBC GL account prior to the first day of class.
CMSC 201 Computer Science I for Majors. [4]
An introduction to computer science through problemsolving and computer
programming. Programming techniques covered by this course include
modularity, abstraction, top-down design, specifications, documentation,
debugging and testing. Selected topics in computer science are introduced
through programming projects in the C language running under a UNIX
operating system. The core material for this course includes functions,
recursion, arrays, strings, pointers, records and files. It is assumed
that students already know the basics of a modern high-level language such
as C or Pascal (expressions, basic data types, arrays and control
structures).
Note: Students with no prior programming experience should take
CMSC 104. This is the first course for students interested in pursuing
further study in computer science. Credit will not be given for both CMSC
106 and 201.
Prerequisite: MATH 150.
CMSC 202 Computer Science II for Majors. [4]
This course continues the development of programming and problem-solving
skills, focusing on recursion, pointers, data abstraction and procedural
abstraction. Topics include introduction to asymptotic notation; data
structures, including lists, stacks, queues, hash tables and elementary
binary search trees; sorting and searching; and an introduction to the C++
language and object-oriented programming. Programming projects for this
course will use the C and C++ programming languages. This is the second
course for students interested in pursuing further study in computer
science.
Prerequisite: CMSC 201.
CMSC 203 Discrete Structures. [3]
This course introduces the fundamental tools, topics and concepts of
discrete mathematics needed to study computer science. This course
emphasizes counting methods, proof techniques and problemsolving
strategies. Topics include Boolean algebra; set theory; symbolic logic;
predicate calculus; number theory; the methods of direct, indirect and
inductive proofs; objective functions; equivalence relations; graphs; set
partitions; combinatorics; modular arithmetic; summations; and recurrences.
Prerequisite: MATH 151 or 140. Corequisite: CMSC 103 or 201.
CMSC 232 Advanced Techniques in Java. [2]
Advanced programming techniques in Java will be presented. The use of
networking, threaded programs, and techniques for object reflection and
persistence will be discussed in class and will be the motivation for
homework assignments. Additional topics will include distributed
computation facilities in Java, including remote method invocation (RM),
and distributed service architectures such as Jini and space-based
computations in JavaSpaces also will be examined. As time permits, Java
Security issues will be presented.
Prerequisite: CMSC 202 or equivalent. Basic Java programming
experience recommended.
CMSC 291 Special Topics in Computer Science. [1-4]
This course may be repeated, provided the topic varies.
Prerequisite: Varies by topic. Check current schedule of
classes.
CMSC 299 Independent Study in Computer Science. [1-4]
A student may enroll in this course to study computer science topics that
are not available in a regular course. The student and the faculty member
supervising the independent study must determine the objectives of the
project, the number of credits to be earned and the evaluation criteria for
the project. Students are limited to two independent study courses in
computer science.
Note: This course is offered on a P/F basis only and does not
apply toward the requirements for a computer science major.
Prerequisite: Permission of the instructor.
CMSC 304 Ethical Issues in Information Systems (AH). [3]
A survey course that reviews the ethical impact of information systems and
related technology throughout the world. The course examines the policy
issues that relate to the use of information systems, such as persona,
privacy, rights of access, security, transborder data flow and
confidentiality.
Prerequisite: IS 202 and any 300-level IS course or CMSC 202.
Note: IS 304 and CMSC 304 are cross-listed courses. Credit will
not be given for both IS/CMSC 304 and PHIL 252.
CMSC 313 Computer Organization and Assembly Language Programming. [3]
This course covers the basics of computer organization with emphasis on the
lower-level abstraction of a computer system, including digital logic,
instruction set and assembly language programming. Topics include data
representation; logic gates; simplification of logical expressions; design
and analysis of simple combinational circuit, such as decoders and
multiplexers, flip-flops and registers; design and analysis of simple
synchronous sequential circuit, random-access and read-only memories;
instruction set architecture; and programming in assembly language.
Prerequisites: CMSC 202 and 203.
CMSC 331 Principles of Programming Languages. [3]
This course examines the semantics of programming languages. Topics
include formal specifications of syntax, declarations, binding, allocation,
data structures, data types, control structures, control and data flow, and
the implementation and execution of programs and functional programming
versus imperative programming. Other possible topics include
non-procedural and logic programming, objectoriented programming and
program verification. Programming projects will provide experience in
several languages.
Prerequisite: CMSC 202.
CMSC 341 Data Structures. [3]
An examination of a range of advanced data structures, with an emphasis on
an objectoriented approach. Topics include asymptotic analysis; various
binary search trees, including red-black and splay trees; skip lists as
alternatives to binary search trees; data structures for multidimensional
data such as k-d trees; heaps and priority queues, including binary heaps,
binomial heaps, leftist heaps (and/or other mergeable heaps); B-trees for
external storage; other commonly used data structures, such as hash tables
and disjoint sets. Programming projects in this course will focus on
implementation issues for data structures and on empirical analysis of
their asymptotic performance.
Prerequisite: CMSC 202 and 203.
CMSC 345 Software Design and Development. [3]
This course introduces the basic concepts of software engineering,
including software life cycle, requirements analysis and software design
methods. Professional ethics in computer science and the social impact of
computing are discussed as an integral part of the software development
process. Additional topics may include tools for software development,
software testing, software metrics and software maintenance.
Prerequisite: CMSC 341.
CMSC 352 Women, Gender and Information Technology. [3]
This course examines important issues concerning women, gender and
information technology (IT). Students will consider such topics as the
history of womens involvement with IT; how women and girls fare in the
educational setting as well as online; and the way that gender intersects
with IT in relation to other dimensions of womens experience, such as race,
class and age. Students will connect issues relevant to women and IT to
their own career choices, interact with women in the IT field, and utilize
technology for research and presentation.
Prerequisite: A prior course in computer science, information
systems or women's studies.
Note: Also listed as IS 352 and WMST 352.
CMSC 391 Special Topics in Computer Science. [1-4]
This course may be repeated, provided the topic varies.
Prerequisite: Varies by topic. Check current schedule of
classes.
CMSC 404 The History of Computers and Computing. [3]
This course is a historical account of the pioneers of computing and the
rise of the computer and related industries. Although technical and
institutional developers are the focus of the class, such developments are
explained in a broad historical context --- one including such factors as the
state of scientific knowledge, economic conditions, defense requirements,
the nature of business and financial systems, and governmental policies.
Note: Also listed as IS 404 and HIST 404. This course does not
fulfill a computer science elective requirement.
Prerequisite: Junior/senior status or permission of instructor.
CMSC 411 Computer Architecture. [3]
This course covers the design of complex computer systems making heavy use
of the components and techniques discussed in CMSC 311 and CMPE 312. All
parts of a computer system --- CPU, memory and input/output --- are discussed
in detail. Topics include information representation, floating-point
arithmetic, instructions set design issues (RISC vs. CISC),
microprogrammed control, hardwired control, pipelining, memory caches, bus
control and timing, input/output mechanisms and issues in the construction
of parallel processors.
Prerequisite: CMSC 211 and 311, or CMPE 310 and 312, or CMSC
313.
CMSC 412 Microprocessor Systems. [3]
A study of microprocessor hardware and software. Topics will include the
architecture, addressing schemes and data manipulation mechanisms of
popular microprocessors.
Note: Credit will not be given for both CMSC 412 and CMPE 310.
Prerequisite: CMSC 211 and 311 or CMPE 312.
CMSC 421 Principles of Operating Systems. [3]
An introduction to the fundamentals of operating systems. Topics include
interprocess communication, process scheduling, deadlock, memory
management, virtual memory, file systems and distributed systems. Formal
principles are illustrated with examples and case studies of one or more
contemporary operating systems.
Prerequisite: CMSC 341 and [(CMSC 211 and 311) or (CMPE 310 and
312) or CMSC 313.]
CMSC 422 Operating System Design. [3]
The study of the internal design of a widely used operating system such as
UNIX with an emphasis on system programming for the operating system.
Topics include kernel design, the I/O system, scheduling algorithms,
process control, interprocess communication, system calls and memory
management.
Prerequisite: CMSC 421.
CMSC 425 Performance Analysis of Computer Systems. [3]
Review of probability theory, birth-death processes, Markov chains,
mean-value analysis, approximation techniques, simulation studies of
computer systems.
Prerequisite: STAT 355 or permission of the instructor.
CMSC 431 Compiler Design Principles. [3]
A detailed study of the design and implementation of a compiler for a
high-level programming language. Topics include lexical analysis, parsing
techniques (including LL and LR parsers), semantic routines, run-time
storage allocation, code generation and optimization.
Prerequisite: CMSC 211 or 313, 331 and CMSC 341.
CMSC 432 Object-Oriented Programming Languages and Systems. [3]
This course covers the concepts of object-oriented programming (OOP)
languages and systems, including an introduction to fundamental
abstraction, modularity and encapsulation mechanisms in OOP from a software
engineering and representational perspective. Basic OOP concepts covered
in this course include polymorphism and operator overloading, message
passing via generic functions, late- vs. early-binding times, and
inheritance mechanisms and their relationship to the type systems of
programming languages. Other topics include a survey of OOP languages and
systems, OOP languages vs. imperative programming languages and
contrasting pure OOP environments vs. mixed-paradigm languages.
Prerequisite: CMSC 331 and 341.
CMSC 433 Scripting Languages. [3]
This course is a study of a class of programming languages and tools known
as scripting languages. Topics include: writing scripts to control and
connect other programs, strengths and weaknesses of interpreted languages,
extending scripting languages to include new functionality, embedding
functions of a scripting language in other tools, syntax and usage of
regular expressions, and the role of open-source software. Programming
projects in multiple languages will be required. Languages studied may
include Unix shell and related tools (sed, awk), Perl, Tcl/Tk and Python.
Prerequisite: CMSC 331.
CMSC 435 Computer Graphics. [3]
An introduction to the fundamentals of interactive computer graphics.
Topics include graphics hardware, line drawing, area filling, clipping,
two-dimensional and three- dimensional geometrical transforms,
three-dimensional perspective viewing, hidden surface removal,
illumination, color and shading models.
Prerequisite: CMSC 341 and MATH 221.
CMSC 437 Graphical User Interface Programming. [3]
This is a practical, hands-on course in how to program interactive 2D
graphical user interfaces using the X11/ Motif package and OpenGL.
Graphical user interfaces are taken here to mean not just standard widget
sets, but also various interactive, pointerbased techniques that comprise
the modern desktop metaphor. This course also will introduce some of the
concepts and software techniques used to implement such applications. In
addition, it briefly will review some of the larger issues, history and
future directions of programming graphical interfaces. While the primary
emphasis of the course is on 2D interfaces, there will be a short
introduction to some of the 3D capabilities of OpenGL, as well as a
discussion of 3D interaction and virtual reality.
Prerequisite: CMSC 341 and MATH 221.
CMSC 441 Design and Analysis of Algorithms. [3]
This course studies fundamental algorithms, strategies for designing
algorithms and mathematical tools for analyzing algorithms. Fundamental
algorithms studied in this course include graph algorithms, algorithms for
sorting and searching, hashing, integer arithmetic and selected
combinatorial tasks. Mathematical tools include asymptotic notations and
methods for solving recurrences. Algorithm design strategies include the
greedy method, divide-and-conquer, dynamic programming and randomization.
Prerequisite: MATH 142 or 152, CMSC 341 and STAT 355.
CMSC 442 Information and Coding Theory. [3]
An introduction to information and coding theory. Topics include
error-control coding problems, entropy, channels, Shannon's theorems,
errorcorrecting codes, applications of coding theory, algebraic coding
theory, block codes, linear codes, cyclic codes, decoding algorithms, BCH
codes, convolutional codes, linear sequential circuits and sequential
decoding.
Prerequisite: CMSC 203 and MATH 221.
CMSC 443 Cryptology. [3]
An introduction to cryptology, the science of making and breaking codes and
ciphers. Topics include: conventional and public-key cryptosystems,
including DES, RSA, shift register systems and selected classical systems;
examples of cryptanalytic techniques; digital signatures; pseudo-random
number generation; cryptographic protocols and their applications; and an
introduction to the theories of cryptographic strength based on information
theory and complexity theory.
Prerequisite: CMSC 341, MATH 221 and STAT 355.
CMSC 445 Software Engineering. [3]
A continuation of the study of software engineering with emphasis on topics
not fully covered in CMSC 345. Topics may include software maintenance;
metrics; quality assurance; configuration management; deployment; project
planning and management; and modern software development processes,
techniques and tools. Students will be given multiple individual and
cooperative hands-on assignments.
Prerequisite: CMSC 345.
CMSC 446 Introduction to Design Patterns. [3]
This course is an introduction to software design patterns. Each pattern
represents a best practice solution to a software problem in some context.
The course will cover the rationale and benefits of object-oriented
software design patterns. Several example problems will be studied to
investigate the development of good design patterns. Specific patterns,
such as Observer, State, Adapter, Strategy, Decorator and Abstract Factory
will be discussed. Programming projects in the Java language will provide
experience in the use of these patterns. In addition, distributed object
frameworks, such as RMI and Jini, will be studied for their effective use
of design patterns.
Prerequisites: CMSC 331 and 341.
CMSC 451 Automata Theory and Formal Languages. [3]
This course introduces the basic concepts in the theory of formal
languages. Topics include regular grammars and finite automata,
contextfree grammars and push-down automata, Turing machines and the
halting problem, and an introductory treatment of computable and
noncomputable functions.
Prerequisite: CMSC 202 and 203.
CMSC 452 Logic for Computer Science. [3]
This course covers the fundamental topics in sentential and first-order
logic, including models, logical consequence, deduction and the
completeness theorem. Other topics include: undecidability theorems,
including GoedelÕs incompleteness theorem and TarskiÕs theorem; HerbrandÕs
theorem; and applications including resolution, logic programming,
automatic deduction, program specification and program verification.
Prerequisite: CMSC 203. Highly recommended: CMSC 451.
Note: Credit will not be given for both CMSC 452 and MATH 409.
CMSC 453 Applied Combinatorics and Graph Theory. [3]
An introduction to the application of combinatorial methods to computer
science. Topics include enumeration methods, recurrence relations,
generating functions, graph theory and graph algorithms, connectivity,
Euler tours, Hamiltonian cycles, flow graphs and transport networks,
matching theory, planarity, KuratowskiÕs theorem and NP-complete
combinatorial problems.
Prerequisite: CMSC 341, MATH 221, and either MATH 142 or 152.
Note: Credit will not be given for both CMSC 453 and MATH 475.
CMSC 455 Numerical Computations. [3]
Topics include numerical linear algebra, interpolation, solving nonlinear
systems and the numerical solution of differential equations. This course
also provides some emphasis on numerical algorithms and computation in a
parallel environment.
Prerequisite: CMSC 341, MATH 142 or 152, and MATH 221.
Note: Credit will not be given for both CMSC 455 and MATH 441.
CMSC 456 Symbolic Computation. [3]
The theme of this course is abstract algebra from an algorithmic
perspective. Algorithms for computing in groups, rings, fields, ideals,
quotient rings and other algebraic objects are studied. For example, the
Coxeter coset enumeration and the Groebner basis algorithms are studied.
Algebraic varieties play a key role in this course. The course also covers
many applications of symbolic computation, such as applications to
algebraic coding theory, robotics and automatic theorem proving. There are
various projects using a symbolic computation package such as Maple or
Mathematica.
Prerequisite: CMSC 341, MATH 142 or 152, and MATH 221.
CMSC 461 Database Management Systems. [3]
This course covers database management and the different data models
currently used to structure the logical view of databases. The course also
covers database design and implementation techniques, including file
organization, query processing, concurrency control, recovery, integrity
and security.
Prerequisite: CMSC 341.
CMSC 465 Introduction to Electronic Commerce. [3]
Electronic commerce is the use of electronic means to pursue business
objectives. It relies on a wide range of modern technologies, such as the
World Wide Web, telecommunications, database technologies, agent
technologies, business intelligence, multimedia and user interfaces. This
course puts special emphasis on the studentÕs ability to do research in
existing and emerging technology, and to summarize and present findings
clearly. An important part of this course is the development of technical
writing skills. The second part of the course concentrates on the issues
that are not solely technical, such as trust management, privacy and
personalization, and the role of electronic market in revolutionizing
traditional industries.
Prerequisites: CMSC 461 and 481. Recommended: CMSC 421.
CMSC 466 Electronic Commerce Technology. [3]
This course is designed to prepare students to be e-commerce developers.
It introduces students to the changing and competitive landscape of
e-commerce technology, products and solutions. It begins with an
introduction to WWW technology and an overview of Web applications and
services. It further discusses networking technologies with the view
toward mobile and wireless commerce and object orientation and Web
programming. An overview of Java language and relational databases is
given. Database- Web connectivity is discussed. The course proceeds with
the study of interprocess communications in a distributed environment
concentrating on Java RMI and COBRA technologies. Development of
interactive Web pages with JavaScript and dynamic HTML, one of the basic
skills in the area of e-commerce development, is covered.
Prerequisites: CMSC 461 and 481. Recommended: CMSC 421 and 465.
CMSC 471 Artificial Intelligence. [3]
This course is designed as a broad introduction to artificial intelligence.
Topics include an overview of AI, its subfields and applications; knowledge
representation, techniques and issues; natural language understanding;
search; logic and deduction; basic robot plan generation; expert systems;
handling uncertainty and learning.
Prerequisite: CMSC 341.
CMSC 472 Knowledge-Based Systems. [3]
This course is designed for students interested in expert systems and other
computer programs whose performance depends upon specialized domain
knowledge, such as that possessed by human experts. Topics include
production system fundamentals; knowledge representation for expert
systems; problem-solving methods, including forward and backward chaining;
belief and uncertainty; and an expert system case study.
Prerequisite: CMSC 471.
CMSC 473 Introduction to Natural Language Processing. [3]
Natural language processing (NLP) was the first nonnumerical application of
computing more than 50 years ago. The ultimate goal of NLP is to enable
computers to communicate with people the same way as people communicate
among themselves. To do so, the computers must be able to understand and
generate text. The course will introduce the students to the problems,
methods and applications of NLP.
Prerequisite: CMSC 313, including knowledge of LISP.
CMSC 475 Introduction to Neural Networks. [3]
This course is an in-depth introduction to neural networks. Topics
include: characteristics of neural network computing; major neural network
models and their related algorithms; supervised, unsupervised and
reinforcement learning; and neural network application in function
approximation, pattern analysis, optimization and associative memories.
Prerequisite: CMSC 341 .
CMSC 476 Information Retrieval. [3]
This course is an introduction to the theory and implementation of software
systems designed to search through large collections of text. This course
will have two main thrusts. The first is to cover the fundamentals of IR:
retrieval models, search algorithms and IR evaluation. The second is to
give a taste of the implementation issues through the construction and use
of a text search engine.
Prerequisites: CMSC 341 or permission of instructor.
Recommended: MATH 221, STAT 355 and CMSC 441.
CMSC 477 Agent Architectures and Multi-Agent Systems. [3]
Fundamental techniques for developing intelligent agents and multi-agent
systems, including cognitive, logic-based, reactive, and
belief-desire-intention architectures; inter-agent communication languages
and protocols; distributed problem-solving, planning, and constraint
satisfaction methods; distributed models of rational behavior; and learning
and adaptation in multi-agent systems.
Prerequisites: CMSC 471 and permission of instructor.
CMSC 481 Computer Networks. [3]
This course introduces the fundamentals of data communication and computer
networking, including circuit and packet switching, network architectures
and protocols; local/metropolitan/wide-area networks, OSI protocols, TCP/IP
suite, X.25; ISDN, network management and network programming.
Prerequisite: CMSC 311 or CMPE 312 or CMSC 313 and STAT 355.
CMSC 482 Computer Systems Security. [3]
This course will cover an introduction to computer security concepts,
including security and integrity policies, access and flow controls,
security models, Trojan horses and covert channels, formal security
specifications and verification, security architectures and DoD
classification of secure systems.
Prerequisite: CMSC 421.
CMSC 483 Parallel and Distributed Processing. [3]
This course provides a project- and applicationsoriented approach to
parallel and distributed programming. Students will learn a specific
parallel language and programming environment and will complete a large
programming project. Topics include a selected parallel programming
language, a survey of parallel and distributed architectures, and
associated programming styles, an introduction to parallel and distributed
algorithms, and a study of tradeoffs between computation and communication
in parallel processing.
Prerequisite: CMSC 421. Recommended: CMSC 455.
CMSC 486 Mobile Telephony Communications. [3]
This course provides a technical introduction to mobile radio telephony.
Topics include: the evolution of mobile radio communications, transforming
signal representation between time and frequency domains, allocation and
assignment of communication channels for cellular phones, signal modulation
techniques and wireless networks. An in-depth study of the GSM and IS-95
CDMA cellular phone systems also will be presented.
Prerequisites: CMSC 313 or CMPE 212 and MATH 152.
CMSC 491 Special Topics in Computer Science. [1-4]
This course may be repeated, provided the topic varies.
Prerequisite: Varies by topic. Check current schedule of
classes.
CMSC 492 Honors Special Topics in Computer Science. [3]
This course may be repeated, provided the topic varies. Permission is
required to enroll in this course.
Prerequisite: Varies by topic. Check current schedule of
classes.
CMSC 495 Honors Thesis. [3]
Under the supervision of a faculty advisor, students in the computer
science honors program will write and submit a scholarly paper reporting on
their senior project.
Prerequisite: Approval of the computer science departmental
honors program director.
Note: CMSC 495 does not count as a technical elective in the
computer science major requirements.
CMSC 496 Master of Science Preparation, Software. [4]
An accelerated course in software concepts specifically designed for
technically sophisticated students who wish to trade exceptionally hard
work for a shortened learning schedule. Compresses material from CMSC 331,
341 and 441 into a single semester.
Note: Not open to undergraduate computer science or computer
engineering majors or minors. Credits for this course do not apply to
requirements for a computer science or computer engineering major or minor.
Prerequisites: Completion of CMSC 202, 203, MATH 152, 221, the
UMBC CMSC B.S. science requirements or equivalent, and permission of the
instructor.
CMSC 497 Master of Science Preparation, Systems. [4]
An accelerated course in software concepts specifically designed for
technically sophisticated students who wish to trade exceptionally hard
work for a shortened learning schedule. Compresses material from CMSC 211,
311, 411 and 421 into a single semester.
Note: Not open to undergraduate computer science or computer
engineering majors or minors. Credits for this course do not apply to
requirements for a computer science or computer engineering major or minor.
Prerequisites: completion of CMSC 202, 203, MATH 152, 221, the
UMBC CMSC B.S. science requirements or equivalent, and permission of the
instructor.
CMSC 498 Independent Study in Computer Science for CMSC Interns and Co-op
Students. [3]
This course is offered on a P/F basis only. This course may not be
repeated. Consult the department Web page on CMSC 498 for more
information.
Note: This course does not count as a technical elective for
computer science and computer engineering majors.
CMSC 499 Independent Study in Computer Science. [1-4]
A student may enroll in this course to study computer science topics that
are not available in a regular course. The student and the faculty member
supervising the independent study must determine the objectives of the
project, the number of credits to be earned and the evaluation criteria for
the project. Students are limited to two independent study courses in
computer science.
Note: This course is offered on a P/F basis only and does not
apply toward the requirements for a computer science major.
Prerequisite: Junior standing and permission of the instructor.
[an error occurred while processing this directive]