Introduces curriculum, learning techniques, time management and career opportunities in Computer Science. Includes presentations from alumni and others with relevant educational and professional experience. Prerequisites: Restricted to students with 0-26 credits (Freshmen) only.

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.

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.

Teaches techniques for writing computer programs in higher level programming languages to solve problems of interest in a range of application domains. This class is intended for students with little to no experience in computing or programming.

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. Prerequisites: Requires prerequisite courses of CSCI 1300 or ECEN 1030 or ECEN 1310 and APPM 1345 or APPM 1350 or MATH 1300 or MATH 1310 (all minimum grade C-).
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 and the memory hierarchy influence performance. Prerequisites: Requires prerequisite course of CSCI 2270 (minimum grade C-).
Introduces the fundamentals of linear algebra in the context of computer science applications. Includes vector spaces, matrices, linear systems, and eigenvalues. Includes the basics of floating point computation and numerical linear algebra. Prerequisites: Requires prerequisite courses of CSCI 2270 and APPM 1360 or MATH 2300 (all minimum grade C-).
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. Prerequisites: Requires prerequisite or corequisite course of CSCI 2270 and a prerequisite course of MATH 1300 or MATH 1310 or APPM 1350 or APPM 1345 (minimum grade C-).

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

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

Introduces the practice and research of human-centered computing, including the evolution of human-computer interaction to its forms today and the techniques of user-centered design. The course will survey topics that include social computing; tangible computing; mobility; and more. It will cover computing in society at large with respect to domains such as health, education, assistive technology, emergency response, and environment. Prerequisites: Restricted to students with 27-180 credits (Sophomores, Juniors or Seniors) only.
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. Prerequisites: Requires prerequisite courses of APPM 1360 or MATH 2300 and one of the following: CSCI 2824, ECEN 2703, APPM 3170 or MATH 2001 (all minimum grade C-).

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.

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. Prerequisites: Requires prerequisite courses of CSCI 2270 and CSCI 2824 or ECEN 2703 or APPM 3170 or MATH 2001 (all minimum grade C-).
Surveys artificial intelligence techniques of search, knowledge representation and reasoning, probabilistic inference, machine learning, and natural language processing. Introduces artificial intelligence programming. Prerequisites: Requires prerequisite courses of CSCI 2270 and one of the following: APPM 3570, 4570, 4520, MATH 3510, 4510, CVEN 3227, ECEN 3810 or MCEN 4120 (all minimum grade C-).
Surveys data management, including file systems, database management systems design, physical data organizations, data models, query languages, concurrency, and database protection. Prerequisites: Requires prerequisite course of CSCI 3104 (minimum grade C-).
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. CSCI 3302 and ECEN 3303 are the same course. Prerequisites: Requires prerequisite courses of CSCI 2270 and CSCI 2824 or ECEN 2703 or APPM 3170 (all minimum grade C-).
Covers tools and practices for software development with a strong focus on best practices used in industry and professional development, such as agile methodologies, pair-programming and test-driven design. Students develop web services and applications while learning these methods and tools. Prerequisites: Requires prerequisite course of CSCI 2270 (minimum grade C-).
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. Prerequisites: Requires prerequisite courses of CSCI 3104 and CSCI 3155 (all minimum grade C-).
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. Prerequisites: Requires prerequisite courses of CSCI 1300 and APPM 1350 or MATH 1300 and APPM 1360 or MATH 2300 and MATH 3130 or APPM 3310 (all minimum grade C-).

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