Compilers take input programs written in a high-level language and generate equivalent programs in a low-level language. This course introduces the mathematical tools (formal languages and automata) necessary for recognizing and validating input programs and the computational techniques used to construct equivalent output programs. Students develop first-hand experience with the process by implementing a sample compiler as a course project. The tools and techniques introduced in this course can be applied across a wide range of applications.
CSCI 475 | Operating Systems
One the most complex software systems ever assembled, the modern operating system serves as the interface between the human and the machine. This course traces how the simple idea of ``resource sharing'' unravels into some of the most confounding problems and original breakthroughs in computer science. Course topics include process and thread management, input/output, CPU scheduling, synchronization primitives, memory management, and file systems.
CSCI 462 | Senior Project
A practical computer software development experience to incorporate topics learned in advanced computer science courses with the tools and techniques for software development studied in the software engineering class. Students may enroll in either the one-semester, one-unit 460 or the two-semester, 0.5 unit per semester sequence, but not both.
CSCI 461 | Senior Project
A practical computer software development experience to incorporate topics learned in advanced computer science courses with the tools and techniques for software development studied in the software engineering class. Students may enroll in either the one-semester, one-unit 460 or the two-semester, 0.5 unit per semester sequence, but not both.
CSCI 460 | Senior Project
A practical computer software development experience to incorporate topics learned in advanced computer science courses with the tools and techniques for software development studied in the software engineering class. Students may enroll in either the one-semester, one-unit 460 or the two-semester, 0.5 unit per semester sequence, but not both.
CSCI 455 | Principles of Database Systems
The management of data is one of the classical problems throughout the history of computing. This course centers around the fundamental concepts and theory that underpin the relational data model, which addresses numerous problems that plague data management, including data independence, consistency, information loss, and access performance. Course topics include the relational data model, database languages (e.g., SQL), relational database theory, database design (by decomposition), query execution, and considerations that affect system performance.
CSCI 440 | Capstone in Computer Science
The senior capstone course provides computer science majors the opportunity to integrate the knowledge that they have gained from across the curriculum. Students are encouraged to work in teams, and can pursue either an applied or theory project. Students choosing applied projects participate in the identification of a problem, develop a project proposal outlining an approach to the problem's solution, implement the proposed solution, and test or evaluate the result.
CSCI 431 | Introduction to Artificial Intelligence
This course introduces the student to the techniques of artificial intelligence. Students learn strategies for uninformed and informed (heuristic) search, knowledge representation, problem-solving, and machine learning. Additional topics may include motion planning, probabilistic reasoning, natural language understanding, and philosophical implications.
CSCI 425 | Advanced Topics in Computer Science
The topics are chosen each time the course is offered to meet the interests of students and instructors. Possible topics include computer architecture, computer modeling and simulation, networks, advanced graphics, and advanced artificial intelligence.
CSCI 370 | Theory of Computation
An introduction to formal models of computers and computation. Topics include formal languages and automata theory, computability, decidability, and Church's Thesis.
Pagination
- Previous page
- Page 2
- Next page