|
21:198:100
Introduction to Computers and Information Processing (3)
Covers a general knowledge of computer use; history of computers and information processing, survey of modern computer science concepts, practical instruction in the use of a variety of data processing environments, and use of available software packages and databases; introduction to the internet.
May not be used for credit by computer science or information systems majors. This course fulfills the technology course requirement in the teacher certification program.
|
21:198:101
Computers and Programming I (3)
The basics of procedural programming in Java. Java primitive data types, loops, control structures, arrays, methods, an introduction to object-oriented programming, using classes and objects, writing classes, encapsulation.
Prerequisite: Fulfillment of mathematics proficiency requirement (21:640:106,107,108, or 109, or by examination). This course fulfills the technology course requirement in the teacher certification program.
|
21:198:102
Computers and Programming II (3)
Recursion and object-oriented programming in Java. Recursion, object-oriented design, inheritance, polymorphism, exception handling, collections.
Prerequisite: 21:198:101 (C or better).
|
21:198:251
Computer Organization (3)
An introduction to computer system structure and organization. Topics include representation of information, circuit analysis and design, register-transfer level, processor architecture, and input/output.
Prerequisite: 21:198:102 (C or better).
|
28:198:280
Programming Language Concepts (3)
Conceptual study of programming language syntax, semantics, and implementation. Course covers language definition structure, data types and structures, control structures and data flow, run-time consideration, and interpretative languages.
Prerequisite: CS114 or 21:198:335 or equivalent.
|
28:198:288
Intensive Programming in Linux (3)
The course covers Linux programming with Apache Web and MySql database using Php/Python and C as primary languages. It consists of four stages: basic tools such as Bash and C programming; searching trees and matrix computing; end-to-end applications such as one that constantly presents top 100 stocks; and extending the applications to run on multiple machines. The course provides students with hands-on experience for programming relatively large applications.
Prerequisite: 21:198:335.
|
21&28:198:332
Principles of Operating Systems (3)
Organization of operating systems covering structure, process management, and scheduling; interaction of concurrent processes; interrupts; I/O, device handling; memory and virtual memory management, and file management.
Prerequisite: 21:198:335.
|
28:198:333
Introduction to UNIX Operating Systems (3)
Covers the UNIX system kernel including initialization, scheduling, context switching, process management, memory management, device management, and the file system. Also includes the organization of shells, editors, utilities, and programming tools of the UNIX operating system.
Prerequisites: 21&28:198:332 or equivalent, and knowledge of C language.
|
21:198:335
Data Structures and Algorithm Design (3)
Explores trees, paths, linear lists, strings, arrays, stacks, queues, linked structures, and algorithms for searching, sorting, and merging.
Prerequisites: 21:198:102 (C or better).
|
28:198:341
Foundations of Computer Science II (3)
Provides an introduction to automata theory, computability theory, and
complexity theory. Theoretical models such as finite state machines,
push-down stack machines, and Turing machines are developed and related
to issues in programming language theory. Also covers undecidability
and complexity theory, including the classes P and NP.
Prerequisites: 28:198:280 and 21:640:237.
|
28:198:345
Web Search (3)
An introductory course on web searching. The architecture of a search engine. Information vs. data retrieval. Web crawling. Processing text (tokenization, stemming, stopwords, link analysis). The indexing process and inverted indexes. Query processing. Ranking algorithms based on indexes and links (e.g. Kleinberg's HITS, Google's PAGERANK). Retrieval models. Search engine evaluation. Case studies (e.g., Google cluster architecture).
Prerequisites: 28:198:280 and (21:640:237 or 21:198:251).
|
28:198:352
Parallel Computers and Programming (3)
Introduction to parallel computers and parallel programming. General structures and design techniques of parallel computers are described. Programming paradigms and algorithm design considerations for parallel processors also are discussed.
Prerequisites: 21:198:251 and 21&28:198:332.
|
28:198:353
Advanced Computer Organization (3)
Emphasis on the basic design principles or various components in a
computer, as well as how the components are organized to build a
computer. Topics include design methodology, arithmetic and logic unit
design, control unit design, memory hierarchy, memory system design,
input and output devices, peripheral devices, and interfacing computers
using software. A software simulation package is used to help the
learning process. By the end of the semester, students will have built a
simulated computer.
Prerequisites: 21&28:198:251 or instructor-approved equivalent.
|
28:198:356
Introduction to Computer Networks (3)
This course provides an introduction to computer networks, with a special focus on the internet architecture and protocols. Topics include layered network architectures, addressing, naming, forwarding, routing, communication reliability, the client-server model, web, and email protocols. Besides the theoretical foundations, students acquire practical experience by programming reduced versions of real internet protocols.
Prerequisite: Computer science students should take 28:198:288 before this course.
|
28:198:357
Fundamentals of Network Security (3)
This course offers an in-depth study of network security issues, types of computer and network attacks, and effective defenses. It provides both a theoretical foundation in the area of security and hands-on experience with various attack tools, firewalls, and intrusion detection systems. Topics include: network scanning, TCP/IP stack fingerprinting, system vulnerability analysis, buffer overflows, password cracking, session hijacking, denial of service attacks, intrusion detection.
Prerequisite: 28:198:356 or IT 120.
|
28:198:366
3-D Game Development (3)
This course introduces students to the core concepts and skills necessary for the development of games utilizing 3-D graphics. Students will learn how to set up and program their own 3-D graphics-based game engine using OpenGL. Students will learn how to load and display custom 3-D models created using existing 3-D modeling tools. Once complete, students will have created two fully functional 3-D games and tools to work with them.
|
28:198:370
Introduction to Artificial Intelligence (3)
Exploration of concepts, approaches, and techniques of artificial
intelligence. Emphasizes both underlying theory and applications.
Topics include knowledge representation, parsing language, search,
logic, adduction, uncertainty, and learning. LISP and Prolog
programming languages used extensively. Students are required to do
programming assignments, complete a programming semester project, and
review case studies.
Prerequisites: 21:198:335 and 21:640:237.
|
28:198:371
Logic with Applications to Computer Science (3)
An introduction to both the syntax and semantics (basic model theory) of first-order logic, covering one set of inference rules, sequent calculus or a tableau system, and prove the completeness theorem for the proof system. Also covers a relatively modern (and simpler) form of incompleteness theorems and relates it to computational issues such as the halting problem, as well as issues related to automating logical reasoning. These will include Herbrand's theorem, resolution, and logic programming.
Prerequisites: 21:198:335, 21:640:237, and 21:640:235.
|
28:198:408
Cryptography and Internet Security (3)
Covers
security requirements for telecommunication over the internet and other
communication networks, various conventional and public-key encryption
protocols, digital encryption standard, RSA and ElGamal cryptographic
systems, digital signature algorithm and analysis of its
cryptoimmunity, and access sharing schemes.
Prerequisite: 21:640:237.
|
21&28:198:431
Introduction to Database Systems (4)
Database system architecture, including data modeling using the semantic object and entity-relationship model; storage of databases; the hierarchical, network, and relational data models; formal and commercial query languages; functional dependencies and normalization for relational database design; relation decomposition; concurrency control and transactions management. Student projects involve the use of a DBMS package.
Prerequisite: 21:198:335.
|
28:198:432
Advanced Operating Systems (3)
A survey of the design and implementation of distributed operating systems, both by introducing basic concepts and considering examples of current systems. Topics include: communication, synchronization, processor allocation, and distributed file systems.
Prerequisites: 21:198:251 and 21&28:198:332.
|
28:198:433
Introduction to Linux Kernel Programming (3)
An introductory study of how the Linux operating system is built from scratch. As a hands-on course, students will perform intensive programming using Linux kernel. The contents include booting, segmentation and paging, creating and destroying processes, process switching and scheduling, handling exceptions and interrupts, software interrupts, creating system calls, creating file systems, networking with TCP/IP, device driver writing, and module programming, etc. At the end of the course, students will be able to modify the Linux operating system to create their own.
|
28:198:434
Advanced Database Systems (3)
Covers
the basic concepts of traditional files and file processing, provides a
classic introduction to the relational data model and its languages,
and discusses database design methodology and application developments.
Students are expected to learn the design of database application
systems through a small project and to get some practical hands-on
experience with commercial database management systems (DBMS) by
writing application programs using the commercial DBMS query languages.
Prerequisite: 21&28:198:431.
|
21&28:198:435
Advanced Data Structures and Algorithm Design (3)
Advanced topics in data structures and algorithms, including mathematical induction, analysis and complexity of algorithms, and algorithms involving sequences, sets, and graphs such as searching, sorting, order statistics, sequence comparisons, and graph traversals. Optional topics include geometric, algebraic, and numeric algorithms.
Prerequisite: 28:198:288 and 21:640:237.
|
28:198:438
Interactive Computer Graphics (3)
Introduces fundamental concepts of interactive graphics oriented toward computer-aided design systems used in engineering, architecture, and manufacturing. Topics include computer data structures for representation of two- and three-dimensional objects and algorithms for definition, modification, and display of these objects in applications. Discussion of special topics in interactive graphics.
Prerequisite: 21:198:101.
|
28:198:439
Image Processing and Analysis (3)
This course is an intensive study of the fundamentals of image processing, analysis, and understanding. Topics to be covered include: a brief review of the necessary mathematical tools, human visual perception, sampling and quantization, image transformation, enhancement, restoration, compression, reconstruction, image geometric transformation, matching, segmentation, feature extraction, representation and description, recognition, and interpretation.
Prerequisites: 21:640:335 and 327.
|
28:198:440
Computer Vision (3)
This course introduces basic concepts and methodologies of computer vision, and focuses on material that is fundamental and has a broad scope of applications. Topics include contemporary developments in all mainstream areas of computer vision e.g., image formation, feature representation, classification and recognition, motion analysis, camera calibration, stereo vision, Shape From X (shading, texture, motion, etc.), and typical applications such as biometrics.
Prerequisite: 21:640:327.
|
28:198:441
Database Programming (3)
Many technologies have been developed due to the interplay between World Wide Web development and databases on one hand and the growth of database applications in ecommerce on the other hand. Today, practically every ecommerce application has at least a web component and a database component. Many languages have been developed in order to deal with these interactions. This course will focus on accessing databases through the web, but also mention new developments in the field.
|
28:198:451
Network Technologies (3)
This course provides an in-depth study of the different transmission and network technologies that make up the internet infrastructure. Topics include: physical layer technologies, multiplexing and switching, wired and wireless LANS, cellular networks, ATM networks, multimedia formats and protocols, multicasting, traffic characteristics and measurements, and QoS.
|
28:198:458
Technologies Network Security (3)
This course provides both an in-depth theoretical study and a practical exposure to technologies which are critical in providing secure communication over the internet. Topics include: remote access security, web security, wireless security, email security, spam and spam filtering techniques, computer viruses and internet worms, honeypots and honeynets, security liability issues, and compliance.
Prerequisite: 28:198:356.
|
28:198:478
Software Tools for Solving Problems (3)
Students interact directly with industry and solve problems using various information-systems software tools. Company representatives present problems they are facing, and the students work in groups to develop a solution, which they present at the end of the semester. Presentation skills, working in groups, and using software tools for problem solving stressed.
Prerequisites: Junior or senior standing, permission of instructor.
|
28:198:482
Data Mining (3)
Covers the concepts
and principles of advanced data mining systems design; presents methods
for association and dependency analysis; classification, prediction,
and clustering analysis.
Prerequisite: 21&28:198:431.
|
21:198:481,482
Advanced Mathematics in Computer Science (3,3)
Covers one or more topics common to mathematics and computer science. Possible topics include applications of abstract algebra to data security problems, digital systems processing, automata theory, asynchronous machines and petri nets, applications of algebra to computer programming, formal language theory, advanced numerical analysis and its theory of errors.
Prerequisites: 21:198:102 and 21:640:237 or 238, or permission of instructor.
|
28:198:485
Special Topics in Computer Science/Information Systems (3)
The study of new and/or advanced topics in an area of computer science not regularly covered in any other CIS course. The precise topics to be covered, along with prerequisites, are announced in the semester prior to the offering of the course. A student may register for no more than two semesters of special topics courses.
Prerequisites: Junior standing and/or departmental approval.
|
28:198:486
Topics in Computer Science/Information Systems (3)
A continuation of 28:198:485.
Prerequisites: Junior standing and/or departmental approval.
|
28:198:490
Guided Design in Software Engineering (3)
This course focuses on the methodology for developing software systems. Methods and techniques for functional requirements analysis and specifications, design, coding, testing and proving, integration, and maintenance are discussed. Writing intensive.
Prerequisite: Senior standing or department approval.
|
21&28:198:491
Computer Science Project (3)
An opportunity for students to integrate the knowledge and skills gained in previous computer science work into an individual research project. Involves investigation of current literature as well as computer implementation of either a part of a large program or the whole of a small system. Topic should be consonant with the emphasis of direction chosen by the students in their computer science studies. Before registering for this course, students must find a faculty member who agrees to act as their adviser, and students must have a written project proposal approved by their faculty adviser. The proposal must be submitted and approved in the prior semester, usually the third week of November or April.
Writing intensive. Prerequisites: 28:198:490, senior standing, and project proposal approval.
|
21:198:493,494
Individual Studies in Computer Science (3,3)
Individual study for students interested in specialized study or research in computer sciences.
Prerequisite: Permission of instructor. No more than 3 credits may be taken from among 21:198:493,494, 495,496.
|
21:198:495,496
Internship in Computer Science or Information Systems (3,3)
Pursuit of a project of relevant educational value in an employment setting. Before registering for this course, students must find an employer and a faculty supervisor, and students must have a written internship proposal approved by the employer and faculty supervisor. Requires biweekly activity reports, a final report approved by employer and faculty supervisor, and a written evaluation by the employer.
Prerequisite: Approval of a proposal by faculty adviser. No more than 3 credits may be taken from among 21:198:493,494, 495,496.
|
|