Download Computer Science

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Business intelligence wikipedia , lookup

SQL wikipedia , lookup

PL/SQL wikipedia , lookup

Relational model wikipedia , lookup

Database model wikipedia , lookup

Operational transformation wikipedia , lookup

Transcript
Computer Science - State Exam
(Updated in Fall 2015 )
Required Courses
I. C++ Programming: COS120
1. C++ Standard /predefined/ Data Types and abstract /user
defined/ Data Types: literals, defined constants, variables.
2. Expressions in C++: Operands and Operators. Precedence and
associativity of Arithmetic, Relational, Logical and Assignment
operators.
3. Routine concept in C++: function signature /prototype/,
function call and function definition. Top-Down Design with
Functions.
4. Executable Statements: assignment, decision, repetition.
5. Data structures: Arrays and Structs.
6. Recursion and Recursive Functions – examples.
7. Indirect memory access using Pointers and operators for
dynamic memory allocation/deallocation.
II. Discrete Structures: COS 150
(COS 250)
1. Relations of equivalence and partial orders
2. Formulae for the number of combinatorial configurations
3. Minimal spanning tree (Prim's and Kruskal's algorithms)
4. The fundamental principles of counting. Permutations and
combinations.
5. Relations and their properties.
6. Graphs: Euler trails and circuits.
III. Fundamental Data Structures: COS221
1. Classes – polymorphism, c++, inheritance and templates
2. Algorithms’ Complexity. Recursion.
3. Binary Search Trees: AVL tree
4. Multiple Search Trees: B-trees
5. Priority queues: heaps, skew heaps
6. Linear Data Structures: list, queue, stack. Iterators.
7. Heap-sort, q-sort, merge-sort.
8. Strings. String Pattern Matching. Knuth-Morris-Pratt and BoyerMoore algorithms.
9. Dept-First and Breath-First Search
IV. Computer Architecture: COS 235
1. Describe the Karnaugh map method for minimizing the Boolean
functions
2. Compare the two architectures: CISC and RISC. Advantages and
disadvantages.
3. Cache memory mapping algorithms. Direct mapping
4. Cache memory mapping algorithms. Fully Associative mapping
5. Cache memory mapping algorithms. Set-associative mapping
6. Processor Structure and Function. Instruction Cycle and
Instruction Pipelining
7. Digital Logic. Combinational Circuits
8. Digital Logic. Sequential Circuits
9. Digital Logic. Gates
V. Object-Oriented Languages: COS 240
1. Classes and Objects. Data fields, member functions, properties.
Initialization and sending messages. Examples.
2. Inheritance as OOP concept. Discuss the relation sub class –
super class. Examples.
3. Polymorphism as OOP concept. Discuss dynamic /late/ binding.
Examples.
4. Abstract Classes and Interfaces as OOP concept. Examples.
5. Classes + Objects = Programs. From Structured Programming to
Object Oriented Programming. Thinking in Objects.
6. Object Oriented Modeling and Object Oriented Design. Class
design guidelines.
VI. Software Development Technologies: COS315
1. Describe and discuss how UML is used to model the software
development process in the requirements capture and analysis
phases. Your description must cover use cases, class and
interaction diagrams and statecharts.
2. Describe and discuss the agile development planning activity,
including team velocity, and burn-down chart.
3. Describe and discuss four main practices of agile software
development.
4. Describe and discuss the use of design patterns during the
design phase of software development.
5. Describe and discuss the use of OO design principles in modern
software development.
Elective courses
I. Concepts of Programming Languages: COS 220
(Fundamentals of Programming Languages: COS 201)
1. Styles in Programming classified – Overview.
2. Structured Programming – basic principles. Examples.
3. Object Oriented Programming – basic principles. Examples.
4. The subroutine concept: routine, co-routine, procedure,
function, method, member function, constructor, destructor.
Overloaded functions, default-arguments functions.
5. Data Transfer to/from routines: parameter passing mechanisms
and returned values.
6. Exceptions and Exception Handlers. Structured and Unstructured
Exception handling techniques.
7. Fundamentals of Logic programming: PROLOG.
8. Fundamentals of Functional Programming
II. Assembly Language: COS260
1. Assembly language – signed and unsigned arithmetic.
2. Data Representation - Floating point representation
3. Data Representation - Signed and unsigned integers
4. Addressing modes - OFFSET, pointers PTR, etc.
5. Byte ordering. Little Endian - Big Endian
III. Database Management Systems: INF (COS) 280
1. Logical Database Design: ER, Relational, Mapping
2. Normalization: Normal forms
3. Relational Algebra and Relational Calculus
4. SQL: CREATE statement
5. SQL: INSERT, DELETE, and MODIFY statements.
6. SQL: SELECT statement
7. SQL: Join
8. SQL: sub-queries
9. Concurrency Control and Transaction Processing.
IV. Compiler Theory: COS 301
1. Language Processors – Description, Basic principles,
Classification.
2. Regular Expressions. Definition. Examples. Syntax graphs –
generators of strings.
3. Context Free Grammars /CFG/. Definition. Examples. Chomsky
notation vs. BNF notation. CFG for arithmetic expressions. Parse
tree.
4. Chomsky classification of Grammars, Languages, Recognizers.
Introduction to Finite State Automata (FSA). Algorithm to
simulate FSA.
5. Reverse Polish Notation /RPN/ . Algorithm to convert arithmetic
expressions from infix to postfix notation. Application of RPN to
object code generation and expression evaluation.
6. Lexical Analysis. Basic principles. Design of a scanner.
7. Syntax Analysis /SA/. Basic principles. Top-Down and BottomUp strategies. Classification of SA methods.
V. Operating Systems: COS 331
1. Process scheduling disciplines, turnaround time, response time
and waiting time.
2. Disk I/O scheduling disciplines.
3. Synchronization: critical sections, mutual exclusion
4. Segmentation and paging schemes for memory.
5. Process synchronization techniques.
6. Process Scheduling.
7. Memory replacement algorithms.
8. Resource allocation and deadlock.
9. Scheduling algorithms.
VI. Computer Networks: COS 440
1. Fundamental issues for data communications protocols.
2. Network layer routing algorithms.
3. LANs: CSMA/CD (Ethernet) principles.
4. Signals and data transmission concepts.
5. IP address evolution: address classes to CIDR.
6. Physical layer media: compare and contrast.
7. Transport layer issues: connection, disconnection and flowcontrol. Describe how they are solved.
VII. Algorithms: COS 460
1. Sorting (one O(n2) and one O(n. log2n) algorithm)
2. Binary search in sorted tables
3. Breadth-first and depth-first traversal of graphs
VIII. Artificial Intelligence: COS 470
1. Types and properties of intelligent agents
2. Solving problems by searching: informed search strategies
3. General Model of Learning Agents
4. Informed search algorithms.
5. Searching Game Trees using the Minimax Algorithm. Alpha-Beta
pruning.
6. Neural Networks – definitions. Activation functions. Perceptron
learning algorithm.
7. Knowledge and reasoning. A Knowledge Based Agents.
Representation, Reasoning, and Logic.
8. First-order logic. Quantifiers. Normal forms.
9. Learning Decision Trees. Inducing decision trees from examples.
Using information theory.