| Number | Title | Credits | Prerequisites |
| |
|
| CS*U 1100 |
Structures of Computer Science |
3 |
|
| An introductory course in the discrete structures used in computer science and information technology. Emphasis will be placed on the ability to solve problems and develop logical thinking. Topics such as sets, functions, elementary combinatorics, discrete probability, logic, Boolean algebra, recursion and graphs will be covered through the use of algorithmic and concrete construction. The learned materials are reinforced by computer laboratory assignments. This course also fulfills the Mathematical Reasoning requirement of the Core Curriculum. |
|
| CS*U 1145 |
Computers for Scientists |
3 |
|
| Basic topics in computer science and application of computer software in the natural and life sciences. Workings of a computer system, spreadsheets and statistical analysis will be covered, including laboratory assignments. |
|
| CS*U 1400 |
Discrete Structures |
4 |
|
| This course covers basic materials in discrete structure and algorithms which are used in computing science, information technology, and telecommunications. Topics include sets, permutation/combinations, functions/relations/graphs, sum/limit/partition, logic and induction, recursion/recurrence relation, system if equations and matrices, graphs/digraphs/networks, searching and sorting algorithms, database structure and data analysis. Practical examples of applications will be shown and programming will be used to reinforce understanding of the concepts.
|
|
| CS*U 1450 |
Introduction to Web Programming |
3 |
|
| Introduces students to the world of computer science, information technology, and communication science through the Internet and World Wide Web. No programming background is required. We will focus on areas such as Web design, internet communication, and applications.
|
|
| CS*U 1600 |
Computer Science I |
3 |
|
| An introduction to computer problem-solving methods, algorithm development, and computing concepts using a high-level programming language. Emphasis will be placed on program design, coding, debugging, and documentation of programs. This course together with CS 1100: Structures of Computer Science, serve as the introductory courses for both the computer science and the information science major.
|
|
| CS*U 1610 |
Computer Science I Lab |
1 |
|
| COMPUTER SCIENCE I LAB A series of programming and laboratory assignments to reinforce the materials learned in CS 1600.
|
|
| CS*U 2000 |
Computer Science II |
3 |
|
| A second-level programming course with concentration on object-oriented programming techniques. Topics include: classes, subclasses and inheritance, polymorphism; class hierarchies; collection classes and iteration protocols.
|
|
| CS*U 2010 |
Computer Science II Lab |
1 |
|
| COMPUTER SCIENCE II LAB A series of programming and laboratory assignments to reinforce the materials learned in CS 2000.
|
|
| CS*U 2200 |
Data Structures |
4 |
CS*U 1600 |
| A survey and analysis of the major types of structure in programs that handle data: arrays, stacks, queues, linked lists, trees and graphs; recursive, iterative, search and sort techniques. Methods of organizing and manipulating files will be referenced. |
|
| CS*U 2201 |
Systems Analysis |
4 |
CS*U 1600 |
| Analysis and design of computerized information systems. Topics include planning and design of information systems, configuration analysis, cost analysis, proposal development. |
|
| CS*U 2350 |
Information and Web Programming |
4 |
|
| This course provides undergraduate students in all disciplines with an introduction to digital information and communication systems and technologies and their applications. Emphasis will be on internet which supports access to (and transmission of) information of unprecedented scale and availability and on the exercises for developing basic skills, reinforcing the learned material, and enhancing studies in their disciplines.
|
|
| CS*U 2400 |
Applied Database Systems |
4 |
|
| This course covers practical aspects of the structure of database systems and the way information can be retrieved and utilized efficiently. Projects and case studies in the applications domain are drawn from the natural sciences, the life sciences, the social sciences, and business/commerce. Topics include data modeling, database systems structure, database searching by similarity vs homology, retrieval through the internet and WWW, data analysis, and examples of database design using SQL and ACCESS.
|
|
| CS*U 3130 |
UNIX System Programming |
4 |
CS*U 2200 |
| An introduction to systems programming under the UNIX operating system, using the C and C++ programming languages. UNIX concepts include processes and scheduling, I/O and queues and standard system utilities and functions. |
|
| CS*U 3300 |
Internet and Web Programming |
4 |
|
| This course covers web programming in the Internet and interactive environment. Students will gain understanding of operating system usage on a server and interactive web system design. Languages used include PERL, HTML, CGI and JAVA script. |
|
| CS*U 3400 |
Java Programming |
4 |
|
| This course covers Java programming and internet computing with various applications. Topics include: Java programming, object-oriented programming, graphical user interfaces (GUI’s) applets and applications, multimedia, files and streams and server communications. |
|
| CS*U 3500 |
Data Base Systems |
4 |
CS*U 2200 |
| An examination of techniques for storage and retrieval of information using the data base approach. CODASYL, hierarchical and relational structures will be studied. Both mainframe and PC packages will be included. |
|
| CS*U 3593 |
Computer Organization |
4 |
CS*U 2200 |
| A further look at the design of a computer system, including instruction decoding and execution, memory organization, caching, I/O channels and interrupt systems. RISC and CISC paradigms. Microcoding, pipeline, multiple instruction issue and multiprocessing |
|
| CS*U 3595 |
Operating Systems |
4 |
CS*U 2200 |
| The objective is to develop an understanding of the role of operating systems in the management of the hardware used to process application programs. Problems of resolving deadlock, exclusion, and synchronization, and inter process communication, queuing and network control are covered. Topics include: memory management, device management, interrupt systems and systems programming. |
|
| CS*U 3598 |
Software Engineering |
4 |
CS*U 2200 |
| Emphasis is placed on software design process, software implementation, software testing, and maintenance. System and software planning, requirement analysis, and software concept will be discussed. Topics covered include detailed design tools, data structure-oriented design, program design, program implementation, and testing. |
|
| CS*U 3700 |
Network and Client/Server Computing |
4 |
|
| This course deals with network computing the client/server environment. Topics include: operating systems, network protocols, network architecture, network security and network computing using languages such as PERL, Visual Basic and Java. |
|
| CS*U 3850 |
Information Retrieval Systems |
4 |
CS*U 2200 |
| The basic concepts and principles of information retrieval, covering the definition, nature, and needs of information systems. Course topics include the design of IRLs, algorithms for document and request translation, natural to descriptor language transformation, semantic information data base organization, and feedback problems in information retrieval systems. Application in MIS and expert systems will be discussed. |
|
| CS*U 4020 |
Bioinformatics |
4 |
|
| This course involves the study of the sequence, structure and function of genes and proteins in all living organisms. The machine learning, data mining, information fusion and computational techniques for analyzing large biological data sets will be presented. Topics include: genomics, proteomics, phylogenetics,microarray and gene expression, disorder and disease, virtual screening and drug recovery,databases, data mining, and ethica, societal, and legal issues. This course will have a laboratory componant and exercises. |
|
| CS*U 4080 |
Computer Algorithms |
4 |
CS*U 2200 |
| The study of a broad variety of important and useful algorithms for solving problems suitable for computer implementation. Topics include mathematical algorithms, sorting and searching, string processing, geometric algorithms, graph algorithms, combinatorial optimization techniques, and other advanced topics, average and worst-case analysis, time and space complexity, correctness, optimality, and implementation. |
|
| CS*U 4090 |
Theory of Computation |
4 |
CS*U 1600 or equivalent |
| An introduction to the classical and contemporary theory of computation: finite state automata and regular expressions, context-free languages and push-down automata, computability by Turing machines and recursive functions; undecideability problems and the Chomsky hierarchy; introduction to computational complexity theory and the study of NP-complete problems. |
|
| CS*U 4100 |
Software Engineering Applications |
4 |
|
| Emphasis is placed on the process and applications of object-oriented software development: software requirement analysis, design, implementation, testing and maintenance. Topics include: fundamental object-oriented concepts, modeling with UML, Java-based technologies, design patterns, design rationale, configuration management, and quality control. A large team project is required in this course.
|
|
| CS*U 4494 |
Computer Architecture and Parallel Processing |
4 |
CS*U 3593 |
| Study of the evolution of computer architecture and introduction to parallel processing and parallel computer systems. Topics include: pipelining and vector processing, array processors and multiprocessor systems, future trends and new concepts in computing and their realization issues, data-driven computations, and VLSI architecture. |
|
| CS*U 4510 |
Computer Security Systems |
4 |
CS*U 2200 or permission |
| Topics include vulnerabilities of operating systems and data bases, types of attacks, hardware aids, administrative responsibilities, classical and public-key encryption, and disaster recovery and planning. |
|
| CS*U 4515 |
Advanced Data Base Systems |
4 |
CS*U 3500 or permission |
| Emphasis is placed on effective data base design. Topics include concurrency control, recovery techniques, security, and integrity considerations. Concepts and design principles, distributed data base systems, and data base machines will also be presented. |
|
| CS*U 4520 |
Object-Oriented Modeling and Design |
4 |
|
| This course takes an object-oriented approach to software development based on modeling objects from real world and then using the model to build language-independent design organized around those objects. It covers: introduction to object-oriented technology, modeling concepts, design methodologies, implementation and applications. |
|
| CS*U 4596 |
Programming Languages |
4 |
CS*U 2200 |
| Syntactic and semantic properties of computer languages drawn from diverse application area (scientific, list processing, pattern matching, etc.). Issues that arise in the design and implementation of programming languages, data control, and storage management. |
|
| CS*U 4597 |
Artificial Intelligence |
4 |
CS*U 2200 |
| Definition and rational of heuristic approach; cognitive processes; objectives and scope of artificial intelligence; general information processing and problem solving, including learning, representation, adaptation, and use of knowledge; analysis and simulation of inductive and deductive process; natural language processing; robotics: man-machine interaction. |
|
| CS*U 4615 |
Data Communications and Networks |
4 |
CS*U 2200 or senior standing |
| The course presents the basic concepts of data communications: data transmission, data encoding, data link control, multiplexing, error detection techniques. It covers communication networking techniques: switching, protocols, line control procedures, local networks. Communication carrier facilities and systems planning considerations will also be discussed. |
|
| CS*U 4621 |
Machine Learning |
4 |
|
| This course covers methods, models and algorithms used in exploratory data analysis and knowledge discovery of large-scale data sets and multi-modal databases in complex living or artificial systems. Topics include induction logic reasoning, statistical inference, support vector machines, graph algorithms, neural networks, and evolutionary computation. Practical projects will be drawn from information engineering, computing and information retrieval.
|
|
| CS*U 4625 |
Wireless Networks |
4 |
|
| This course covers the architecture, protocols, and applications of wireless communications and networks. Topics include: wireless networking, routing, standards including 802.11, Bluetooth and others; embedded operating systems, programming tools, power consumption, mobility, resource management, operating systemsand security. Examples and experiments will be drawn from ad-hoc and sensor networks, wireless LAN, satellite networks, networking and human-machine interactions.
|
|
| CS*U 4631 |
Data Mining |
4 |
|
| This course covers algorithms, standards and applications for data mining on large scale database systems in order to find fundamental principles, properties and phenomena which have or have not been known before. Topics include algorithms and prediction models (such as XML and PMML), API's (such as SQL/MM, Java API, OLE DB and OLAP), and meta data and Web standard's (such as UML and SOAP). Application examples will be drawn from science business, medicine, internet and the WWW.
|
|
| CS*U 4650 |
Cyberspace: Issues and Ethics |
4 |
|
| The impact of computer information and communication technology on the way people act, think, live, behave, and communicate will be studied. Students will be given hands-on experience of the Internet. Information and communication facilities such as the World Wide Web, gopher, chat groups, and Bulletin boards are investigated. The course is designed to promote the student’s awareness of and sensitivity to the ethical and social dimensions of living in the contemporary world, which is undergoing an information revolution. |
|
| CS*U 4700 |
Network and Client Server |
4 |
|
| This course deals with network computing the client/server environment. Topics include: operation systems, network protocols, network architecture, network security and network computing using languages such as PERL, Visual Basic and Java.
|
|
| CS*U 4800 |
Project and Internship |
4 |
Senior standing or permission |
| Students will work in teams on large projects selected from practical problems in the public or private sector. Students also gain on-job experience by working as interns in the field of computer science and information technology. |
|
| CS*U 4900 |
Seminar and Directed Study |
4 |
Senior standing or permission |
| Students attend seminars given by outside professionals, read technical articles, and present their study under the guidance of the instructor. Students will gain state-of-the-art knowledge and information in computer and information science. |