CSCI - Computer Science/Programming

Courses

CSCI 107. Joy and Beauty of Computing. 3 Credits. (3 Lec) F

Examines the computing field and how it impacts the human condition. Introduces exciting ideas and influential people. Provides a gentle introduction to computational thinking using the Python programming language.

CSCI 111. Programming with Java I. 4 Credits. (3 Lec, 1 Lab) F,S

COREQUISITE: M 151Q. Introduction to programming: program design, analysis, and implementation in Java, including I/O, assignment, decision, iteration, scalar types, arrays, control structures, methods, classes, and common data types. No previous programming experience required.

CSCI 112. Programming with C I. 3 Credits. (2 Lec, 1 Lab) S

PREREQUISITE: CSCI 111 or EELE 101. C Programming knowledge. Introduces imperative programming and the C standard library. Course covers pointers, memory management and structures.

CSCI 132. Basic Data Structures and Algorithms. 4 Credits. (3 Lec, 1 Lab) F,S

PREREQUISITE: CSCI 111 and M 151Q. An examination of advanced Java and basic data structures and their application in problem solving. Data structures include stacks, queues and lists. An introduction to algorithms employing the data structures to solve various problems including searching and sorting, and recursion. Understanding and using Java class libraries. The laboratory uses Java. Introduces Big-O Notation.

CSCI 215CS. Social & Ethical Issues in CS. 3 Credits. (2 Lec, 1 Rec) F

PREREQUISITE: W core and US core. Social and ethical issues as they relate to computing, including privacy, risks, computer abuse, commerce, professionalism, free speech, intellectual property, social justice, and current issues. History of computing.

CSCI 232. Data Structures and Algorithms. 4 Credits. (3 Lec, 1 Lab) S

PREREQUISITE: CSCI 132. Advanced data structures and programming techniques and their application. Topics include: trees, balanced trees, graphs, dictionaries, hash tables, heaps. Examines the efficiency and correctness of algorithms. The laboratory uses Java.

CSCI 246. Discrete Structures. 3 Credits. (3 Lec) F

PREREQUISITE: CSCI 111. COREQUISITE: M 171Q. This course covers logic, discrete probability, recurrence relations, Boolean algebra, sets, relations, counting, functions, maps, Big-O notation, proof techniques including induction, and proof by contradiction.

CSCI 290R. Undergraduate Research. 1-6 Credits. (1-6 Ind; max unlimited) F,S

Directed undergraduate research which may culminate in a written work or other creative project. Course will address responsible conduct of research. May be repeated.

CSCI 291. Special Topics. 1-4 Credits. (1-4 Lec; 12 cr max) On Demand

Max 12 cr. PREREQUISITE: To be determined based on actual topic offered. Courses not required in any curriculum for which there is a particular one-time need, or given on a trial basis to determine acceptability and demand before requesting a regular course number.

CSCI 292. Independent Study. 1-3 Credits. (1-3 Ind; 3 cr max) On Demand

Max 3 cr. PREREQUISITE: Consent of instructor and approval of department head. Directed research and study on an individual basis.

CSCI 305. Concepts/Programming Languages. 3 Credits. (3 Lec) S

PREREQUISITE: CSCI 132 and CSCI 246. An examination of several programming paradigms, and languages, as well as their application and underlying execution model. Paradigms examined include imperative, object-oriented, functional, logic and string based. Students will gain exposure to a variety of languages such as C, C++, Scheme, Prolog and Perl.

CSCI 338. Computer Science Theory. 3 Credits. (3 Lec) S

PREREQUISITE: CSCI 246. COREQUISITE: M 172Q. Formal languages, theory, automata, Turing Machines, computability, the Church-Turing thesis, computational complexity, and NP-completeness.

CSCI 351. Systems Administration. 3 Credits. (3 Lec) S

PREREQUISITE: CSCI 112 and CSCI 232. The administration and management of Linux computer systems. Includes installation, user/process management, configuration of services and device handling. A thorough knowledge of Linux/Unix command structure is required.

CSCI 361. Computer Architecture. 3 Credits. (3 Lec) F

PREREQUISITE: CSCI 112 and CSCI 232. The structure and function of computer systems: CPU, memory, I/O. Includes digital logic, data type, instruction set design, pipelining, RISC, parallel processing, and assembly language programming.

CSCI 432. Advanced Algorithm Topics. 3 Credits. (3 Lec) F

PREREQUISITE: CSCI 246 and CSCI 232. A rigorous examination of advanced algorithms and data structures. Topics include average case analysis, probabilistic algorithms, advanced graph problems and theory, distributed and parallel programming.

CSCI 440. Database Systems. 3 Credits. (3 Lec) F

PREREQUISITE: CSCI 232. DBMS architecture; major database models; relational algebra fundamentals; SQL query language; index file structures, data modeling and management, entity relationship diagrams.

CSCI 441. Computer Graphics. 3 Credits. (3 Lec) S odd years.

PREREQUISITE: M 221 and CSCI 232. High resolution computer graphics. 3D graphics programming using a high level API. Vector mathematics for graphics. Graphics primitives. Curve and surface representations. Transformations using matrices and quaternions. Representing natural objects with particle systems and fractals. Shading and lighting models. Global illumination models. Color representations.

CSCI 442. Comp Vision: Robot Vision. 3 Credits. (3 Lec) S odd years.

PREREQUISITE: CSCI 232. Image processing techniques are used to quantify and manipulate visual information in diverse applications such as satellite imagery, robotic vision, and animation. Topics include enhancement, representation, restoration, segmentation, and digitization techniques.

CSCI 446. Artificial Intelligence. 3 Credits. (3 Lec) F even years.

PREREQUISITE: CSCI 232. The fundamental bases of artificial intelligence: knowledge representation, search, and learning. Applications include game playing, neural networks, and expert systems.

CSCI 447. Machine Learning: Soft Computing. 3 Credits. (3 Lec) F odd years

PREREQUISITE: CSCI 446 recommended. An exploration of biologically inspired machine learning models and algorithms, including evolutionary algorithms, neural networks, swarm intelligence, and fuzzy systems. An emphasis is placed on results from current research in computational intelligence. Students engage in class discussions and team projects.

CSCI 451. Computational Biology. 3 Credits. F odd years.

PREREQUISITE: CSCI 246. This course surveys classic and recent problems from computational biology. Topics covered include algorithms for genomic sequencing and searching, protein structure prediction, and regulatory network discovery.

CSCI 455. Embedded Systems: Robotics. 3 Credits. (3 Lec) S even years.

PREREQUISITE: CSCI 232 and CSCI 361 or EELE 371. The basic tools and techniques of embedded systems using robotics as a platform. Student teams will build an autonomous mobile robot, and learn to program it to perform increasingly sophisticated behaviors. Besides providing an introduction to autonomous mobile robot technologies, the students also learn key concepts of mechanics, electronics, programming techniques, and systems design and integration.

CSCI 460. Operating Systems. 3 Credits. (3 Lec) F

PREREQUISITE: CSCI 232 and CSCI 361 or EELE 371. Operating systems design including necessary hardware support. Processes, threads, concurrent programming, and scheduling. Memory, file, and I/O management. Security issues.

CSCI 466. Networks. 3 Credits. (3 Lec) F

PREREQUISITE: CSCI 232 and CSCI 112. How computer systems are organized into networks and how communication over networks is organized. Communication protocols and their design with an emphasis on current technology and implementation of software.

CSCI 468. Compilers. 4 Credits. (3 Lec, 1 Lab) S

COREQUISITE: CSCI 338 and CSCI 305. Senior capstone course. Compiler design and construction. Scanning, parsing, symbol tables, semantic analysis, intermediate representations, run-time memory management, target code generation, and optimization. Implementation of a small compiler.

CSCI 476. Computer Security. 3 Credits. (3 Lec) S

PREREQUISITE: CSCI 232. Introductory to computer security. Covers security issues in software design and development from technical, social and legal viewpoints. Topics include cryptography, security models, software security, authentication, authorization, and system security.

CSCI 477. Simulation. 3 Credits. (3 Lec) F

PREREQUISITE: CSCI 112 and a probability or statistics course. Discrete and continuous simulation modeling methodology using a computer simulation language; random number generation, output analysis, validation, and verification; application to varied system design and analysis problems. Cross-listed with I&ME 422.

CSCI 481. Program Assessment. 0 Credits. (0 Ind) F,S

PREREQUISITE: Graduating Senior. Student participation in Computer Science program assessment activities such as taking the Computer Science Major Field Test.

CSCI 482R. Interdisciplinary Project Instruction. 1 Credit. (1 Rct) F

PREREQUISITE: Senior standing. COREQUISITE: ESOF 322 First part of a senior capstone sequence for the interdisciplinary option. Classroom instruction that prepares a student to undertake an interdisciplinary project that relates computing to the student's minor.

CSCI 483R. Interdisciplinary Project. 3 Credits. (3 Ind) S

PREREQUISITE: CSCI 482R. Second part of a senior capstone sequence for the interdisciplinary option. Students undertake an interdisciplinary project and present their results through a written paper, a poster and an oral presentation.

CSCI 490R. Undergraduate Research. 1-6 Credits. (1-3 Ind; 12 cr max) On Demand

Max 12 cr. PREREQUISITE: Consent of instructor. Directed undergraduate research which may culminate in a research paper, journal article, or undergraduate thesis. Course will address responsible conduct of research. May be repeated.

CSCI 491. Special Topics. 1-4 Credits. (1-4 Lec; 12 cr max) On Demand

Max 12 cr. PREREQUISITE: To be determined based on actual topic offered. Courses not required in any curriculum for which there is a particular one-time need, or given on a trial basis to determine acceptability and demand before requesting a regular course number.

CSCI 492. Independent Study. 1-3 Credits. (1-3 Ind; 6 cr max) On Demand

Max 6 cr. PREREQUISITE: Junior standing, consent of instructor, and approval of department head. Directed research and study on an individual basis.

CSCI 494. Seminar. 1-4 Credits. (1-4 Sem; 4 cr max) On Demand

Max 4 cr. PREREQUISITE: Junior standing and as determined by each offering. Topics offered at the upper divisional level that are not covered in regular courses. Students participate in preparing and presenting discussion material.

CSCI 495. Field Work/Practicum. 1 Credit. (1 Ind; 2 cr max) F,S

Max 2 cr. PREREQUISITE: Junior standing and CSCI 232. Directed assistance to, and involvement in labs, with lower division CS students. Can only complete once.

CSCI 498. Internship. 1-6 Credits. (1-6 Ind; 6 cr max) On Demand

PREREQUISITE: Junior standing, consent of instructor, and approval of department head. An individualized assignment arranged with an agency, business or other organization to provide guided experience in the field.

CSCI 520. Distributed Systems. 3 Credits. (3 Lec) S even years.

PREREQUISITE: CSCI 432 and CSCI 466. The design and implementation of software systems that utilize multiple host computer networks as a foundation. Concurrency control, homogeneous and heterogeneous systems, interprocess communication, protocols and application design.

CSCI 532. Algorithms. 3 Credits. (3 Lec) S

PREREQUISITE: CSCI 232. Concrete time and space complexity; combinatorial algorithms; greedy algorithms; dynamic programming; probabilistic and randomized algorithms; branch-and-bound algorithms.

CSCI 538. Computability. 3 Credits. (3 Lec) F

PREREQUISITE: CSCI 338. Turing machine computability and decidability; abstract time and space complexity; intractability.

CSCI 540. Advanced Database Systems. 3 Credits. (3 Lec) F odd years.

PREREQUISITE: CSCI 440 or consent of instructor. Advanced database models including spatial, temporal, and object-oriented; advanced data indexing techniques, data warehousing and query optimization.

CSCI 541. Computer Graphics. 3 Credits. (3 Lec) S odd years.

PREREQUISITE: M 221 and CSCI 232. Realistic visualization of complex structures. Current research in high resolution computer graphics. Advanced graphics computational models. Animation techniques. Architectures for high resolution graphics.

CSCI 547. Machine Learning. 3 Credits. (3 Lec) S even years.

PREREQUISITE: CSCI 446. An exposure to advanced topics from the field of artificial intelligence with an emphasis on machine learning. Example topics include Bayesian learning, evolutionary computation, and cognitive science.

CSCI 548. Reasoning Uncertainty. 3 Credits. (3 Lec) S odd years

PREREQUISITE: CSCI 446 recommended. Background in probability recommended. An exploration of problem solving using structured probabilistic models. Topics in probabilistic representations, inference algorithms, and learning such models from data will be explored.

CSCI 550. Data Mining. 3 Credits. (3 Lec) F even years.

PREREQUISITE: A probability or statistics course. Clustering, classification and pattern recognition; performing automated discovery of knowledge from a data set.

CSCI 551. Adv Computational Biol. 3 Credits. (3 Lec) F odd years

PREREQUISITE: CSCI 432. This course examines a variety of algorithmic computational biology topics with an emphasis on elucidating new research problems.

CSCI 565. Wireless Networks and Mobile Computing. 3 Credits. (3 Lec) F even years

PREREQUISITES: CSCI 466 or (EELE 445 and EELE 447). This course introduces the topics of wireless networks and mobile computing. Students will be exposed to different technologies of mobile computing, both software and hardware, and be able to use them to perform wireless networking analysis.

CSCI 566. Advanced Networking. 3 Credits. (3 Lec) S odd years.

PREREQUISITE: CSCI 466. This graduate-level course covers advanced topics in networking, with emphasis on IP and wireless networks. After taking this course, the students are expected to know the state-of-the-art in networking algorithms, protocols and architectures, and to understand how networking research is done.

CSCI 575. Computational Research Topics. 3 Credits. (3 Lec; 9 cr max) S odd years.

Max 9 cr. PREREQUISITE: To be determined based on actual topic offered. Focus on a current research topic such as structured probabilistic models and explore the topic using a project-oriented format.

CSCI 580. Master's Project. 1-4 Credits. (1-4 Ind; 6 cr max) F,S,Su

Max 6 cr. PREREQUISITE: Graduate standing. A research or professional paper or project dealing with a topic in the field. The topic must have been mutually agreed upon by the student and his or her major advisor and graduate committee.

CSCI 590. Master's Thesis. 1-10 Credits. (1-10 Ind; max unlimited) F,S,Su

PREREQUISITE: Master's standing.

CSCI 591. Special Topics. 1-4 Credits. (1-4 Lec; 12 cr max) On Demand

Max 12 cr. PREREQUISITE: Upper division courses and others as determined for each offering. Courses not required in any curriculum for which there is a particular one time need, or given on a trial basis to determine acceptability and demand before requesting a regular course number.

CSCI 592. Independent Study. 1-3 Credits. (1-3 Ind; 6 cr max) On Demand

Max 6 cr. PREREQUISITE: Graduate standing, consent of instructor and approval of department head. Directed research and study on an individual basis.

CSCI 594. Seminar. 1 Credit. (1 Sem; 4 cr max) On Demand

Max 4 cr. PREREQUISITE: Graduate standing or seniors by petition. Course prerequisites as determined for each offering. Topics offered at the graduate level which are not covered in regular courses. Students participate in preparing and presenting discussion material.

CSCI 598. Internship. 1-6 Credits. (1-6 Ind; 6 cr max) On Demand

Max 6 cr. PREREQUISITE: Graduate standing, consent of instructor and approval of department head. An individualized assignment arranged with an agency, business or other organization to provide guided experience in the field.

CSCI 599. Graduate Consultation. 1-3 Credits. (1-3 Ind; 3 cr max) On Demand

PREREQUISITE: Master's standing and approval of the Dean of Graduate Studies. This course may be used only by students who have completed all of their course work, and thesis, if on a thesis plan but who need additional faculty or staff time or help.

CSCI 690. Doctoral Thesis. 1-10 Credits. (1-10 Ind; max unlimited) F,S,Su

PREREQUISITE: Doctoral standing.