| Courses
Descriptions for Computer Science
|
|
Computer Science courses use the CSI and CSS
prefixes and are taught through the Department of Mathematical and Computer
Sciences. CSI 1300-4 Computer Science 1 (4 + 0) Prerequisite: permission of department This is the first course in the computer science core sequence. Students
will learn a modern programming language and the basic skills needed to
analyze problems and construct programs for their solutions. The emphasis
of the course is on the techniques of algorithm development, correctness
and programming style. Students are also introduced to the fundamentals
of software engineering and the software development life cycle. CSI 2300-4 Computer Science 2 (4 + 0) Prerequisite: CSI 1300 with a grade of "C" or better, or permission
of instructor This course, a continuation of CSI 1300, further emphasizes the concepts of the software development cycle and introduces the concept of an abstract data type (ADT). The topics covered include linked-lists, trees, stacks, queues, classes, recursion, and a variety of data representation methods. Further topics in software engineering and programming style as well as algorithms for sorting and searching are included.
Prerequisite: CSI 1300 with a grade of "C" or better, or permission
of instructor This course is a study of the internal organization of computing machinery
and the hardware elements essential to the computation process. Various
forms of computer organization are studied and analyzed. The vehicle for
exploration of the computer hardware is Assembly language that provides
specific instructions for the direct manipulation of the memory registers
and control flags associated with virtually all modern computers. CSI 3060-4 Computer Architecture and Systems Programming (4 + 0) Prerequisites: CSI 2300 and CSI 2400 with grades of "C" or
better, or permission of instructor In this course, computer organization concepts are extended to include
advanced architectural concepts. These concepts include set associative
caches, advanced pipelining concepts for superscalar and superpipelined
processors, bus interface concepts, microprogramming concepts, parallel
architectures, multiprocessing architectures, memory organization architectures,
interrupt architectures, and bus data transfer concepts. Supporting systems
programming topics are also covered as a basis for studying operating
systems. CSI 3100-4 Discrete Mathematics (4 + 0) Prerequisites: MTH 2410 and CSI 2300 with a grade of "C" or
better, or permission of instructor Discrete mathematical structures including sets, digraphs, Boolean algebra,
relations, finite state automata, regular languages, and error correction
codes are covered along with their applications to areas of computer science. CSI 3120-4 Organization and Structure of Operating Systems (4 + 0) Prerequisites: CSI 3060 with a grade of "C" or better, or permission
of instructor This course is an introduction to the design, development, and implementation
of modern computer operating systems, including network systems. The topics
covered include input/output processors, interrupt handling, system resource
management, multitasking, communication between machines and processes,
and computer system security. CSI 3210-4 Principles of Programming Languages (4 + 0) Prerequisites: CSI 2300 and CSI 3100 with grades of "C" or
better, or permission of instructor This course traces the evolution of programming languages and identifies
and analyzes the contributions made by several significant languages and
their successors. Specific issues of programming language implementation
such as creation of activation records for block-structured languages
and static and dynamic scoping as methods for defining program object
visibility are studied in depth. All four of the modern programming language
paradigms (procedural, functional, object-oriented, and logical) will
be reviewed. The design, evaluation, and implementation of programming
language processors such as interpreters, compilers, and translators are
studied. CSI 3280-4 Object-Oriented Software Development (4 + 0) Prerequisite: CSI 2300 with a grade of "C" or better, or permission
of instructor This is an upper-division software development class that focuses on
the object-oriented programming paradigm. Object-oriented analysis, design,
and development will be explored in some depth with emphasis on object
definition, abstraction, polymorphism, encapsulation, and inheritance.
Abstract class definitions are developed for a number of common objects
and data structures, and derivative classes and subclasses are developed
from these definitions. Students will develop a thorough understanding
of an object-oriented programming language such as C++ or Smalltalk. CSI 3300-4 Foundations of File Structures (4 + 0) Prerequisites: CSI 2300 and CSI 2400 with grades of "C" or
better, or permission of instructor This course explores the fundamental concepts associated with external
storage media and the methods of organization, storage, and retrieval
of data on peripheral devices. Various file-structuring schemes are compared
and contrasted in order to develop an in-depth understanding of the most
efficient methods for given situations. Students will gain experience
with internal storage management and a wide variety of sequential and
random access methods of file organization and structure. CSI 3310-4 Fundamentals of Database Systems (4 + 0) Prerequisites: CSI 3100 and CSI 3300 with grades of "C" or
better, or permission of instructor This course is the second in a two-course series on the external organization
and retrieval of information. It builds on the base laid in CSI 3300,
Foundations of File Structures, by extending the capabilities of the students
into the area of developing database management systems. Students will
study the three principal models for database organization (relational,
hierarchical, and network). They will also be introduced to the major
issues in database management systems development and operation. The emphasis
will be on the relational model because of its widespread popularity among
computer users. Examples will be constructed using the object-oriented
paradigm. CSI 3510-4 Computer Graphics (4 + 0) Prerequisites: CSI 2300 with a grade of "C" or better, MTH
1410, and either MTH 2140 or MTH 3140, or permission of instructor This course is a survey of graphics hardware and software. The topics
covered include raster scan displays, windowing transformation, algorithms
for vector generators, clipping, area fill, space transformations in two
and three dimensions, perspective viewing methods, and graphical input.
Other topics will be chosen from hidden surface processing, curve and
surface modeling, fractals and animation. Programming projects will be
done using a standard graphics function library. This is a course in the
principles of computer graphics; it is not a course in using existing
commercial software for artistic design or drafting. Students wanting
design or drafting courses should consult offerings of the Art Department. CSI 3700-4 Computer Networks (4 + 0) Prerequisites: CSI 2300 and CSI 2400, both with a grade of "C"
or better, or permission of instructor This course provides a comprehensive study of computer networks, from
the physical aspects to the high-level application protocols with which
most people interact. The software that provides the communication is
emphasized. The methods for creating connections, making sure they are
error free and in order, performing routing, and creating client/server
interactions are discussed. CSI 4120-4 Foundations of Artificial Intelligence (4 + 0) Prerequisite: CSI 3210 with a grade of "C" or better, or permission
of instructor This course includes a study of the theoretical foundations of artificial
intelligence, including the algorithms and techniques and programming
languages used to design and implement intelligent systems. The topics
covered include search strategies, resolution theorem proving, rule-based
deduction, expert systems architecture, plan-generating systems, analysis
of languages, and machine learning. LISP and PROLOG, the most commonly
used AI programming languages, will be covered and used for programming
assignments. CSI 4250-4 Software Engineering Principles (4 + 0) Prerequisites: CSI 3300 with a grade of "C" or better, COM
2610, PHI 3360, and senior standing, or permission of instructor This course focuses on the software development life cycle. Special emphasis
is placed on the earlier phases in the life cycle that precede the actual
writing of the code, and the later phases in which the software is tested
and evaluated after it is written. Finally, the post-implementation phases
that represent the eighty percent of the life cycle during which the software
is evolving as it is in use are studied in-depth. Students will perform
various role playing activities in which they represent users and implementors
during these phases of the development process. CSI 4260-4 Software Engineering Practices (4 + 0) Prerequisites: CSI 4250 with a grade of "C" or better This course is a continuation of CSI 4250, Software Engineering Principles. Students will work in teams of 4 to 6 and apply the principles to the development of a real-world project. Projects will be solicited from industry and progress will be evaluated in conjunction with industry representatives. (Senior Experience) CSI 4281-3 Software Requirements (3 + 0) Prerequisite: CSI 4250 or permission of department This course develops basic competency in software requirements engineering
and management. Students gain knowledge and practical experience with
the fundamentals of requirements elicitation, explication, validation,
management, and assessment. CSI 4282-3 Software Development Management (3 + 0) Prerequisite: CSI 4250 or permission of department This course provides students with exposure to a broad set of principles
and practices affecting the success and failure of software development
efforts and productivity of teams involved in such efforts. The role and
tasks of the software development manager are explored in detail. Note
that this course is specific to software development and is not a general
management course (see MGT courses). CSI 4283-3 Software Testing and Quality Assurance (3 + 0) Prerequisite: CSI 4250 or permission of department This course exposes the student to the key concepts and practices in
software testing and quality assurance. Topics covered include aspects
of software quality assurance relevant to all phases of the software life-cycle,
alternative approaches to software testing, application of current automated
tools, standards, and emerging trends. CSI 4284-3 Software Product Engineering (3 + 0) Prerequisite: CSI 4250 or permission of department This course surveys fundamental topics necessary for successful software
product engineering, including usability engineering, software configuration
management (SCM), and an overview of legal issues for software engineers. CSI 4285-3 Best Practices in Software Development (3 + 0) Prerequisites: CSI 4260 or two of: CSI 4281, CSI 4282, CSI 4283, CSI
4284; or permission of department This course exposes the student to current best practices and emerging
methodologies in software engineering and software product development.
Topics are chosen to reflect the current state of the art and practice.
(A typical set of such topics includes: software architecture as a discipline,
design patterns, eXtreme Programming, recent technology in security, and
aspect-oriented programming.) CSI 4300-4 Advanced Data Structures and Algorithm Analysis (4 + 0) Prerequisites: CSI 3100, CSI 3300 with grades of "C" or better
and MTH 3210, or permission of instructor This course continues the study of data structures begun in CSI 2300.
Extensive concentration is placed on the concept of the abstract data
type (ADT). A wide variety of abstract data types are studied including
linear and nonlinear ADTs. The emphasis is on the design, analysis, and
evaluation of efficient algorithms for a wide variety of common computing
problems. CSI 4520-1-4 Advanced Computing: Variable Topics (1-4 + 0) Prerequisite: permission of instructor This course will include further topics in computer science and its applications.
Topics will be chosen from analysis of algorithms, compiler design, simulation,
artificial intelligence, or other chosen by the instructor. This course
may be repeated for credit under different titles. Computer Science Studies CSS 1010-3 This course is designed for students who wish to use a microcomputer
in their academic pursuits and their career. The student will learn how
to use a personal computer with application software featuring word processing,
spreadsheets, file management, graphics, electronic communications, and
thesaurus/spelling checker. This course also reviews the historical, societal,
ethical, and technological aspects of computers. Credit will be granted
for only one prefix: CSS or CMS. CSS 1027-2 BASIC Programming (2 + 0) Prerequisite: one year of high school algebra or permission of instructor This is an introductory computer programming course in which the major
elements of the BASIC language are taught. Students will write computer
programs to solve problems selected from mathematics and other sciences. CSS 1080-3 This course is for anyone who uses or wants to access the World Wide
Web or use the Internet. Students will master a set of basic skills including
using electronic mail, logging in to remote computers, obtaining online
documents and software, and using a browser like Netscape to search and
explore the World Wide Web for information. Students will also learn the
fundamentals of web page construction. Credit will be granted for only
one prefix: CSS or CMS. CSS 1247-4 Introduction to Programming: Visual Basic (4 + 0) Prerequisites: CSS 1010 or equivalent knowledge and satisfaction of the
General Studies Level I Mathematics requirement or permission of instructor This is an introductory computer programming course in which the major
elements of Visual Basic are taught. Visual Basic is one of Microsoft's
versions of Basic and was created to specialize in easy graphical user
interface development. It is an object-based programming language with
many characteristics of object oriented programming languages. Students
will write programs to solve problems selected from a variety of applications. CSS 1427-2 Introduction to UNIX (2 + 0) Prerequisite: CSI 1300 or previous knowledge of a programming language This course presents fundamental UNIX concepts, including file system
organization, standard commands for file manipulation, utility programs,
filters, editors, basic shell programming, and remote access using telnet
and file transfer commands such as ftp. The course emphasizes skill acquisition
to perform common operations on UNIX systems. CSS 1607-4 Java Programming Fundamentals (4 + 0) Prerequisites: CSS 1010 or equivalent knowledge and satisfaction of General
Studies Level I Mathematics requirement or permission of instructor This course offers an introduction to programming in the Java programming
language. The course will introduce Java applications as well as the basics
of Java applets that can be included in a web document. Students will
write Java programs and create a web page which includes a Java applet. CSS 2227-3 The C Programming Language (3 + 0) Prerequisites: CSI 1300 or CSS 1247 or MTH 1510 or previous knowledge
of a programming language, and MTH 1110 or permission of instructor The course presents a study of the C programming language and its applications
in computing with emphasis on the design and development of efficient
algorithms. C is one of the currently more popular programming languages
because it is particularly well suited to the development of systems software. CSS 2257-4 The C++ Programming Language (4 + 0) Prerequisites: CSI 1300 or MTH 1510 or previous knowledge of a programming
language, and MTH 1110 or permission of instructor This course presents a study of the C++ programming language and its
applications in computing with emphasis on the design and development
of efficient algorithms and object-oriented programming. CSS 3607-4 Advanced Web Programming: Java and Perl (4 + 0) Prerequisite: CSI 1300 or CSS 1247 or CSS 1607 or permission of instructor This course presents programming for the World Wide Web. Topics include
server-side CGI programming using Perl as well as programming in the Java
programming language. The course will introduce stand-alone Java applications,
threads, Java applets that can be included in web documents, building
user interfaces using the Java AWT library and computer animation using
Java. Students will develop web pages that include forms processed by
a CGI program written in Perl, write Java programs and create web pages
that include Java applets. CSS 3707-4 Advanced Multimedia Programming (4 + 0) Prerequisite: CSI 1300 or CSS 1247 or permission of instructor This is an advanced course in multimedia programming. The full power of a contemporary multimedia authoring language is explored. Topics include data structures, manipulating text strings and full text editing, advanced control structures and subroutines, file input/output, advanced animation techniques, dynamic data exchange (DDE), object linking and embedding (OLE) and the use of dynamic link libraries (DLL's) as well as methods for handling such multimedia elements as sound, video and animation. |
| Academics
| Admissions
| Alumni
& Friends | Campus
Life | Computing
on Campus | Search/Directories
|
| News,
Events & the Arts | Current
Students |
Faculty & Staff | Welcome
| Metro
State Home |
Copyright © Metropolitan
State College of Denver