Computer Science
(CS)
101. TOPICS FROM COMPUTER SCIENCE 3 cr. Computer
familiarization course surveying the academic discipline of computer
science. Topics include the history and architecture of computers; elementary
programming; word processing, spreadsheets, data managers, and graphics
packages. Emphasis is on understanding what computers and computer professionals
do rather than on learning programming.
201. INTRODUCTION TO COMPUTER SCIENCE I 3 cr. Corequisite
or prerequisite: MT 134 or MT 135; corequisite: CS 201L. Basic programming
concepts: variables, assignments, conditionals, loops and parameter
passing. Object-oriented programming concepts: objects, methods, constructors,
inheritance and message-passing. Program design and documentation, algorithmic
problem solving.
201L. INTRODUCTION TO COMPUTER SCIENCE LABORATORY 1 cr.
Corequisite: CS 201. Programming laboratory intended to provide hands-on
experience in applying the programming concepts learned in CS 201. Experience
in learning the process of program development, with emphasis on techniques
for testing and debugging. CS 201 and CS 201L must be taken together
in a single semester.
202. INTRODUCTION TO COMPUTER SCIENCE II 3 cr. Prerequisite:
CS 201. Continuation of CS 201. More advanced concepts in object-oriented
programming and design and their application to data structures and
algorithm analysis. Topics include O-O concepts of polymorphism, overloading,
overriding, and genericity, as well as linked lists, stacks, queues,
trees, recursion and algorithm comparison using order notation.
280. HOT TOPICS IN COMPUTER SCIENCE 1 cr. Discussion
of computer-science issues by faculty and students; ideologies, trends,
emerging technologies, and cutting-edge concepts in computer science.
Speakers from academia and industry on these topics. Faculty and students
select articles for discussion. Students may take Hot Topics courses
for credit a maximum of four times.
301. ADVANCED PROGRAMMING 3 cr. Prerequisite: CS 202.
Academic credit will be given for either CS 301 or CS 303, but not both.
Advanced topics in procedural and object-oriented programming languages,
important features for proficient programmers to understand and use.
Covers topics not included in the introductory courses, possibly including:
pointers and pointer manipulation, advanced program structure and design,
multi-exception handling, threaded programs, and advanced data-structures.
303. PROCEDURAL PROGRAMMING WITH C 3 cr. Prerequisite:
CS 202. Academic credit will be given for either CS 301 or CS 303, but
not both. Procedural or sequential aspects of programming. Topics include
functions, pointers, structures, structure charts, top-down and bottom-up
design, debugging techniques, separate compilation, and writing modular
code without the benefit of language-supported constructs such as objects
and inheritance.
309. WEB DESIGN AND PROGRAMMING I 3 cr. Prerequisite: CS 202.
Principles of web page design; HTML, DHTML, XHTML and XML; cascading
style sheets; introduction to client-side and server-side programming;
Javascript and Perl; integrating Java applets; Java-based XML processing.
310. WEB DESIGN AND PROGRAMMING II 3 cr. Prerequisite:
CS 309. Advanced web programming and scripting methods, including Active
Server Pages, Python, PHP. Topics selected from web server administration,
web agents, security, e-commerce, and others.
320. GUI PROGRAMMING 3 cr. Prerequisite: CS 202 (or
201 and department chair permission). GUI (graphical user interface)
allows users to interface with a computational environment using a point-and-click
mechanism and minimal typing in the PC windowing systems. GUI is suitable
for an application that includes buttons and menus. Fundamentals of
writing Windows applications, event-driven programming and the GUI.
Includes dialogues, menus, controls, scope and lifetime of variables,
data types, objects and instances, MDI, fonts and graphics, the Clipboard
and simple file I/O.
373. COMPUTER ARCHITECTURE AND ASSEMBLY LANGUAGE 3 cr. Prerequisite:
CS 202; corequisite or prerequisite: MT 379. Introduction to computer
organization and structure, machine language, and assembly language
on mainframes and microcomputers; implementation of programming structures
and data structures in assembly language.
380. SPECIAL TOPICS IN PROGRAMMING 1 3 cr. Prerequisite:
dependent on topic. Investigations of emerging programming technologies
and paradigms.
431. MULTI-MEDIA PROGRAMMING 3 cr. Prerequisite: CS
310. Principles of interactive multimedia design; introduction to multimedia
documents and authoring via Dreamweaver, Macromedia, and Flash; introduction
to interactive television and hypermedia systems, digital media, compression,
and synchronization.
451. DATABASE SYSTEMS 3 cr. Prerequisite: CS 320. Entity
relationship models: relational and network designs and queries; properties
of storage devices; indexing structures; decomposition and normal forms;
data security and integrity.
455. COMPUTER COMMUNICATIONS AND NETWORKING 3 cr. Prerequisite:
CS 320. Network topologies; physical, data link and network layers;
data link protocols; routing algorithms; packet switching.
463. COMPUTER GRAPHICS 3 cr. Prerequisites: MT 233
or MT 379; and CS 202. Fundamentals of two and three dimensional graphics,
including graphics hardware, line drawing, raster and vector techniques,
circles, curves, rotation, scaling and translation of graphical objects,
polygon drawing and filling, parallel and perspective projections, hidden
line and surface removal, color, shading and shadows.
465. PROGRAMMING LANGUAGES 3 cr. Prerequisites: MT 379 and
CS 301 (or 303). Comparison of the features of various programming languages;
methods of implementation; the imperative, object oriented, functional,
and declarative paradigms; programming in several illustrative languages
such as LISP, Smalltalk, and Prolog.
467. ARTIFICIAL INTELLIGENCE 3 cr. Prerequisites: MT
379 and CS 301 (or 303). Expression of knowledge using rules, forward
chaining, and backward chaining; knowledge representation; limitations
of rule based systems; Prolog programming; expert system shells; case
studies.
470. SOFTWARE ENGINEERING 3 cr. Prerequisite: CS 320.
Senior status and permission of chair. Simulates the environment of
the professional software developer working in a team on a large software
project, including the requirements analysis, system design, code development,
testing, and delivery of a real software product to an independent interested
party. Software methods, models, evolving requirements, test plans,
software verification, documentation, and scheduling.
471. ALGORITHM ANALYSIS 3 cr. Prerequisites: MT 379
and CS 301 (or 303). Techniques of algorithm design; analysis of efficiency
of algorithms; general strategies such as "divide and conquer"
and "dynamic programming"; applications to numeric, symbolic,
and graph algorithms.
473. LANGUAGE PROCESSORS 3 cr. Prerequisites: MT 379,
CS 373, 301 (or 303). Language translators and systems programs: assemblers,
macro processors, compilers, linkers and loaders; lexical, syntactic,
and semantic analysis.
474. OPERATING SYSTEMS 3 cr. Prerequisites: CS 373
and 301 (or 303). Memory management, job scheduling, interrupts and
I/O processing, mutual exclusion, semaphores, deadlock, and distributed
systems.
475. TECHNICAL WRITING IN COMPUTER SCIENCE 3 cr. Prerequisite:
CS 202. Written communication related to computer science emphasizing
clear, concise expression of technical information. Students explore
several types of CS writing, including users' guides, help pages, tutorials,
mainstream articles, and technical papers; read and analyze example
pieces; write, edit, and revise their own and critique other students’
work.
477. DESIGN PATTERNS 3 cr. Prerequisite: CS 320. Object-oriented
design skills and techniques. All 23 of the “canonical”
design patterns catalogued by Gamma et al., including the creational,
structural and behavior classes of patterns. Variations of these patterns,
how and where to apply the patterns, and using the patterns together
to build larger, more maintainable programs.
478. FORMAL LANGUAGES (MT 478) 3 cr. Prerequisite:
MT 341 or 379. Finite and push-down automata and Turing machines. Regular
languages, context-free grammars, recursive and recursively enumerable
languages. Other topics chosen from Church’s thesis, Gödel
numbering, decidability, and recursive functions.
480. SPECIAL TOPICS cr. TBA Reading, reports on, and
investigation of selected material and topics.