A course on the mathematical foundations of programming languages, focusing on semantics and types. Students will learn to build language features and prove them correct using the Coq proof assistant.
Introduction to formal language theory. Topics include finite state languages, context-free languages, the relationship between language classes and formal machine models, the Turing Machine model of computation, theories of computability, resource-bounded models, and NP-completeness. It is recommended that students have a 'B-' or better in CMPSCI 311 in order to attempt CMPSCI 501.
Introduces students to the principal activities involved in developing high-quality software systems. Topics include: requirements analysis, formal specification methods, process definition, software design, and risk management.
Introduction to the efficient management of large-scale data. Principles for representing information in the relational model and semi-structured data models (XML, JSON); query languages for analyzing and manipulating data (SQL and others); core systems principles for data management (file organizations, query optimization, indexing, distributed data processing, concurrency control).
Late-imperial China during the Song, Yuan, Ming and Qing dynasties, with special emphasis on China's contacts with the maritime nations of the West and Japan from the 16th through the 19th centuries. How and why the Middle Kingdom's ancient cultural traditions were assailed by internal and external forces.
This course will examine the movement of people throughout the United States from the period of Reconstruction to the current immigration debates. Special attention will be paid to the movement of African Americans from South to North, and the movement of immigrants from Europe, Asia, and South America through the twentieth century. The course will also consider immigration law and policy. Focus will be on primary and secondary source readings.
The structure of digital computers from the logic level to the system level. Topics include: the design of components such as arithmetic units; the organization of sub-systems such as the memory; the interplay between hardware and software; the von Neumann architecture and its performance enhancements such as cache memory, instruction and data pipelines, coprocessors, and parallelism.
Prerequisite for undergraduates: CMPSCI 391IB with a grade of C or better.
Practical writing in the fields of audiology and speech-language pathology, including diagnostic report and research paper formats. Emphasis on revision and peer editing. Satisfies Junior Year Writing requirement.
The emergence of speech and language milestones in English-speaking children with emphasis on the development of phonology, semantics, syntax, and pragmatics, and how these aspects of language may be influenced by cognitive development. Satisfies the Integrative Experience requirement for BS-ComDis majors. Prerequisite: LINGUIST 201 or equivalent.