This course introduces NLP methods and applications including probabilistic models, text classification, linguistic representations, and contextual neural language models to process, understand, and generate text.
This is a class devoted to the study of securing distributed systems, with blockchain-based cryptocurrencies serving as our real platform of interest. We'll start with the fundamentals of Lamport's, Fischer's, and Douceur's results that fence-in all consensus system, and discuss Byzantine fault tolerance. We'll also look at the efficiency of the network architectures for peer-to-peer/distributed system communication and attacks on their security, such as denial of service attacks. And we'll review relevant applied cryptography such as elliptic curves.
Introduction to computer communication networks and protocols. Fundamental concepts in the design and analysis of computer networks. Topics include: layered network architectures, networked applications, network programming interfaces, transport, congestion, routing, data link protocols, local area and data center networks, network security, and wireless networks. Examples drawn from the Internet (e.g., TCP, UDP, and IP) protocol suite.
This course provides an overview of the important issues in information retrieval, and how those issues affect the design and implementation of search engines. The course emphasizes the technology used in Web search engines, and the information retrieval theories and concepts that underlie all search applications. Mathematical experience (as provided by COMPSCI 240) is required. You should also be able to program in Java or Python (other closely related languages may be acceptable).
Introduction to the efficient management of large-scale data. Principles for representing information in the relational model; 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) and distributed data processing paradigms.
Practical experience in the management of software development projects. Managing people, coaching, mentoring, planning, scheduling, evaluation, negotiation, and expectation management are explored. The focus is on the power of communication.
Practical experience in the management of software development projects. Managing people, coaching, mentoring, planning, scheduling, evaluation, negotiation, and expectation management are explored. The focus is on the power of communication.
Practical experience in the management of software development projects. Managing people, coaching, mentoring, planning, scheduling, evaluation, negotiation, and expectation management are explored. The focus is on the power of communication.
Practical experience in the management of software development projects. Managing people, coaching, mentoring, planning, scheduling, evaluation, negotiation, and expectation management are explored. The focus is on the power of communication.
Practical experience in the management of software development projects. Managing people, coaching, mentoring, planning, scheduling, evaluation, negotiation, and expectation management are explored. The focus is on the power of communication.