Computer Science Course Offerings
A listing of offered courses follows with prerequisites. Please note that some courses do have additional fees associated with them. The credit value of each course is represented by the number in brackets.
CS 100, 200, 300, 400, 500 Cooperative Education Program [variable]
These courses are intended for students in the Cooperative Education program. The program is designed to provide the students with an exposure to computer-related problems at commercial computer installations wherein they can apply the skills and concepts they have learned. The courses carry from 1 to 3 credits. The actual number awarded is decided by the faculty coordinator and based upon the level of the students’ involvement. Cooperative education courses may not substitute for CS course requirements in the major. All courses must be taken on a Pass/No Pass basis.
Prerequisites: Sophomore standing and 2.5 GPA.
CS 110 Introduction to Computers [3]
Designed for non-science majors, the course emphasizes the computer’s capabilities, limits, and its impact on society. Personal computer productivity software is used to demonstrate the influence of computers on society. Students are also provided an introduction to the Internet through the use of a Web browser and an e-mail facility. Not open to students who have completed a higher-level CS course.
Laboratory fee.
CS 111 Programming Foundations [3]
An introductory computer programming course designed for students with no prior programming background. Emphasis will be placed on problem solving and the translation of solutions into a programming language. Topics include data types, input/output, control structures, loop structures, and program modularity. This course may be used to prepare the student with no prior programming experience for CS 114 or as a one-semester exposure to programming.
Prerequisites: (1) Two years of high school algebra with an average grade of at least B and (2) a high school computer course or CS 110. Not open to students who have completed a higher-level CS course.
Laboratory fee.
CS 114 Computer Programming I [4]
An introductory course, with laboratory, covering the fundamentals of problem solving using a computer. The programming language used is the current base language for the department. Although language-specific, the course emphasizes general programming methodology and concepts common to all programming languages: algorithms, top-down–structured program design, modularity, efficiency, testing and debugging, user friendliness. Topics include organization and hardware; input and output; sub-program units (functions), control structures; compound data types. By the end of the course, the object-oriented paradigm is introduced. Some programming, in any language, is recommended; familiarity with quantitative reasoning is required.
Prerequisite: M 110 or two years of high school algebra.
Laboratory fee.
CS 115 Computer Programming II [4]
A second course, with laboratory, in the fundamentals of problem solving using a computer. The programming language used is the current base language for the department. This course continues to emphasize language-independent programming techniques while building the students’ knowledge of the current base language. The ideas of objects, classes, and inheritance, introduced in CS 114, are developed more fully. Pointers, dynamic memory allocation, recursion, and basic data structures are introduced.
Prerequisite: CS 114 (minimum grade of C).
Laboratory fee.
CS 175 Introduction to Internet Programming [3]
This course introduces the student to current programming models used to generate and support real-world, Web-based applications. The course focuses on important HTML/ XHTML tags and concepts, including tables, frames, forms, and cascading style sheets. The Common Gateway Interface (CGI) is presented as a means of transferring data to and from client-server applications. Coverage includes an in-depth examination of client-side programming using ECMA (European Computer Manufacturers Association) compliant scripting language, such as JavaScript, to create and customize Web pages, generate dynamic pages, and validate the integrity of CGI data.
Prerequisite: CS 111.
Laboratory fee.
CS 211 Architecture and Assembly Language [4]
Architecture topics to include CPU and ALU design and operation, instruction sets, microcode, cache memory, arithmetic, instructionand data formats. Architectural principles are illustrated with the study of a specific assembly language.
Prerequisite: CS 115.
Laboratory fee.
CS 220 Data Structures [3]
The study of linear lists (stacks, queues); static versus dynamic allocation; garbage collection; sparse matrices; prefix, postfix, and infix formulas; recursion and recursive algorithms; trees (binary and other representations of trees, traversal of trees); hashing; searching; sorting (bubblesort, quick-sort, heapsort, mergesort); analysis of algorithms in terms of time and space complexity; graphs (representation of graphs, topological sorting, reachability, critical path algorithm).
Prerequisite: CS 115 (minimum grade of C).
Laboratory fee.
CS 320 Concepts of Programming Languages [3]
Introduction to programming language paradigms, including imperative, functional, object-oriented, logic, and concurrent. Example languages of each paradigm are compared and contrasted. Abstract programming language description is introduced.
Prerequisite: CS 220.
Laboratory fee.
CS 330, 331 Studies in Computer Science [3, 3]
Concentrated studies in areas of computer science, such as design and analysis of algorithms, advanced operating systems, database theory, computer architecture, comparative languages, database management systems, computer networks, Internet programming, and software engineering.
Prerequisites: CS 115 and M 221W.
Laboratory fee.
CS 340 Formal Languages and Automata [3]
This course provides an introduction to theoretical computer science. Languages, grammars, and automata will provide a background for a discussion of parsing. Related areas also include recursive definitions, Turing machines, and decidability.
Prerequisites: M 221W and CS 115.
Laboratory fee.
CS 351 Introduction to Artificial Intelligence [3]
This course introduces the basic principles in artificial intelligence research, covering simple representation schemes, problem-solving paradigms, constraint propagation, and search strategies. Areas of application, such as knowledge representation, natural language processing, expert systems, vision, and robotics, are explored. The LISP programming language is also be introduced.
Prerequisite: CS 220.
Laboratory fee.
CS 355 Computer Networks [3]
This course provides a solid foundation in the design of a computer network. Topics focus on network standards and standardization bodies, a layered network architecture, circuit and packet switching, streams and datagrams, physical media and network access, media access and LAN addressing, Internet working and routing, and transport layer services. Also presented are application layer protocols used on the Web, file transfer, and electronic mail; and network security, including cryptography, encryption, and authentication protocols.
Prerequisites: CS 114 and CS 211.
Laboratory fee.
CS 360 Software Development [3]
This course focuses on the development of large-scale software that is reliable, understandable, and maintainable. Procedural and object-oriented paradigms are used to illustrate design approaches. Students will work in teams and will develop software on at least two platforms. Abilities and knowledge gained in the other computer science courses will be integrated with a series of comprehensive system development projects. Students will be required to present their project work to the class. Project organization, professional standards, and ethics will also be covered.
Prerequisite: CS 220.
Laboratory fee.
CS 362 UNIX Internals [3]
An in-depth study of the UNIX operating system and associated software tools. Topics include UNIX-C interface (standard UNIX subroutines, system calls, C library); writing shell scripts; using UNIX tools (awk, sed, grep, tr, nroff); writing/developing software tools; and system security. It is assumed that the student has a working knowledge of programming in C/C++.
Prerequisite: CS 220.
Laboratory fee.
CS 365 Principles of Database Systems [3]
This course provides a solid background in the theory, design, and programming of database systems, with a focus on relational databases. The relational data model and entity-relationship diagrams will be covered. Other data models, including the object-oriented model, will be presented. The course introduces database query languages, including an in-depth coverage of the Structured Query Language (SQL). Other database topics include storage and indexing techniques, transaction management, and database interface with application programs.
Prerequisite: CS 220.
Laboratory fee.
CS 371 Computer Graphics [3]
An introduction to fundamental aspects of three-dimensional computer graphics, including the implementation of basic graphics algorithms, geometrical transformations and projections, representations of curves and surfaces, lighting models, and graphical interaction. Theory is applied via the development of programs using a graphics package, such as OpenGL or DirectX.
Prerequisite: CS 220.
Laboratory fee.
CS 375 Internet Programming Concepts [3]
This course is an in-depth exploration of current client/server-side programming paradigms for creating World Wide Web–aware programs. The development of client-side Web pages, using the current version of HTML/XHTML and a Web-scripting language, is addressed. The Document Object Model (DOM) and its role in dynamic HTML (DHTML) are presented. The Common Gateway Interface (CGI), as a vehicle to transfer client-server data, is examined. Server-side programming focuses on the Java Servlets API for the development of dynamic Web pages, the creation and processing of HTML forms and general client-server communications. Servlet filters and security are discussed, and the development of applications using reusable software programs is presented.
Prerequisite: CS 115.
Laboratory fee.
CS 451 Computer Operating Systems [3]
Characteristics and design of objectives of operating systems. Serial and parallel processes. Deadlock detection, prevention, and avoidance. Scheduling, long and short term. Memory management. Executive multiprogramming and multiprocessor systems. A comparison of major operating systems.
Prerequisites: CS 211 or ECE 332, and CS 220.
Laboratory fee.
CS 480, 481 Independent Study in Computer Science [1–3]
The study of more advanced computer science topics under the direction of a faculty member.
Prerequisites: Advanced standing and approval of the department.
CS 190, 191, 290, 291, 390, 391, 490, 491 Special Topics in Computer Science [1–4]
Possible topics include those within computer graphics, data communications, formal theory of languages, computer architecture, theory of automata, modeling, simulation, artificial intelligence, and algorithm analysis.
Prerequisite: Permission of instructor.