Course Descriptions

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

Computer Applications Prefix: CAT

102 Basic Computer Applications (3)

This course provides students with basic computer applications training. Hands-on training will be provided in a Windows-based operating environment, electronic mail, the World Wide Web, computerized library skills, word processing and electronic spreadsheets. This course will provide the necessary introductory level training for students who have never used microcomputers and/or applications software. It is a hands-on lab course. No prerequisites. Not acceptable for Computer Science and Mathematics majors.

Computer Science Prefix: CS

121 Foundations of Computer Science (3)

Historical, logical and mathematical foundations of computer science at an introductory level. Number systems, representation of information, elements of symbolic logic, problem-solving techniques, and models of computing machines. Prerequisites: none.

180 Introduction to Computers (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.

190 Introduction to Computing and Technology (3)

Current digital technologies and tools to make a productive use of computers and software applications in an educational or professional setting. Computer systems concepts. Application software for document production, spreadsheets, presentations, web development, multimedia, and information security. Prerequisite: Intermediate knowledge of computer use. Student must take the computer placement test.

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.

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.

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.

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.

280 Introduction to Multimedia (3)

An introduction to multimedia and web publishing concepts, tools, and applications. Authoring processing, and editing of various types of media, including text, hypertext, images, audio, video, and animation. Prerequisite: CS 180 or equivalent.

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.

301A-G Introduction to Programming (1 each)

Courses in this series provide the student with an introduction to the syntax of a programming language. Languages available are Pascal, Ada, C, COBOL, RPG, FORTRAN and LISP. Prerequisite: CS 180.

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.

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.

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.

312 Computer Software Organization (3)

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

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

320 Computer 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.

323 Introduction to File Processing (3)

Introduction to structuring data on bulk storage devices (e.g., floppy or hard disks). Introduction to concepts of data base. Prerequisite: CS 331.

325 Desktop Publishing (3)

Design and production of high quality publications from desktop computers. Text editing and text manipulation. Creating, importing, pasting and cropping graphics. Use of design elements. Printing. Color processing. Building books and booklets. Different types of hardware and software will be discussed. Prerequisite: CS 180 or equivalent.

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.

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.

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.

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.

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.

340 Java 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.

341 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.

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.

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.

372 Software Engineering (3)

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

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 2000, UNIX, Windows NT, etc. Administration, trouble-shooting and optimization of operating systems. Prerequisite: CS 212 or equivalent.

407 Database Programming and Administration (3)

Design and implementation of databases in client/server environments. SQL server installation and administration. Development of application programming interfaces. Design of distributed databases. Multimedia and object-oriented support. Prerequisite: CS 306 or equivalent.

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.

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.

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.

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.

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.

432 Compiler Design (3)

Language translation and compiler design. Lexical analysis. Syntax analysis. Operator precedence and LR parsers. Parser generators. Intermediate code. Optimization. Prerequisites: CS 331 and MAT 254.

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.

438 Web Programming and Administration (3)

This course covers Web programming with an emphasis on server side programming. It explores Web servers' features, configuration, and programming. It also analyses the development of dynamic content and online database handling. Current programming languages and tools for the Web are covered. Case studies such as e-commerce, online data base management, or distance education will be discussed. Prerequisite: CS 338 or equivalent.

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.

453 Artificial Intelligence (3)

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

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.

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.

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.

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.

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.

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.

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.

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.