Courses

CSCI-1000 (1) Computer Science as a Field of Work and Study

Introduces curriculum, learning techniques, time management and career opportunities in Computer Science. Includes presentations from alumni and others with relevant educational and professional experience.

CSCI-1220 (4) Virtual Worlds: An Introduction to Computer Science

Introduces the fundamental principles of computer science using an on-line virtual world called Second Life as the "Laboratory" for the course. Students will learn how to program by creating objects of interest in Second Life. In-class and in-world discussions and readings will introduce the student to important ideas and concepts that shape the field of computer science. Same as ATLS 1220.

CSCI-1240 (3) The Computational World

Introduces and explores the "Computational style of thinking" and its influence in science, mathematics, engineering and the arts. The course does not focus on the nuts and bolts of any particular programming language, but rather on the way in which computing has affected human culture and thought in the past half century. Same as ATLS 1240.

CSCI-1300 (4) Computer Science 1: Programming

Teaches techniques for writing computer programs in higher level programming languages to solve problems of interest in a range of application domains. Restricted to Computer Science (CSEN) undergraduate students only. Prerequisites: Restricted to Computer Science (CSEN) undergraduate students only.

CSCI-2270 (4) Computer Science 2: Data Structures

Studies data abstractions (e.g., stacks, queues, lists, trees) and their representation techniques (e.g., linking, arrays). Introduces concepts used in algorithm design and analysis including criteria for selecting data structures to fit their applications. Prereqs., CSCI 1300, and one of APPM 1350 or MATH 1300.

CSCI-2400 (4) Computer Systems

Covers how programs are represented and executed by modern computers, including low-level machine representations of programs and data, an understanding of how computer components influence performance and memory hierarchy. Prereq., CSCI 2270. Prerequisites: Restricted to Computer Science (CSMR) or all other College of Engineering majors only.

CSCI-2824 (3) Discrete Structures

Covers foundational materials for computer science that is often assumed in advanced courses. Topics include set theory, Boolean algebra, functions and relations, graphs, propositional and predicate calculus, proofs, mathematical induction, recurrence relations, combinatorics, discrete probability. Focuses on examples based on diverse applications of computer science. Restricted to Computer Science (CSMR) or all other College of Engineering majors only. Prereq., CSCI 2270. Prerequisites: Restricted to Computer Science (CSMR) or all other College of Engineering majors only.

CSCI-2830 (1-3) Special Topics in Computer Science

Covers topics of interest in computer science at the sophomore level. Content varies from semester to semester.

CSCI-2900 (1-3) Lower Division, Undergraduate Level Independent Study

Offers selected topics at the elementary level for students with little or no previous computing experience.

CSCI-3002 (3) Human-Centered Computing Foundations

Introduces practice and research in human-computer interaction, design of interactive systems, computer supported cooperative work, computer supported collaborative learning, educational technology, tools that support creativity, user-developed knowledge collections, and gaming.

CSCI-3104 (4) Algorithms

Covers advanced data structures, computational geometry, cryptography, dynamic programming, greedy algorithms, divide-and-conquer, graph algorithms (e.g., depth-first search), network algorithms (e.g., shortest paths), approximation algorithms. Prereqs., CSCI 2824 and two semesters of calculus. Prerequisites: Restricted to Computer Science (CSMR) or all other College of Engineering majors only.

CSCI-3112 (1-3) Human-Centered Computing Professional Development

Supports students in developing professional skills and practices in human-computer interaction, design of interactive systems, computer supported cooperative work, computer supported collaborative learning, educational technology, tools that support creativity, user-developed knowledge collections, and gaming. May be repeated up to 10 total credit hours. Same as ATLS 3112.

CSCI-3155 (4) Principles of Programming Languages

Study fundamental concepts on which programming of languages are based, and execution models supporting them. Topics include values, variables, bindings, type systems, control structures, exceptions, concurrency, and modularity. Learn how to select a language and to adapt to a new language. Prereqs., CSCI 2270 and one of CSCI 2400 or ECEN 2120. Prerequisites: Restricted to Computer Science (CSMR) or all other College of Engineering majors only.

CSCI-3202 (3) Introduction to Artificial Intelligence

Surveys artificial intelligence techniques of search, knowledge representation and reasoning, probabilistic inference, machine learning, and natural language processing. Introduces artificial intelligence programming. Restricted to Computer Science (CSMR) or all other College of Engineering majors only. Prereq., CSCI 2824. Prerequisites: Restricted to Computer Science (CSMR) or all other College of Engineering majors only.

CSCI-3287 (3) Database and Information Systems

Surveys data management, including file systems, database management systems design, physical data organizations, data models, query languages, concurrency, and database protection. Prereq., CSCI 3104.

CSCI-3302 (3) Introduction to Robotics

Introduces students to fundamental concepts in autonomous, mobile robotics: mechanisms, locomotion, kinematics, control, perception and planning. The course consists of lectures and lab sessions that are geared toward developing a complex robot controller in a realistic, physics-based multi-robot simulator. Prereqs., CSCI 2270 and 2824. CSCI 3302 and ECEN 3303 are the same course.

CSCI-3308 (3) Software Engineering Methods and Tools

Focuses on software engineering methods and tools for application development, including design and system organization; using and creating reusable libraries; building, testing, and debugging; and performance evaluation. Restricted to Computer Science (CSMR) or all other College of Engineering majors only. Prereq., CSCI 2270. Prerequisites: Restricted to Computer Science (CSMR) or all other College of Engineering majors only.

CSCI-3434 (3) Theory of Computation

Introduces the foundations of formal language theory, computability, and complexity. Shows relationship between automata and various classes of languages. Addresses the issue of which problems can be solved by computational means, and studies complexity of solutions. Prereq., CSCI 3104 and 3155.

CSCI-3656 (3) Numerical Computation

Covers development, computer implementation, and analysis of numerical methods for applied mathematical problems. Topics include floating point arithmetic, numerical solution of linear systems of equations, root finding, numerical interpolation,differentiation, and integration. Prereqs., two semesters of calculus, linear algebra, and either CSCI 1200 or 1300.

CSCI-3702 (3) Cognitive Science

Introduces cognitive science, drawing from psychology, philosophy, artificial intelligence, neuroscience, and linguistics. Studies the linguistic relativity hypothesis, consciousness, categorization, linguistic rules, the mind-body problems, nature versus nurture, conceptual structure and metaphor, logic/problem solving, and judgment. Emphasizes the nature, implications, and limitations of the computational model of mind. Prereqs., two of the following: PSYC 2145, LING 2000, CSCI 1300, and PHIL 2440. Same as LING 3005, PHIL 3310, and PSYC 3005.

CSCI-3753 (4) Operating Systems

Examines software comprising computing systems as it builds upon hardware to provide a programming environment. Looks at structure and function of editors, compilers/assemblers, linkers, etc. Basic operating systems concepts and systems programming in high-level languages. Prereqs., CSCI 2270 and one of CSCI 2400 or ECEN 2120.

CSCI-4000 (3) Entrepreneurship in Computing

Examines the development of new venture creation from the entrepreneur's perspective. Provides an understanding of the entire process including opportunity identification, feasibility study, fundraising, organization, team creation, and exit strategies through case studies, oral and written presentations, and outside speakers. Taught by an experienced entrepreneur. Prereq., CSCI 2270. Restricted to juniors/seniors.

CSCI-4113 (3) Unix System Administration

Introduces UNIX (Linux) system administration and related topics, including trouble-shooting system and network problems, hardware and software configuration and installation, basic scripting, and security aspects of Internet hosts. Students build a Linux server from the ground up, using provided computing resources, and must maintain and secure the server themselves. Prereqs., CSCI 2270 or instructor consent. Recommended prereq., CSCI 3308.

CSCI-4123 (3) Network Laboratory

Develops enterprise level design and configuration skills on local area networking via switching and routing, as well as the provisioning of remote data communications across diverse Wan technologies, using the latest available transport and security services. Prereq., CSCI 4273. Credit not granted for this course and TLEN 5460.

CSCI-4133 (3) Security Laboratory

Allows students to gain practical experience with network security in a simulated network environment. Topics to be covered include system hardening, firewalls, intrusion detection, vulnerability assessment, and investigation. Prereq., CSCI 4273. Credit not granted for this course and TLEN 5540.

Pages