Course Descriptions

Note: Exceptions to any prerequisite must be approved by the Department Chair.

Computer Science Prefix: CS

CS 180 - Introduction To Digital Literacy (3)

An introduction to the main concepts and applications of computers from a liberal arts approach: how everyday ideas can be meaningfully represented by electrical currents which are manipulated inside a computer, computer design and construction, and an introduction to computer languages. This is a first course about computers: what they are, what they can do, what they cannot do, and their history. Ethical-social issues involving computers. Students will be exposed to the use of a variety of computer hardware and software. Not acceptable for the Computer Science major. No prerequisites.

CS 211 - Computer Programming I (4)

This course provides a broad overview of the field of Computer Science and introduces the basic concepts of programming and problem solving. Corequisite: MAT 109 or Departmental Approval.

CS 212 - Computer Programming II (4)

A continuation of CS 211. This course introduces the student to algorithm development, data structures, and graphical interfaces. Prerequisite: CS 211.

CS 231 - Computer Science I (4)

Evolution of hardware and software. Problem analysis and algorithm development. Data types, control structures, subprograms, scope, and recursion. Prerequisite: MAT 109.

CS 232 - Computer Science II (4)

Programming methodology. Data abstraction. Classes and class templates. Inheritance and polymorphism. Search techniques. Algorithm complexity. Windows programming and applications programming interface (API). Prerequisites: CS 231 and MAT 110.

CS 300 - Special Topics (3)

Contents to be determined each semester by the Department to meet the needs of the program and/or the students. Prerequisite: Department Chair approval.

CS 304 - Introduction To Video Game Design And Development (3)

This course is an introduction to current and emergent technologies for electronic game design, game scripting, and design iteration using a player-centered approach. Topics include graphics; game scripting; gender inclusive game design; 3D game engine; motion control; narrative in games, game interfaces; virtual reality; introduction to artificial intelligence algorithms in gaming and usability testing. Co-requisites: MAT 109, CS 211 or CS 231.

CS 305 - Computer Systems (3)

Study of current microcomputer and minicomputer systems. Types and performance of hardware components. System software and programming. Multimedia and I/O devices. Resource management. Computer hardware and software trends. Prerequisite: CS 211 or equivalent.

CS 306 - Database Analysis and Logical Design (4)

Conceptual data modeling. Entity-Relationship and object-oriented modeling. Logical database design. Query languages. Prerequisite: CS 212.

CS 310 - 3D Modeling and Printing I (3)

An introduction to the basic tools, skills, and design concepts of making three-¬dimensional solid objects from a digital file. Students learn the concepts of virtual design of the object using a 3D-¬modeling program and the process of data translation of these virtual models into real physical objects using a 3D printer. Prerequisite: CS 180 or equivalent or Department Chair approval.

CS 311 - Assembly Language (3)

Basic machine organization. Number systems. Data representation. Addressing schemes. Arithmetic and logic instructions. Loops. Subroutines. Pseudo operations. Macros. Input/output. Prerequisite: CS 232.

CS 312 - Computer Software Organization (3)

The design of assemblers, loaders, linkers and macro processors. Prerequisite: CS 311.

CS 314 - 3D Modeling & Printing Ii (3)

This second course in 3D modeling and printing is an examination of the relationship between complex abstraction of objects and the production of 3D printed objects using advanced materials and techniques. Student’s focus is on synthesizing concept visualization, evaluation of appropriate 3D modeling, extrusion materials and production techniques needed to produce high-precision physical objects. Prerequisite: CS 310.

CS 317 - Ethics and Digital Technology (3)

The increasing dependence on and use of digital technology has created many ethical dilemmas across many disciplines and professions. This course will provide students with an ethical and moral framework, which can serve as a basis for ethically grounded decision-¬making with respect to the use of technology in the digital era. Students are introduced to basic concepts and theories of ethics, argumentation, and inductive reasoning, while exploring specific digital technological issues that affect privacy, identity theft, intellectual property, social justice, community, self-¬identity, free speech and censorship. In addition, ethical and social issues pertaining to emerging and converging technologies such as pervasive computing, computational genomics, and autonomous machines are explored. In particular, this course prepares students interested in management of information systems, computer forensics, and computer security to apply practical ethical principles to the many challenges they will face in their careers as digital technology becomes more pervasive in business and everyday life. Prerequisite: CS--180

CS 318 - Biometrics (3)

Biometrics has emerged from relatively specialized use in the criminal forensics domain to more mainstream use for computer authentication, identification document security, and surveillance for public safety. This emergence has been accompanied by an expansion in biometric modality from mainly fingerprints to face, iris, hand, voice, and other novel biometrics. This course concentrates on the unique advantages that biometrics brings to computer security, but also addresses challenging issues such as security strength, recognition rates, and privacy, as well as an alternatives to passwords and smart cards. Students will gain knowledge in the building blocks of this field: image and signal processing, pattern recognition, security and privacy, mobile applications, and secure systems design. Prerequisites: MAT 109 and CS 211 or CS 231 or department chair approval.

CS 320 - Introduction To 3d Modeling And Animation I (3)

Basic concepts, tools and techniques of 3-D modeling and computer animation. Creating and animating synthetic objects, materials, lights, and cameras. Application to the World Wide Web. Prerequisite: CS 180 or equivalent.

CS 326 - Human Computer Interaction (3)

Human-Computer Interaction (HCI) is a discipline concerned with the design, evaluation and implementation of interactive computing systems for human use and the study of major phenomena surrounding them. HCI is an interdisciplinary field that integrates theories and methodologies from computer science, cognitive psychology, and design. Topics covered in this course will include current HCI theories and methodologies, and the design and evaluation of effective user interaction designs, including principles and guidelines for designing interactive systems. User interaction development activities include requirements and task analysis, usability specifications, design, prototyping, and evaluation. Case studies are used to illustrate key concepts presented, and to lend context to the issues discussed. Prerequisites: MAT 109 and CS 211 or CS 231 or Department Chair approval.

CS 328 - Unix and Systems Concepts (3)

The Unix operating system, shell programming and system administration. Applications to the development of systems software. A large project is implemented. Prerequisite: CS 232.

CS 331 - Data Structures and Algorithms (3)

Algorithm analysis. Abstract data types. Techniques for the implementation of abstract data types, such as arrays, stacks, queues, trees, heaps, and graphs. Sorting. Prerequisite: CS 232 and MAT 253.

CS 332 - Computer Hardware Organization (3)

Boolean algebras and switching functions. Gates. Memory devices. Combinational systems, simplification and decomposition. Sequential systems. Analysis and synthesis. Design of digital systems. Prerequisite: MAT 109.

CS 334 - Computerized Graphics (3)

Development of graphics using various computer software. Graphic files. Bitmapped and vector graphics. Color. Format conversion. Drawing, painting, fractalizing, ray tracing and animation. Prerequisite: CS 180 or equivalent.

CS 338 Web Design, Authoring and Publishing (3)

Concepts, tools, and technologies of computer networked information with an emphasis on the Internet and the Web. Web clients and servers. Web design, authoring, publishing and programming. Web development tools. Internet trends. Prerequisite: CS 180 or equivalent.

CS 340 - Programming for the Web (3)

This course aims to teach the Java programming language as it is applied in the World Wide Web. It covers Java applets, applications, API (application programming interface), graphics, animation and threads. It also explores Java object-oriented techniques and database connectivity. Prerequisite: CS 211 or equivalent.

CS 341 - Interactive Multimedia Systems (3)

Information retrieval, multimedia organization and design. Editing and manipulating hypertext. Audio, video and still image processing. Development of multimedia for networked systems in a cross-platform environment. Prerequisite: CS 211.

CS 342 - Web Animation (3)

This course provides the essential concepts and skills to develop and publish Web animation. It covers effective techniques and tools to develop highly interactive animated Web sites. Animation software for the Web will be explored and compared. Prerequisite: CS 180 or equivalent.

CS 359, 459 - Independent Study (1-3)

Supervised research in areas of special interest to the student. Prerequisite: Approval by the Dean and the Department Chair is required.

CS 372 - Software Engineering (3)

Basic tools and techniques for specifying, designing, implementing, verifying and validating large software projects. Prerequisite: CS 212 or equivalent.

CS 395/495 - Research (1‑3)

Investigation of an original research problem of special interest to the student; independent execution of specific work in pure/applied Computer Science or library research under the direction of a selected faculty member. Students who have completed at least 1 credit of CS 395 may register for CS 495. Prerequisite: Approval of Instructor (Fall, Spring, Summer). Repeatable to max of 3 credits.

CS 406 - Operating Systems Environments (3)

Fundamental concepts and operations of an operating system. Installation and configuration of current versions of the most popular operating systems, such as Windows, Linux, and Mac OS. Administration, trouble-shooting and optimization of operating systems. Prerequisite: CS 212 or equivalent.

CS 412 - Embedded Multimedia Systems (3)

An introduction to the design, implementation, and testing of embedded systems with emphasis on multimedia applications. The course integrates three principal areas: a) fundamentals of hardware and firmware design, b) algorithmic design for multimedia processing, and c) embedded system prototyping for programmable logic. Prerequisites: CS 372 or CS 332 or Departmental Approval.

CS 413 - Operating Systems (3)

Operating systems and computer system structures. Process management and synchronization. Memory management. File systems. I/O systems. Distributed systems. Protection and security in operating systems. Prerequisite: CS 331.

CS 414 - Computer Architecture (3)

System buses. Internal and external memory. I/O. Computer arithmetic. Instruction sets. CPU structure. The control unit and microprogramming. Prerequisites: CS 311 and CS 332.

CS 426 - Databases (3)

Physical data organization. The network, hierarchical and relational models. Query languages. Design of relational databases. Query optimization. Integrity and security. Distributed databases. Prerequisite: CS 331.

CS 428 - Object-Oriented Design and Software Development (3)

Analysis of the object-oriented approach to systems design. Object-oriented languages: C++ and Smalltalk. Applications to X-Windows programming. A large project is implemented. Prerequisites: CS 328 and CS 331.

CS 431 - Concepts of Programming Languages (3)

Survey of programming languages and language features. The syntax of programming languages and an introduction to compilers. Functional, object-oriented and logic programming. Prerequisite: CS 331.

CS 437 - Computer Graphics (3)

Basic raster graphics algorithms for two-dimensional primitives: scan converting lines, circles, ellipses, filling polygons, clipping, antialiasing. Geometrical transformations: translation and rotation. Viewing in three dimensions. Illumination and shading. Prerequisite: CS 331.

CS 440 - Data Communications (3)

Techniques and applications in data communications. Types of data communications versus discipline methodology. Hardware requirements and constraints. Speed versus quality. Security and encoding algorithms. Prerequisite: CS 212.

CS 453 - Artificial Intelligence (3)

Programming languages for Artificial Intelligence. Predicate calculus. Search. Knowledge representation. Natural language understanding. Planning. Prerequisite: CS 331.

CS 454 - Robotics (3)

Design and control of stationary and mobile robots. Robot morphology. The nature of the drive mechanisms (electrical, mechanical, pneumatic, and hydraulic) are described, as well as sensors, motors, effectors, and the various peripheral modules. Simple feedback mechanisms. Prerequisite: CS 331.

CS 456 - Introduction to Expert Systems (3)

Applications-oriented facet of Artificial Intelligence. The course will introduce applications of expert systems in various fields, e.g. business, education, and medicine. Prerequisite: CS 331.

CS 471 - Computer Networks (3)

Concepts and principles of data communications and computer networks. Network architectures and protocols. Local area networks. Switching and Routing. Distributed processing. Internetworking and current area topics. Prerequisite: CS 331.

CS 473 - Network Programming (3)

Design and implementation of distributed, network applications based on the client/server approach. Network and Internetwork concepts, protocols and programming interfaces. Network security and related topics. Prerequisite: CS 212.

CS 474 - Computer Forensics (3)

Examination of computer activities related to cybercrime. Tools and techniques of forensic investigation. Retrieval and analysis of evidence stored in a wide range of digital devices that may lead to legal prosecution. Prerequisite: CS-440 or CS-471 or Department Chair approval.

CS 477 - Computer Security (3)

This course is intended to provide an introduction to the standard methods for securing computer applications and computer networks. The topics included are security attacks, security services, conventional encryption, public-key encryption, electronic mail security, PGP, web security, SSL, SET, intruders, viruses, and firewalls. Prerequisite: CS 440 or CS 471.

CS 478 - Applied Cryptography (3)

This course provides an introduction to cryptography and its applications emphasizing programming aspects. The topics included in this course are ciphers, one-way functions, communications using symmetric cryptography, communications using public-key cryptography, digital signatures, and key exchange. Prerequisite: CS 232 or equivalent.

CS 487 - Seminar (1-3)

Students present topics of current interest in computer science. The material to be discussed will be taken from journals, proceedings or specialized books, but not from regular textbooks. This course serves as an integrative experience for Computer Science majors. Prerequisite: CS 331.

CS 499 - Internship (3)

Computer Science applications in a professional work setting under direct supervision. Requires a minimum of 120 hours. Prerequisites: Junior status, and advisor and Department Chair approval.