You are here: Home Undergraduate Courses
Document Actions

Courses

Undergraduate Course Listings

CSCI 1170 Engineering Computer Science I Laboratory [0-3]


The course includes hands-on instruction and laboratory exercises in developing programs written in a high level object-oriented programming language applying the principles taught in the CSCI 1370 lecture course. Corequisite: CSCI 1370. Equivalent course: CMPE 1170. A student may receive credit in only one course.

CSCI 1201 Introduction to Computer and Information Technology [2-0]


A computer literacy course to develop awareness of the expanding role of computer and information technology and to provide knowledge and skills related to personal and social uses of computers. Topics include applications of computers, societal and ethical issues involving computers, history, the Internet, packaged software and hardware and software terminology. Assignments will be given to provide hands-on experience in personal software packages and information networks. Students with limited or no computer experience are advised to enroll in CSCI 1300.

CSCI 1300 Foundations of Modern Information Technology [3-0]


The course presents the foundations of computer and information technology related to its expanding role in communicating, solving problems and acquiring information in all aspects of society. Knowledge and skills related to personal and professional uses of personal computers and information networks will be developed along with the critical thinking skills necessary to evaluate and learn new technologies as they become available. Topics include applications of computers, limitations and potentials of information technology, societal ethical issues involving computers, history and hardware and software terminology. Assignments will be given to provide hands-on experience in personal software packages and information networks.

CSCI 1360 Introductory Computer Science Concepts [3-0]


This course is recommended for students who need an introduction to the concepts of computer science and programming experience before taking CSCI 1380. Topics include concepts of computer hardware, software and networks; Internet services; and computer programming. Focuses on basic problem-solving techniques and algorithms development. Assignments will be given to provide hands on experience in a high-level language programming. Prerequisite: Student with computer experience. This course fulfills the core curriculum requirements.

CSCI 1370 Engineering Computer Science I [3-0]


An introduction to computer science and computer engineering. The fundamentals of a high-level programming language will be introduced. Methods of problem solving, techniques of algorithmic development and concepts of procedural and object oriented programming will be emphasized. Societal and social issues related to computer engineering will be introduced. Prerequisites: CSCI 1300 or equivalent experience and grade of "C" or better in MATH 1340 or placement in a higher-level Math course. Corequisite: CMPE 1170. Cannot receive credit for both CSCI 1380 and CMPE 1370. Will replace a grade received in CSCI 1380. Equivalent course: CMPE 1370. A student may receive credit in only one course.

CSCI 1380 Computer Science I [3-0]


An introduction to computer science and computer programming is given, in which the fundamentals of a high-level programming language will be introduced. Methods of problem-solving, techniques of algorithmic development and concepts of structured object oriented programming will be emphasized. Prerequisite: Concurrent Enrollment in MATH 1340.

CSCI 1381 Foundations of Computer Science [3-0]


This course presents an examination of the breadth of computer science that continues the introduction to the field of computer science first begun in CSCI 1380. Topics Include an introduction to the mathematical foundations of computing, basic computer architecture, assembly language, the operating system and networks, problem-solving algorithms and complexity, programming languages, software engineering, data organization, social and ethical issues of a computerized society and an overview of various computer science fields and topics. Programming projects will be given to reinforce and enhance the programming experience that began in CSCI 1380. Prerequisite: CSCI 1380.

CSCI 1387 Computer Science I (Honors) [3-0]


This course introduces a high-level programming language. Methods of problem-solving, techniques of algorithmic development and concepts of structured object-oriented programming will be emphasized. Students are required to complete an integrated project entailing the development and implementation of a program for solving a given problem. Prerequisites: Concurrent Enrollment in MATH 1340 or.

CSCI 1388 Foundations of Computer Science (Honors) [3-0]


This course gives an introduction to the mathematical foundations of computing, computer architecture, assembly language, the operating system and networks, problem-solving algorithms and complexity, programming languages, software engineering, data organization, social and ethical issues of a computerized society and an overview of various computer science fields and topics. Programming projects will be given to reinforce and enhance the programming experience that began in CSCI 1387. Prerequisite: CSCI 1380 or CSCI 1387.

CSCI 2302 Web Graphics and Animation [3-0]


This course introduces modern 2-D graphics and animation techniques and methods on the Web. Basic image processing techniques, image formats and client side scripting for Web use will be discussed. Current software tools for developing graphical dynamic Web sites will be presented. Students are required to develop and implement active Web pages.

CSCI 2320 Computer Programming in a Second Language [3-0]


Computer programming in a high-level programming language such as Ada, Modula-2, Java, LISP and PROLOG. May also cover two different languages, such as both LISP and PROLOG. Designed for students who already know how to program in another high-level language. May be repeated when languages change. Prerequisite: CSCI 1380.

CSCI 2333 Computer Organization and Assembly Language [3-0]


An introduction to computer organization, use of assembly language programming, basic instruction sets, arithmetic and logical operations, addressing modes and macro definition. Several computer programming projects are included. Prerequisite: CSCI 1381 or 1387 or CMPE 1370. Equivalent course: CMPE 2333. A student may receive credit in only one course.

CSCI 2344 Programming in the UNIX(r)/Linux Environment [3-0]


The course presents the UNIX file system, the commonly used utilities, editors, shell programming and scripting. It includes instruction in software development in the UNIX/Linux environment. In addition, a brief overview of the internal components of the operating system will be covered. Prerequisites: CSCI 1370, CSCI 1380 or CSCI 1387 or consent of instructor.

CSCI 2380 Computer Science II [3-0]


A second programming course includes problem solving by structured design; provides an introduction to elementary data structures, including linked lists, stacks, queues, trees and graphs, and advanced programming techniques, including recursion, sorting and searching. Prerequisite: CSCI 1381 or CSCI 1388 or CMPE 1370 or consent of instructor. Equivalent course: CMPE 2380. A student may receive credit in only one course.

CSCI 2388 Computer Science II (Honors) [3-0]


This course problem-solving by object-oriented design and development; covers elementary data structures, including linked lists, stacks, queues and binary trees, with an introduction to graphs, advanced programming techniques, including recursion and sorting and searching algorithms. Students are required to complete problem solving projects. Prerequisites: CSCI 1381, CSCI 1388 or consent of instructor.

CSCI 3300 Internship in Computer Science [3-0]


This course is designed to give students an opportunity to gain practical experience in the computer science career field by working with a participating employing firm or organization. The student will be supervised by a faculty member acting as a liaison between the University and the employing organization to ensure compliance with specific learning and experience requirements. The employment can be either paid or unpaid, and normally would include practical experience spread over one academic term or summer. A maximum of three hours of credit from CSCI 3300 or CSCI 3390 can be used toward the computer science major. May be repeated once. Prerequisite: Upper-division standing, minimum 12 hours of computer science completed and approved by both the department and employer providing the practicum/internship experience.

CSCI 3326 Object-Oriented Programming in Java [3-0]


The Java programming language and environment will be introduced with an emphasis on object-oriented programming. Application areas will include Internet based programming, applets, and HTML, and topics will include control structures, classes, methods, inheritance, Java libraries and packages. Objected-oriented aspects will include graphics, GUI, exception handling, multithreads, multimedia and networking. Prerequisites: CSCI 1380 or consent of instructor.

CSCI 3327 Object-Oriented Programming in Visual Basic [3-0]


The Visual Basic programming language and environment will be introduced with an emphasis on window-based programming and the use of objects in Visual Basic. Topics will include control structures, graphical user interface concepts, classes, methods, inheritance and the Visual Basic interface and libraries. Prerequisites: CSCI 1380 or consent of instructor.

CSCI 3333 Algorithms and Data Structures [3-0]


This course is a continuation of data structures topics covered in CSCI 2380. Content includes theoretical topics in algorithmic efficiency and complexity, along with abstract data types, including graphs, networks, trees and priority queues. Search topics, including hashing, trees, external search trees (B-trees) and sorting algorithms including external sorting are introduced and compared. Computational complexity topics include the Class P and NP, NP-completeness and Reducibility, NP-completeness Proofs and NP-complete Problems. Prerequisites: CSCI 2380 and concurrent enrollment in MATH 3373. Equivalent course: CMPE 3333. A student may receive credit in only one course.

CSCI 3334 Systems Programming [3-0]


This course covers the design and implementation of system software. It investigates the relationship between software design and machine architecture. Topics may include assemblers, macro processors, compilers, loaders, debugging environments, program development and archival tools, command language interpreters (shells), file systems, I/O support, processes, threads and interprocess communication. Prerequisites: CMPE 2333, or ELEE 3435 or CMPE 3435. Equivalent course: CMPE 3334. A student may receive credit in only one course.

CSCI 3336 Organization of Programming Languages [3-0]


This course describes the fundamental concepts of programming languages by discussing the design of the various language constructs, examining the design choices for these constructs, critically comparing design alternatives and discussing implementation techniques. The underlying theory and formal modes of describing the syntax and semantics including finite automata and regular expressions, context-free grammars, context sensitive languages and the Chomsky Hierarchy are included. Prerequisites: CSCI 2380.

CSCI 3340 Software Engineering [3-0]


A formal approach to the state-of-the-art techniques in software design and development. Emphasis will be on project planning, requirements, specification and system design and includes object design, testing and implementation. Provides the student with the opportunity to work on large projects in a group situation. Prerequisite: CSCI 2380 and three advanced hours in CSCI courses. Equivalent course: CMPE 3340. A student may receive credit in only one course.

CSCI 3341 Software Engineering II [3-0]


The course will cover the analysis of requirements and software architecture and with a major emphasis on object design, implementation, testing and validation, maintenance and software re-engineering. It will provide the student with the opportunity to work on large projects in a group situation. Prerequisite: CSCI 3340 or CMPE 3340. Equivalent course: CMPE 3341. A student may receive credit in only one course.

CSCI 3342 Internet Programming [3-0]


Focuses on programming techniques and methods and technologies on the Internet. Topics include HTTP (Hypertext Transfer Protocol) protocol, networking techniques, data transmissions and the use of Java Applets, multithreading, RMI (Remote Method Invocation), CGI (Common Gateway Interface) and Java Servlets in programming and Web site development. Prerequisites: CSCI 3326 or consent of instructor.

CSCI 3344 UNIX(r)/Linux Operating System [3-0]


This course provides a detailed study of operating system principles as seen in the UNIX(r)/Linux system kemel including initialization, scheduling, context switching, process management, memory management, device management and the file system. A student may receive credit in only one of the courses CSCI 3344 and CSCI 4334. Prerequisites: CSCI 3333 and CSCI 3334, or consent of instructor.

CSCI 3350 Numerical Methods [3-0]


This course studies the numerical solutions to various and mathematics. These problems include finding solutions to nonlinear equations, solutions to linear and nonlinear systems of equations, interpolation of data, approximation of functions, numerical integration and solutions to differential equations. It also studies the influence of data representation and computer architecture on the choice and development of algorithms. Equivalent course: MATH 3368, a student may receive credit in only one course. Prerequisite: MATH 1401 and CSCI 1380.

CSCI 4301 Digital Image Processing [3-0]


The course presents fundamental concepts and applications of digital image processing. Topics include basic color, image perception and transformation, image enhancement and compression and image analysis and computer vision. Prerequisite: CSCI 3333 or CMPE 3333. Equivalent course: CMPE 4301. Students may receive credit for only one course.

CSCI 4302 Multimedia Systems [3-0]


This course presents the broad field of multimedia systems. Topics include the digital interactive multimedia, creation of multimedia, and various issues involving technology, design and effectiveness of multimedia applications. Students will have the opportunity to learn programming techniques for integrating video, sound, animation and graphics for multimedia systems. Prerequisite: CSCI 3333 or consent of instructor.

CSCI 4310 Design and Analysis of Algorithms [3-0]


The course presents elements of the design and analysis of computer algorithms. Topics include in-depth study of algorithms' design strategies such as dynamic programming, divide-and-conquer and greedy methods; algorithms for graph problems, geometric problems and other selected problems; and computational complexity. Prerequisite: CSCI 3333 or consent of instructor.

CSCI 4325 Automata, Formal Languages and Compatibility [3-0]


The course presents formal computation models. Topics include finite state machine, pushdown state machine, Turing machine, halting problem, definition and properties of formal grammars and their languages as well as theory of computability and complexity including the complexity of optimization and approximation problems. Prerequisite: CSCI 3333 and CSCI 3336.

CSCI 4327 Compiler Construction [3-0]


Syntax analysis and semantic processing for a block structured language. Compilation vs. interpretation; lexical analysis based on finite automata; syntax-directed translation; symbol tables; run-time storage allocation; error detection and recovery; code generation and optimization. Students are required to write a compiler. Prerequisite: CSCI 3334 or CMPE 3334 or consent of the instructor. Equivalent course: CMPE 4327. A student may receive credit in only one course.

CSCI 4333 Database Design and Implementation [3-0]


Study of logical (hierarchical, network, relational) and physical (sequential, indexed, relative) organization of databases. Database management systems and their features, querying databases, distributed databases and data compression. Prerequisite: CSCI 3333 or CMPE 3333. Equivalent course: CMPE 4333. A student may receive credit in only one course.

CSCI 4334 Operating Systems [3-0]


This course provides a study of the basic concepts of operating systems: process management, memory management, file systems, resource allocation and protection. A student may receive credit for only one of the courses CSCI 3344 and CSCI 4334. Prerequisites: CSCI 3333 and CSCI 3334 or consent of the instructor. Equivalent course: CMPE 4334.

CSCI 4335 Computer Architecture [3-0]


A study of the operational units and their interconnections of a modern computer as well as the theory behind the design of the instruction set, control unit, registers, memory hierarchy and addressing modes, bus structures, input/output and storage units. Similarities between CISC and RISC architectures and related issues such as instruction level parellelism and superscalar processors are discussed. Prerequisite: CSCI 2333 or CMPE 2333 or CMPE 3437 and CSCI 3333 or CMPE 3333. Students may receive credit for only one of CSCI 4335, CMPE 4335, CMPE 4380 or ELEE 4380. Equivalent course: CMPE 4335.

CSCI 4336 Parallel and Distributed Computing [3-0]


Presents principles and practices of parallel and distributed computing. Topics include parallel and distributed computation models and architectures; design, analysis of parallel and distributed programming. Prerequisite: CSCI 4335 or CMPE 4335 or CMPE 4380. Equivalent course: CMPE 4336. A student may receive credit in only one course.

CSCI 4341 Topics in Computer Science [3-0]


Topics or problems in Computer Science; subject matter changes from semester to semester. May be repeated for credit as topic varies. Prerequisite: Consent of instructor.

CSCI 4343 Software Verification, Validation and Quality Assurance [3-0]


Course topics include methods for evaluating software for correctness and reliability including code inspections and their role in software verification; program proofs and testing methodologies; formal and informal proofs of correctness; unit and system testing techniques, testing tools and limitations of testing; statistical testing; and reliability models. Prerequisites: CSCI 3340 or CMPE 3340.

CSCI 4345 Computer Networks [3-0]


An introduction to data communication topics, including data transmission, encoding, data link control, switching, network topologies, protocols, internet working and data security. Examples of existing networks and network architectures are studied. Prerequisite: CSCI 3333 or CMPE 3333. Equivalent course: CMPE 4345. A student may receive credit in only one course.

CSCI 4346 Advanced Operating Systems [3-0]


This course provides 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. Prerequisite: CSCI 3344 or CSCI 4334 or consent of instructor.

CSCI 4350 Artificial Intelligence [3-0]


Study of intelligent machines and machine learning. Includes problem solving and heuristic search, natural language understanding, game playing, database and expert systems. Artificial Intelligence projects will be implemented using an AI language such as Lisp, Prolog, C++ or Ada. Prerequisite: CSCI 3333 or CMPE 3333. Equivalent course: CMPE 4350. A student may receive credit in only one course.

CSCI 4360 Interactive ComputerGraphics and Systems [3-0]


Presents fundamental concepts of computer graphics. Topics include display hardware, transformations, geometric modeling, shading two- and three-dimensional display algorithms and graphics software systems. Prerequisite: CSCI 3333 or consent of instructor.

CSCI 4363 Advanced Computer Networks and Network Security [3-0]


This course examines the internetworking architecture and routing, design and implementation issues related to secure and reliable networks, cryptography, firewalls, digital signatures, worms, viruses, logic bombs and spyware. Prerequisite: CSCI 4345 or CMPE 4345. Equivalent Course: CMPE 4363. A student may receive credit in only one course.

CSCI 4381 Interactive Systems and User Interface Design [3-0]


Presents principles and practice of information communication between user and system. The course examines results of past research, as well as evolving trends in interface design and implementation. Prerequisite: CSCI 3333, CMPE 3333 or consent of instructor. Equivalent course: CMPE 4381. A student may receive credit in only one course.

CSCI 4382 Computer Visualization [3-0]


Focuses on design and implementation of computer graphics systems to provide visual representation of large data sets. Presents current theory and practice of computer visualization systems and advanced display techniques. Prerequisite: CSCI 3333 or consent of the instructor.

CSCI 4390 Senior Project


Students will construct a software product, following it through the stages from initial specification to the final completed project, including user manual. Prerequisites: CSCI 3340 and consent of instructor.



This site conforms to the following standards: