Introduces curriculum, learning techniques, time management and career opportunities in Computer Science. Includes presentations from alumni and others with relevant educational and professional experience. Requisites: Restricted to students with 0-26 credits (Freshmen) Computer Science (CSEN-BS, CSEN-ADL, CSCI-BA or CSCI-ADL) majors 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. Credit not granted for this class and CSCI 1310 or CSCI 1320 or ECEN 1310. Requisites: Requires a prerequisite or corequisite course of MATH 1300 or MATH 1310 or APPM 1345 or APPM 1350 (all minimum grade C-).
Intended for students with some prior experience in programming and basic knowledge of variables, conditionals, and loops. Teaches techniques for writing computer programs in higher level programming languages to solve problems of interest in a range of application domains. Credit not granted for this course and CSCI 1300 or CSCI 1320 or ECEN 1310. Requisites: Requires a prerequisite or corequisite course of MATH 1300 or MATH 1310 or APPM 1345 or APPM 1350 (all minimum grade C-).
Intended for students with no prior experience in programming. Class outcomes and goals are identical to CSCI 1300, but uses problems and tools from Engineering. Teaching techniques for writing computer programs in higher level programming languages to solve problems of interest in Engineering and other domains. Credit not granted for this course and CSCI 1300 or CSCI 1310 or ECEN 1310. Requisites: Requires a prerequisite or corequisite course of MATH 1300 or MATH 1310 or APPM 1345 or APPM 1350 (all minimum grade C-). Restricted to College of Engineering or Computer Science (CSEN) or Pre-Engineering Arts and Science (PREN) majors only.
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. Requisites: Requires prerequisite courses of CSCI 1300 or CSCI 1310 or CSCI 1320 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. Requisites: Requires prerequisite course of CSCI 2270 and a prereq or coreq course of CSCI 2824 or MATH 2001 or ECEN 2703 or APPM 3170 (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. Requisites: 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. Requisites: 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-).
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. Requisites: Restricted to students with 27-180 credits (Sophomores, Juniors or Seniors) only.
Provides students with an understanding of the professional, ethical, legal and social issues and responsibilities of software developers, as well as providing them with the ability to analyze the local and global impacts of computing on individuals, organizations and society. Students may not receive credit for both this course and CSCI 4308, 4328 or 4338. Requisites: Requires prerequisite course of CSCI 3308 (minimum grade C-). Restricted to Computer Science (CSEN-BS, CSEN-ADL, CSCI-BA, CSCI-ADL) majors 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. Requisites: Requires prerequisite courses of CSCI 2270 and 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 3 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. Requisites: 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. Requisites: Requires prerequisite courses of CSCI 2270 and CSCI 2824 or MATH 2001 or ECEN 2703 or APPM 3170 and one of the following: APPM 3570, 4570, 4520, MATH 3510, 4510, CVEN 3227, ECEN 3810 or MCEN 4120 (all minimum grade C-).
Analyzes design of data systems, including data stored in file systems, database management systems and physical data organizations. Studies calculus of data models, query languages, concurrency and data privacy and security. Requisites: 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. Same as ECEN 3303. Requisites: Requires prerequisite courses of CSCI 2270 and CSCI 2824 or ECEN 2703 or APPM 3170 or MATH 2001(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. Requisites: 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. Requisites: 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. Requisites: Requires prerequisite courses of CSCI 1300 or CSCI 1310 or CSCI 1320 and APPM 1350 or MATH 1300 and APPM 1360 or MATH 2300 and MATH 3130 or APPM 3310 or CSCI 2820 (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.
Analyzes the software that extends hardware to provide a computing environment, including he role of linkers, file systems, resource sharing, security and networking. Studies the history of operating system organization and design and their influence on security, functionality and reliability. Requisites: Requires prerequisite courses of CSCI 2270 and either CSCI 2400 or ECEN 3350 (all minimum grade C-).