COURSE DETAIL
COURSE DETAIL
COURSE DETAIL
The course consists of two parts, each of fundamental importance for any serious approach to Computer Science: logic and discrete structures. Logic plays a very important role in computer architecture (logic gates), software engineering (specification and verification), programming languages (semantics, logic programming), databases (relational algebra and SQL the standard computer language for accessing and manipulating databases), artificial intelligence (automatic theorem proving), algorithms (complexity and expressiveness), and theory of computation (general notions of computability). Computer scientists use discrete mathematics to think about their subject and to communicate their ideas independently of particular computers and programs. In the course, students consider propositional logic as well as predicate calculus. Students treat propositional logic and predicate calculus as formal systems. Students learn how to produce and annotate formal proofs. As application students briefly consider the programming language Prolog.
COURSE DETAIL
Databases encompass many areas of computer science, from formal logic to programming languages, from operating systems to algorithms and data structures. This course covers in detail the main language for relational databases, SQL. It also cover the theoretical query languages on which SQL's core is based, namely relational algebra and relational calculus. Other important topics covered during the course include normal forms, transaction processing, concurrency control, incomplete data and rudiments of query optimization. Topics include the relational model and rudiments of SQL; query languages: relational algebra and calculus; multisets, grouping and aggregation; database design: constraints and normal forms; advanced SQL: nested queries, triggers, null values, transaction management: concurrent schedules, conflict-serializability, locking; database access from applications: using SQL in a host programming language; and basics of indexing, query evaluation and optimization.
COURSE DETAIL
COURSE DETAIL
COURSE DETAIL
COURSE DETAIL
COURSE DETAIL
COURSE DETAIL
A compiler is a computer program that translates text written in a given language (called the source language) into another language (the target language). With most compilers the source language is a high-level programming language (e.g., C, C++, Java), and the target language is a lower-level representation such as assembly language or byte code. This course focus is on compiler techniques needed to implement programming languages on a virtual machine. The aims are to improve programming skills by learning how a compiler works; to apply the theoretical foundations of compilation techniques; to design and implement a compiler for a small programming language; to learn about virtual machines (the JVM in particular); and to practice software engineering design principles on a medium-sized project. This course covers both practical and theoretical aspects of a compiler. Our main emphasis is on the compiler frontend (i.e., scanning, parsing, semantic analysis) and on code-generation for the JVM.
Pagination
- Previous page
- Page 81
- Next page