Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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.