Course Aim: Introduce students to novel topics in computer science that need to be identified in a responsive manner as technology evolves and develops.
Course Aim: Enable students to learn how to apply basic algorithmic techniques and to apply advanced object-oriented programming in order to implement various data structures.
Main Topics: Array-based lists, linked lists, hash tables, recursion, heaps - stack - queue - priority queue - binary search - binary search tree, binary search trees - AVL trees, and graph.
Course Aim: Introduce Machine Architecture, machine level data and instruction representation, ALU design, and organization of the processor datapath and control. Examines performance analysis, memory system hierarchy, pipelining, and communication.
Main Topics: CPU - memory - registers - arithmetic unit - control unit - and input/output components - data representation - Boolean algebra - machine-level programs - instruction set architecture - processor organization - memory hierarchy - virtual memory - compiling - linking.
Course Aim: Provide students with an understanding of the role computation can play in solving real-world problems.
Main Topics: An introduction to computers-Program design and development process: Problem definition, pseudo-code and algorithm development, flowcharting - Fundamental programming concepts in Python; procedures, functions, iteration, strings, decision structures.