A user-oriented approach to the management of large collections of data. Methods used for the storage, selection and presentation of data. Common...
The study of efficient algorithms and effective algorithm design techniques. Program design with emphasis on pragmatic and mathematical aspects of...
An introduction to concurrent and parallel programming, with an emphasis on language constructs. Major topics include: exceptions, coroutines, atomic...
The main objective of this course is to introduce students to fundamentals of database technology by studying databases from three viewpoints: those...
An introduction to contemporary user interfaces, including the basics of human-computer interaction, the user interface design/evaluation process, the...
An introduction to the fundamentals of operating system function, design, and implementation. Topics include concurrency, synchronization, processes,...
Models of computers including finite automata and Turing machines. Basics of formal languages with applications to the syntax of programming...
Finite automata and regular expressions. Pushdown automata and context-free grammars. Turing machines and undecidability. Time and space complexity....
Principles and practices of basic numerical computation as a key aspect of scientific computation. Visualization of results. Approximation by splines,...
A rigorous introduction to the field of computational mathematics. The focus is on the interplay between continuous models and their solution via...
See the Course Offerings List for topics available. Prereq: CS 240, 245, (246 or 247); Computer Science students only
Prereq: CS 240, 245, (246 or 247); Computer Science students only
An investigation into the role and function of software engineering practice in the construction of computer based systems. Topics include:...
Survey of organization and management theory. Systems theory and the systems approach. Systems design. Database concepts. Implementation and...
An introduction to networks, protocols, and distributed systems. Layered models, resource management, naming, addressing and routing, reliable...
An exposure to important concepts and issues in contemporary programming languages. Data types, abstraction, and polymorphism. Program structure....
Phases of compilation. Lexical analysis and a review of parsing. Compiler-compilers and translator writing systems. LEX and YACC. Scope rules, block...
Introduces students to the requirements definition phase of software development. Models, notations, and processes for software requirements...
Introduces students to the design, implementation, and evolution phases of software development. Software design processes, methods, and notation....
Introduces students to systematic testing of software systems. Software verification, reviews, metrics, quality assurance, and prediction of software...