COURSE EXPECTATIONS COURSE CODE: COSC 1666 COURSE NAME: ENGINEERING GRAPHICS FACULTY MEMBER: MARK WACHOWIAK 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: This course introduces engineering graphics, design, and engineering communication. In addition to a theoretical foundation, students will gain practical, project-based experience using industry-standard software. Topics include drafting, descriptive geometry, projections, drawing techniques, dimensioning and annotation, solid modeling, and visualization in engineering applications. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. COMMUNICATE ENGINEERING IDEAS THROUGH DRAWINGS. 2. EXPLAIN, CONTRAST, AND COMPARE COMPUTER AIDED DRAWING, MANUFACTURING, AND ENGINEERING. 3. PLAN, CREATE, AND ANALYZE MEANINGFUL ENGINEERING DRAWINGS WITH AN INDUSTRYSTANDARD COMPUTER-AIDED DESIGN (CAD) SYSTEM. 4. ANNOTATE AND DOCUMENT ENGINEERING DRAWINGS. 5. DEMONSTRATE THE PROCESS OF CREATING AND REVISING ENGINEERING DRAWINGS BY CREATING DETAILED ENGINEERING DRAWINGS FROM SPECIFICATIONS. 6. DRAW A FLOWCHART OF THE COMPUTERIZED AND AUTOMATED MANUFACTURING PROCESS. 7. WRITE AND TEST NON-TRIVIAL COMPUTER SCRIPTS THAT PERFORM USEFUL FUNCTIONS IN A CAD SYSTEM. 8. PLAN, CREATE ANALYZE, AND ANNOTATE 2D MULTIVIEW AND ISOMETRIC TECHNICAL DRAWINGS. 9. SOLVE PROBLEMS AND PERFORM CALCULATIONS IN DESCRIPTIVE GEOMETRY. 10. PLAN, CREATE ANALYZE, AND ANNOTATE 3D ENGINEERING DRAWING. 11. DESCRIBE AND DISSEMINATE WRITTEN WORK THROUGH FULLY DOCUMENTED AND CLEAR TECHNICAL REPORTS. OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE 1. A GENERAL KNOWLEDGE AND UNDERSTANDING OF KEY CONCEPTS AND METHODOLOGIES IN ENGINEERING GRAPHICS, AND THE ROLE OF CAD IN MODERN MANUFACTURING AND INDUSTRIAL PROCESSES. 2. AN ABILITY TO USE THE MAIN FEATURES OF AN INDUSTRY-STANDARD CAD PACKAGE (AUTOCAD). 3. AN ABILITY TO PLAN, WRITE, AND REVISE TECHNICAL REPORTS (THROUGH LABORATORY WORK). 4. AN ABILITY TO WRITE SIMPLE, YET MEANINGFUL AND USEFUL FUNCTIONS IN A SCRIPTING LANGUAGE, AS DEMONSTRATED THROUGH LABORATORY WORK. 5. AN ABILITY TO PLAN, IMPLEMENT, ANALYZE, AND ANNOTATE 2D AND 3D ENGINEERING DRAWINGS. 6. A BASIC ABILITY TO WORK IN SMALL GROUPS. 7. AN ABILITY TO COMMUNICATE ENGINEERING DESIGN CONCEPTS, BOTH ORALLY AND IN WRITING. 8. AN ABILITY TO SOLVE MATHEMATICAL PROBLEMS ARISING IN DESCRIPTIVE GEOMETRY RELEVANT TO ENGINEERING GRAPHICS AND DRAWING. COURSE EXPECTATIONS COURSE CODE: COSC 1757 COURSE NAME: DIGITAL SYSTEMS FACULTY MEMBER: BOGUSLAW SCHREYER 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: This course will introduce the basics of digital system design. Topics include: number systems and Boolean Algebra; minimization of logic functions; integrated circuits; implementation of logic functions; design of combinational circuits, sequential devices and synchronous sequential circuits; counters, registers, memory devices, interfacing; processor design and microprogramming. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. DEMONSTRATE AND UNDERSTAND OF THE IMPLICATIONS OF THE BOOLEAN ALGEBRA, DISCRETE MATHEMATICS, AND THE NUMBER SYSTEMS TO THE DIGITAL SYSTEMS. 2. DEMONSTRATE UNDERSTANDING OF THE BASIC LAWS OF ELECTRICITY AND THEIR IMPORTANCE FOR DIGITAL SYSTEMS 3. DEMONSTRATE THE ABILITY OF IMPLEMENTING THE MATHEMATICAL KNOWLEDGE TO A DESIGN OF THE COMBINATIONAL AND SEQUENTIAL SYSTEMS 4. DEMONSTRATE UNDERSTANDING OF THE COMBINATIONAL SYSTEMS AND THE METHODS OF THEIR MINIMIZATION BY APPLYING DE MORGAN’S LAWS AND OTHER BOOLEAN ALGEBRA LAWS 5. DEMONSTRATE THE UNDERSTANDING OF THE SEQUENTIAL SYSTEMS AND BEING ABLE TO MAKE THEIR MATHEMATICAL MODELS 6. DEMONSTRATE THE UNDERSTANDING OF THE BASIC CONCEPTS OF THE COMPUTER HARDWARE SUCH AS MEMORY DEVICES, SHIFT REGISTERS AND MICROPROCESSORS 7. DESIGN A VARIETY OF THE COMBINATIONAL AND SEQUENTIAL COMPUTER HARDWARE OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE 1. A GENERAL KNOWLEDGE AND UNDERSTANDING OF SOME KEY CONCEPTS AND METHODOLOGIES IN DIGITAL SYSTEMS BY BEING ABLE TO APPLY MATHEMATICAL MODELS OF THE SYSTEMS 2. UNDERSTANDING OF THE BASIC LAWS OF ELECTRICITY AND ITS APPLICATION TO THE DIGITAL SYSTEMS BY APPLYING THE KIRCHHOFF LAWS 3. INITIAL ABILITY TO READ, UNDERSTAND, AND ANALYZE INTRODUCTORY TEXTBOOKS IN DIGITAL SYSTEMS AND MACHINE STRUCTURES 4. INITIAL ABILITY TO THINK INDEPENDENTLY 5. INITIAL ABILITY TO COMMUNICATE DIGITAL SYSTEMS CONCEPTS, APPLICATIONS AND DEIGN AS WELL AS THEIR LIMITATIONS IN COMPUTER TECHNOLOGY 6. UNDERSTAND THE BASICS OF MACHINE STRUCTURES IN THE AREA OF THE SPECIFICATION, DESIGN, IMPLEMENTATION AND USE AS STATED IN THE ACM/IEEE COMPUTING CURRICULA RECOMMENDATIONS. 7. ABILITY TO APPLY THE METHODS LEARNED IN THE COURSE TO DESIGN OF THE COUNTERS AND OTHER SEQUENTIAL SYSTEMS COURSE EXPECTATIONS COURSE CODE: COSC 2007 COURSE NAME: DATA STRUCTURES II FACULTY MEMBER: RENATA SMOLIKOVA-WACHOWIAK 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: This course introduces data structures and their algorithms. Topics include: self-adjusting lists, binomial heaps, binary search trees, balanced trees, B-trees, and recursive programming. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. DEMONSTRATE AN UNDERSTANDING OF ADVANCED TREES AND THEIR APPLICATIONS BY DESCRIBING THE MAIN CHARACTERISTICS OF RED-BLACK, AVL, N-ARY, AND B+ TREES. 2. DISCUSS USEFUL APPLICATIONS OF ADVANCED TREE DATA STRUCTURES. 3. DISCUSS TREE-BALANCING STRATEGIES AND THEIR IMPORTANCE. 4. DEMONSTRATE AN UNDERSTANDING OF GRAPHS AND THEIR APPLICATIONS BY DESCRIBING GRAPH CHARACTERISTICS AND COMPONENTS (EDGES, VERTICES, ETC.). 5. DESCRIBE SOME OF THE MAIN THEORETICAL RESULTS OF GRAPH THEORY (I.E. SHORTEST PATH, ETC.). 6. DISCUSS USEFUL APPLICATIONS OF GRAPH DATA STRUCTURES. 7. DEMONSTRATE AN UNDERSTANDING OF HASH TABLES BY COMPLETELY WORKING A CODING EXAMPLE. 8. DESCRIBE AND FULLY DOCUMENT RECURSIVE ALGORITHMS. 9. CHOOSE AN APPROPRIATE DATA STRUCTURE FOR A GIVEN APPLICATION, AND DISCUSS WHY THAT CHOICE WAS MADE. 10. DISCUSS THE COMPUTATIONAL EFFICIENCY OF INSERTING AND RETRIEVING DATA FROM VARIOUS DATA STRUCTURES. 11. ANALYZE ALGORITHMS AND COMPUTE EXPRESSIONS FOR THEIR COMPUTATIONAL COMPLEXITY USING STANDARD TERMINOLOGY (E.G. “BIG-OH” NOTATION). 12. DESCRIBE THE CONCEPT OF SELF-ADJUSTING DATA STRUCTURES AND THEIR APPLICATIONS IN FUTURE SOFTWARE DEVELOPMENT. OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE 1. AN UNDERSTANDING OF ABSTRACT DATA TYPES (TREES, GRAPHS, HASH STRUCTURES, ADAPTIVE ALGORITHMS). 2. AN ABILITY TO DISCERN AND TO SELECT VARIOUS DATA STRUCTURES TO SOLVE SPECIFIC PROBLEMS. 3. AN ABILITY TO USE DATA STRUCTURES PROPERLY. 4. AN ABILITY TO IMPLEMENT AND USE ADVANCED SEARCHING AND SORTING TECHNIQUES WITH A STANDARD HIGH-LEVEL PROGRAMMING LANGUAGE. 5. AN ABILITY TO WRITE PROGRAMS EMPLOYING SEVERAL OF THE DATA STRUCTURES COVERED. 6. THE ABILITY TO ANALYZE ALGORITHMS FOR COMPUTATIONAL COMPLEXITY. 7. A GROWTH IN THE ABILITY TO THINK INDEPENDENTLY. 8. AN ABILITY TO CRITICALLY READ AND TO ANALYZE BASIC LITERATURE DEVOTED TO ALGORITHM ANALYSIS. 9. THE ABILITY TO WRITE RECURSIVE ALGORITHMS IN A HIGH-LEVEL PROGRAMMING LANGUAGE. 10. AN UNDERSTANDING OF THE FIELD OF ANALYSIS OF ALGORITHMS, AND WHY IT IS IMPORTANT IN BOTH THEORETICAL AND APPLIED COMPUTER SCIENCE. COURSE EXPECTATIONS COURSE CODE: COSC 2106 COURSE NAME: MACHINE STRUCTURES I FACULTY MEMBER: BOGUSLAW SCHREYER 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: This course introduces basic components and computer structured organization. Topics include: combinational circuits, sequential circuits, memories, microprocessors, interfacing; microprogramming, microarchitecture, machine language, addressing, instructions, computer arithmetic; introduction to operating systems, assembly language programming and assembly process. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. DEMONSTRATE UNDERSTANDING OF COMPUTER ARITHMETIC INCLUDING THE REPRESENTATION AND OPERATIONS ON INTEGERS, SIGNED NUMBERS AND FLOATING POINTS. 2. DEMONSTRATE UNDERSTANDING OF BOOLEAN ALGEBRA AND DIGITAL LOGIC BY BEING ABLE TO APPLY THEM TO ANALYSIS OF COMPUTER HARDWARE. 3. DEMONSTRATE UNDERSTANDING COMPUTER ARCHITECTURE, SPECIFICALLY INSTRUCTION FORMATS, INSTRUCTION TYPES, ADDRESSING, PIPELINING , SEVERAL ISA EXAMPLES. 4. DEMONSTRATE UNDERSTANDING OF MACHINE LANGUAGE AND ASSEMBLY LANGUAGE BY WRITING SIMPLE PROGRAMS IN BOTH LANGUAGES 5. DEMONSTRATE UNDERSTANDING OF COMPILERS, ASSEMBLERS AND OPERATING SYSTEMS BY BEING ABLE TO DISTINGUISH AMONG THE VARIETY OF SOFTWARE 6. DEMONSTRATE UNDERSTANDING OF INTERRUPTS, TRAPS, RESOURCE PROTECTION OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE 1. SOME UNDERSTANDING OF HISTORICAL DEVELOPMENT OF COMPUTER SCIENCE AND ITS PRESENT STRUCTURE 2. BROAD UNDERSTANDING OF MAIN TOPICS IN COMPUTER SCIENCE, INCLUDING COMPUTER HARDWARE, SUCH AS MEMORIES, INPUT/OUTPUT, STORAGE SYSTEMS, MICROPROCESSORS 3. BROAD UNDERSTANDING OF MAIN TOPICS IN SOFTWARE SUCH AS MACHINE LANGUAGE, ASSEMBLY LANGUAGE, ASSEMBLERS AND COMPILERS 4. UNDERSTANDING OF STANDARD PROBLEM-SOLVING IDEAS AND TECHNIQUES IN COMPUTER SCIENCE USING THE ASSEMBLY LANGUAGE 5. INITIAL ABILITY TO GATHER, COMPREHEND AND ANALYZE NEW COMPUTER SCIENCE KNOWLEDGE FROM VARIOUS SOURCES 6. ABILITY TO UNDERSTAND AND WRITE SIMPLE PROGRAMS IN ASSEMBLY LANGUAGE 7. ABILITY TO COMMUNICATE COMPUTER SCIENCE IDEAS RELATED TO COMPUTER HARDWARE BOTH ORALLY AND IN WRITING COURSE EXPECTATIONS COURSE CODE: COSC 2107 COURSE NAME: MACHINE STRUCTURES II FACULTY MEMBER: BOGUSLAW SCHREYER 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: This course is the continuation of COSC2106. Topics include: microprogrammed control, assembly language programming techniques, macroassemblers, conditional assembly, and practical application of assembly language programming. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. DEMONSTRATE THEORETICAL AND PRACTICAL KNOWLEDGE OF MACHINE ARCHITECTURE AND 2. 3. 4. 5. 6. 7. 8. INTERFACES BY BEING ABLE TO SET UP HARDWARE AND SOFTWARE COMPONENTS FOR SIMPLE INTERFACE SYSTEMS DEMONSTRATE DEEPER UNDERSTANDING OF ASSEMBLY LANGUAGE PROGRAMMING THROUGH ITS APPLICATIONS TO THE ROBOTICS AND OTHER REAL-TIME PROCESSES BY BEING ABLE TO WRITE THE SIMPLE PROGRAMS DEMONSTRATE UNDERSTANDING OF ADDRESS DECODING DEMONSTRATE UNDERSTANDING OF DATA INPUT AND OUTPUT HARDWARE AND ASSEMBLY LANGUAGE INSTRUCTIONS DEMONSTRATE UNDERSTANDING OF UNIVERSAL RECEIVERS-TRANSMITTERS, INCLUDING THE MUART APPLY ASSEMBLY LANGUAGE PROGRAMS TO THE UNIVERSAL RECEIVERS-TRANSMITTERS. MAKE ASSEMBLY LANGUAGE PROGRAMS FOR THE SERIAL DATA COMMUNICATION, A/D CONVERTERS AND MICROPROCESSOR/DAC INTERFACING CREATE THE ASSEMBLY LANGUAGE PROGRAMS FOR THE MICROPROCESSOR CONTROL OF REAL TIME PROCESSES IN APPLICATION TO ROBOTICS OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE 1. GOOD UNDERSTANDING OF MICROPROCESSOR INTERFACING AND APPLICATIONS 2. INITIAL ABILITY TO APPLY THE I/O HARDWARE TO REAL-LIFE PROBLEMS AND TO CREATE SOLUTIONS FOR SUCH PROBLEMS, IN PARTICULAR IN THE FORM OF ASSEMBLY LANGUAGE CODES 3. ABILITY TO CREATE ALGORITHMS AND ASSEMBLY LANGUAGE PROGRAMMING CODE 4. UNDERSTANDING OF STANDARD PROBLEM-SOLVING IDEAS AND TECHNIQUES IN COMPUTERS SCIENCE, SPECIFICALLY IN THE AREA OF REAL TIME CONTROL APPLIED TO ROBOTICS 5. INITIAL ABILITY TO GATHER, COMPREHEND, AND ANALYZE NEW KNOWLEDGE ON ASSEMBLY LANGUAGE REAL TIME PROGRAMMING, FROM VARIOUS SOURCES 6. ABILITY TO COMMUNICATE COMPUTER SCIENCE IDEAS RELATED TO COMPUTER I /O HARDWARE , AND SOME REAL TIME CONTROL BOTH ORALLY AND IN WRITING 7. ABILITY TO SOLVE THE REAL TIME CONTROL WITH PROGRAMMABLE DEVICES, LIKE MUART, AND RELATED TO SERIAL COMMUNICATION, HANDSHAKING AND REAL-TIME CONTROL APPLICATIONS. 8. UNDERSTAND THE BASICS OF MACHINE STRUCTURES IN THE AREA OF THE SPECIFICATION, DESIGN, IMPLEMENTATION AND USE AS STATED IN THE ACM/IEEE COMPUTING CURRICULA RECOMMENDATIONS COURSE EXPECTATIONS COURSE CODE: COSC 2116 COURSE NAME: ARTIFICIAL NEURAL NETWORKS FACULTY MEMBER: BOGUSLAW SCHREYER 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: This course will introduce principles of Artificial Neural Networks (ANN) computing and its applications. The key models of ANN will be presented and analyzed. Multilayer feedforward networks and Hopfield networks, the principles of Boltzman machines, supervised and unsupervised learning will be presented and discussed. Several applications of ANN will be analyzed, among them applications to mathematical logic, pattern and image recognition and system control. Students will create and analyze their own models of ANN. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. DEMONSTRATE UNDERSTANDING OF THE CONCEPT OF MOST OF EXISTING ANNS, INCLUDING SUPERVISED AND NON-SUPERVISED ANNS 2. DEMONSTRATE DEEPER UNDERSTANDING OF LINEAR SEPARABILITY 3. DEMONSTRATE UNDERSTANDING OF HEBBIAN LEARNING 4. DEMONSTRATE UNDERSTANDING OF AN ARTIFICIAL NEURON, PERCEPTRON AND ADALINE 5. APPLY THE COMPETITIVE LEARNING USING THE KOHONNEN MAPS 6. MAKE COMPUTER MODELS OF SEVERAL TYPES OF THE ANN WITH SUPERVISED LEARNING 7. MAKE COMPUTER MODELS OF SEVERAL TYPES OF THE ANN WITH UNSUPERVISED LEARNING 8. MAKE CODES FOR THE APPLIED PATTERN AND IMAGE RECOGNITION ANNS 9. CREATE CODES FOR THE VARIETY OF THE ANNS, INCLUDING FEEDFORWARD, BACKPROPAGATION AND COUNTER PROPAGATION ANNS OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE 1. GOOD UNDERSTANDING AND ABILITY TO CREATE THE COMPUTER MODELS OF THE ANN, INCLUDING PATTERN CLASSIFICATORS AND ASSOCIATORS, COMPETITIVE NETS, BACKPROPAGATION NETS, AND MANY OTHER 2. ABILITY TO ANALIZE THE REAL LIFE PROBLEMS AND APPLY THE ANN TECHNIQUES TO SOLVE THOSE PROBLEMS 3. INITIAL ABILITY TO GATHER, COMPREHEND, AND ANALYZE NEW COMPUTER SCIENCE KNOWLEDGE ON ANN FROM VARIOUS SOURCES 4. ABILITY TO COMMUNICATE COMPUTER SCIENCE IDEAS RELATED TO THE ANNS 5. UNDERSTAND THE BASICS OF ANNS IN THE AREA OF THE SPECIFICATION, DESIGN, IMPLEMENTATION AND USE AS STATED IN THE ACM/IEEE COMPUTING CURRICULA RECOMMENDATIONS COURSE EXPECTATIONS COURSE CODE: COSC 2206 COURSE NAME: MATHEMATICAL COMPUTATION FACULTY MEMBER: RENATA SMOLIKOVA-WACHOWIAK 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: This course provides an introduction to MATLAB, MAPLE or other math computation software. Topics include: problem-solving techniques in several domains of mathematics – calculus, algebra, differential equations, and statistics; symbolic mathematics problem solving; applications to artificial intelligence and image and voice processing; analysis and simulation of dynamic linear and non-linear systems; and several other practical applications. This course may be credited towards Mathematics. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. DEMONSTRATE A KNOWLEDGE OF ARRAYS AND ARRAY OPERATIONS, MULTIDIMENSIONAL ARRAYS, AND CELL ARRAYS AND STRUCTURES. 2. WORK WITH CHARACTER STRINGS, CONTROL FLOW, AND RELATIONAL AND LOGICAL OPERATIONS IN MATHEMATICAL COMPUTATION. 3. DEMONSTRATE AN UNDERSTANDING OF MATHEMATICAL SOFTWARE, HIGH-LEVEL LANGUAGES, AND SCRIPTING LANGUAGES. 4. APPLY KNOWLEDGE OF MATRIX ALGEBRA AND MATRICES. 5. APPLY TWO AND THREE-DIMENSIONAL GRAPHICS AS IT IS USED IN MATHEMATICAL COMPUTATION. 6. DEMONSTRATE AN UNDERSTANDING OF BASIC IMAGING TECHNIQUES BY MODIFYING IMAGE DATA AND MANIPULATING MATRICES. 7. DISCUSS APPLICATIONS OF SCIENTIFIC ALGORITHMS AND MATHEMATICAL COMPUTATION. OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE 1. A FUNDAMENTAL KNOWLEDGE AND PRACTICAL ABILITIES IN MATHEMATICAL FRAMEWORKS, ESPECIALLY MATLAB AND MAPLE, AND THE ABILITY TO UTILIZE THESE TOOLS IN SCIENTIFIC COMPUTATIONS AND VISUALIZATION. 2. A GENERAL KNOWLEDGE AND UNDERSTANDING OF PROBLEM SOLVING USING MATHEMATICAL TOOLS (MATLAB AND MAPLE). 3. AN ABILITY TO PROGRAM SCRIPTS AND FUNCTIONS USING MATHEMATICAL DEVELOPMENT ENVIRONMENT. 4. AN ABILITY TO CREATE 2D AND 3D MATHEMATICAL PLOTS AND TO UNDERSTAND THEIR MEANINGS. 5. A KNOWLEDGE OF DATA STRUCTURES IN MATHEMATICAL ENVIRONMENTS, INCLUDING, STRINGS, CONSTANTS, VECTORS, MATRICES, AND MULTIDIMENSIONAL DATA. 6. THE ABILITY TO IMPLEMENT SCIENTIFIC ALGORITHMS USING MATLAB. COURSE EXPECTATIONS COURSE CODE: COSC 2406 COURSE NAME: INTRODUCTION TO GAME DESIGN AND DEVELOPMENT FACULTY MEMBER: MARK WACHOWIAK 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: This course introduces the fundamental issues in computer game design, development, interfaces, and programming. Important aspects of game design, including game balance and level design, storytelling and narrative, basic game architecture, graphical representation of scenes, user interaction, game hardware and consoles, and game development toolkits will be presented. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. DEFINE INDUSTRY-SPECIFIC TERMS USED IN THE COMPUTER GAME INDUSTRY. 2. DOCUMENT THE GAME DEVELOPMENT PROCESS FROM IDEATION TO DELIVERABLE. 3. DRAW A FLOWCHART OF THE ITERATIVE PROCESSES INVOLVED IN GAME DESIGN AND DEVELOPMENT. 4. COMPARE, ANALYZE, COMPARE, AND CONTRAST GOOD AND POOR EXAMPLES OF GAME WORLDS IN REAL GAMES. 5. IDENTIFY GOOD AND POOR EXAMPLES OF GAME USER INTERFACES, AND EXPLAIN WHAT MAKES THEM GOOD OR BAD. 6. EXPLAIN HOW “SERIOUS GAMES” CAN BE USED FOR TRAINING, SIMULATION, HEALTH, AND REHABILITATION BY DISCUSSING SPECIFIC SERIOUS GAMES, THEIR BENEFITS, AND THEIR DESIGNS. 7. COMPARE AND CONTRAST DIFFERENT COMPUTER GAME HARDWARE PLATFORMS, DELINEATING THEIR ADVANTAGES AND SHORTCOMINGS. 8. OUTLINE THE STRUCTURE OF A REAL-TIME PROGRAM. 9. DESCRIBE RENDERING HARDWARE: AUDIO, VISUAL, AND TACTILE, AND EXPLAIN THEIR SAMPLING FREQUENCIES AND BASIC INTERCOMMUNICATIONS WITH COMPUTER HARDWARE . 10. DESCRIBING THE MAIN FEATURES AND FUNCTIONS OF A COMMERCIAL GAME ENGINE. 11. SELECT, STUDY, PRESENT, AND CRITIQUE A CURRENT TECHNICAL OR SCIENTIFIC PAPER IN THE FIELD. 12. DEVELOP, WRITE, AND TEST A BASIC GAME COMPONENT IN A HIGH-LEVEL OR SCRIPTING PROGRAMMING LANGUAGE. OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE 1. A GENERAL KNOWLEDGE AND UNDERSTANDING OF KEY CONCEPTS AND METHODOLOGIES IN GAME DESIGN, DEVELOPMENT, AND TECHNOLOGY. 2. AN ABILITY TO PROGRAM SIMPLE, BUT MEANINGFUL SHORT PROGRAMS IN A SCRIPTING LANGUAGE USED IN THE GAME INDUSTRY. 3. THE ABILITY TO DESIGN A RUDIMENTARY GAME. 4. THE ABILITY TO ANALYZE AND TO IDENTIFY THE COMPONENTS OF GAME ENGINES. 5. A FAMILIARITY WITH AND AN ABILITY TO PLAN, WRITE, AND ANALYZE, TEST, AND REVISE SIMPLE PROGRAMS IN C, C++, C#, OR JAVA (THROUGH LABORATORY WORK). 6. AN ABILITY TO PLAN, WRITE, ANALYZE, AND REVISE TECHNICAL REPORTS AND SCIENTIFIC DOCUMENTATION (THROUGH LABORATORY WORK). 7. AN ABILITY TO FIND, ACCESS, AND STUDY SCIENTIFIC AND TECHNICAL LITERATURE RELATED TO GAME TECHNOLOGY. 8. AN UNDERSTANDING OF THE BENEFITS AND CHALLENGES IN SERIOUS GAMES. 9. A BASIC ABILITY TO WORK IN SMALL GROUPS. 10. AN ABILITY TO COMMUNICATE THE ENGINEERING ASPECTS OF GAME TECHNOLOGY. 11. AN ABILITY TO SEE FLAWS, ADVANTAGES, AND BENEFITS IN HUMAN COMPUTER INTERACTION FOR GAMES. COURSE EXPECTATIONS COURSE CODE: COSC 2667 COURSE NAME: OPERATING SYSTEMS I FACULTY MEMBER: BOGUSLAW SCHREYER 2012-13……2013-14 CALENDAR COURSE DESCRIPTION: Operating systems are an essential part of any computer system. This course will provide students with the basic concept of batch, time-sharing, multiprogramming and other operating systems. The students will examine the concepts of operating systems’ structure, processes, threads, CPU scheduling, process synchronization, and storage management. Students will be exposed to the Unix-like and other operating system environments. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. DEMONSTRATE THEORETICAL KNOWLEDGE AND UNDERSTANDING OF THE BASIC TYPES OF OPERATING SYSTEMS, ITS COMPONENTS AND CONCEPTS, INCLUDING THEIR ORGANIZATION, OPERATIONS, PROCESS AND MEMORY MANAGEMENT, PROTECTION AND SECURITY 2. DEMONSTRATE UNDERSTANDING OF THE CONCEPT OF THE BATCH OS VS OTHER OSS 3. DEMONSTRATE UNDERSTANDING OF THE CONCEPT OF TIMESHARING AND MULTIPROGRAMMING 4. DEMONSTRATE A PRACTICAL ABILITY OF SOLVING BASIC PROBLEMS IN THE DOMAIN OF OPERATING SYSTEMS, INCLUDING SCHEDULING AND SYNCHRONIZATION 5. DEMONSTRATE DEEPER UNDERSTANDING OF THE OS AS EVENT DRIVEN AND IMPORTANCE OF THE INTERRUPTS 6. DEMONSTRATE UNDERSTANDING OF THE THREADS, MULTITHREADING AND PROCESSES 7. DEMONSTRATE UNDERSTANDING OF THE CONCEPT OF DEADLOCKS AND ITS MODELING 8. DEMONSTRATE UNDERSTANDING OF THE CONCEPT OF MEMORY MANAGEMENT INCLUDING SWAPPING, PAGING AND SEGMENTATION 9. DEMONSTRATE UNDERSTANDING OF THE CONCEPT OF LINUX OS, MAC OS, AND WINDOWS OS ACQUIRED ON THE LAB SESSIONS. OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE 1. GOOD UNDERSTANDING OF THE CONCEPT OF THE MOST IMPORTANT OPERATING SYSTEMS, INCLUDING UNIX, WINDOWS, MAC’ OS AND LINUX 2. GOOD UNDERSTANDING OF THE BASIC CONCEPTS OF THE OS, LIKE PROCESSES, THREADS, CPU SCHEDULING, PROCESS SYNCHRONIZATION, DEADLOCKS, MEMORY MANAGEMENT, FILE SYSTEM, I/O SYSTEMS 3. PRACTICAL KNOWLEDGE OF THE SOLARIS SYSTEM, WINDOWS 7 AND UBUNTU, BASED ON THE LABS 4. ABILITY TO CREATE MODELS OF THE PROCESS SYNCHRONIZATION AND AND SCHEDULING 5. INITIAL ABILITY TO GATHER, COMPREHEND, AND ANALYZE NEW COMPUTER SCIENCE KNOWLEDGE IN THE AREA OF OS FROM VARIOUS SOURCES 6. ABILITY TO COMMUNICATE COMPUTER SCIENCE IDEAS RELATED TO THE OS 7. UNDERSTAND THE BASICS OF ANNS IN THE AREA OF THE SPECIFICATION, DESIGN, IMPLEMENTATION AND USE AS STATED IN THE ACM/IEEE COMPUTING CURRICULA RECOMMENDATIONS COURSE EXPECTATIONS COURSE CODE: COSC 3006 COURSE NAME: NUMERICAL METHODS I FACULTY MEMBER: RENATA SMOLIKOVA-WACHOWIAK 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: This course provides the mathematical background for numerical methods as well as a variety of computer applications in the solution of practical problems. Topics covered include Taylor polynomials, computer representation of numbers, error computation, root-finding, interpolation and approximation methods, numerical differentiation and integration; the solution of systems of linear equations, and the numerical solution of differential equations. This course may be credited towards Mathematics. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. DEMONSTRATE KNOWLEDGE OF POLYNOMIAL APPROXIMATION OF FUNCTIONS (E.G. MCLAURIN SERIES, TAYLOR SERIES, ETC.). 2. APPLY KNOWLEDGE OF BINARY NUMBERS AND FLOATING POINT FORMATS. 3. EXPLAIN THE IMPORTANCE OF ERROR IN NUMERICAL COMPUTATIONS, AND WHY ERROR MUST BE FACTORED INTO ANY SOLUTION. 4. DEMONSTRATE AN UNDERSTANDING OF SOLVING EQUATIONS IN ITS VARIOUS FORMS BY USING DIFFERENT METHODS. 5. DEMONSTRATE A BASIC UNDERSTANDING OF NUMERICAL ALGEBRA, AND ITS RELEVANT ALGORITHMS. 6. DEMONSTRATE A BASIC UNDERSTANDING OF NUMERICAL APPROACHES IN CALCULUS. 7. DEMONSTRATE AN UNDERSTANDING OF THE FITTING OF DATA, INTERPOLATION AND LEAST SQUARED METHODS AND IMPLEMENTING THESE METHODS. 8. DEMONSTRATE AN UNDERSTANDING OF NUMERICAL DIFFERENTIATION AND INTEGRATION BY DIFFERENTIATING AND INTEGRATING FUNCTIONS THAT ARE HARD -TO-SOLVE ANALYTICALLY, AND FUNCTIONS THAT HAVE NO ANALYTIC SOLUTION. 9. DEMONSTRATE AN UNDERSTANDING OF NUMERICAL METHODS BY IMPLEMENTING ALGORITHMS FOR A VARIETY OF ENGINEERING, SCIENTIFIC, MATHEMATICAL, AND MULTIDISCIPLINARY APPLICATIONS. 10. IMPLEMENT NUMERICAL ALGORITHMS IN A HIGH-LEVEL COMPUTER PROGRAMMING LANGUAGE, E.G. MATLAB. OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE 1. A GENERAL KNOWLEDGE AND UNDERSTANDING OF THE THEORETICAL AND PRACTICAL ASPECTS OF THE USE OF NUMERICAL METHODS. 2. AN ABILITY TO APPLY KNOWLEDGE OF CALCULUS AND MATRIX ALGEBRA TO CONSTRUCT AND EXPLORE ALGORITHMS FOR SOLVING SCIENCE AND ENGINEERING PROBLEMS . 3. AN ABILITY TO ACCOUNT FOR THE ADVANTAGES AND DISADVANTAGES OF USING NUMERICAL METHODS. 4. AN ABILITY TO ACCOUNT FOR ERROR IN NUMERICAL COMPUTATIONS. 5. AN ABILITY TO IMPLEMENT BASIC NUMERICAL ALGORITHMS IN A HIGH-LEVEL COMPUTER LANGUAGE AND IN MATHEMATICAL SOFTWARE FRAMEWORKS, E.G. MATLAB AND MAPLE. 6. AN ABILITY TO READ, UNDERSTAND, AND ANALYZE SCIENTIFIC AND TECHNICAL LITERATURE RELATED TO CONCEPTS IN NUMERICAL METHODS. 7. AN ABILITY TO WORK IN SMALL GROUPS AND TO PRESENT WORK BOTH ORALLY AND IN WRITING. COURSE EXPECTATIONS COURSE CODE: COSC 3007 COURSE NAME: ARTIFICIAL INTELLIGENCE FACULTY MEMBER: BOGUSLAW SCHREYER 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: This course introduces the history and applications of artificial intelligence. Topics include: state spaces and search strategies, machine learning, genetic algorithms, artificial neural networks; capabilities and limitations of artificial intelligence; applications in expert systems, natural languages, robotics, speech, and vision; interacting with an existing expert system; construction of a small expert system; using artificial neural networks to perform image recognition and system control. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. DEMONSTRATE A BROAD AND DETAILED KNOWLEDGE AND CRITICAL UNDERSTANDING OF THE KEY CONCEPTS OF ARTIFICIAL INTELLIGENCE, SUCH AS INTELLIGENT AGENTS, KNOWLEDGE AND REASONING, LEARNING, COMMUNICATING, PERCEIVING AND ACTING 2. DEMONSTRATE UNDERSTANDING AND ABILITY TO APPLY THE CONCEPTS OF STATE SPACES AND SEARCH STRATEGIES TO REAL LIFE PROBLEMS 3. DEMONSTRATE UNDERSTANDING AND ABILITY TO APPLY MACHINE LEARNING CONCEPTS AND GENETIC ALGORITHMS 4. DEMONSTRATE UNDERSTANDING AND ABILITY TO APPLY EXPERT SYSTEMS 5. DEMONSTRATE UNDERSTANDING AND ABILITY TO APPLY AI METHODOLOGIES TO ROBOTICS, SPEECH AND VISION 6. DESIGN A VARIETY OF AI METHODOLOGIES TO IMAGE AND PATTERN RECOGNITION AND SYSTEM CONTROL OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE 1. ABILITY TO READ AND ANALYZE THE AI TEXTS 2. ABILITY TO ANALYZE AND APPLY THE AI KNOWLEDGE TO REAL-LIFE PROBLEMS AND CREATE SOLUTIONS TO SUCH PROBLEMS 3. DEVELOP CRITICAL THINKING AND ADVANCED ANALYTICAL, PROBLEM-SOLVING SKILLS 4. ABILITY TO GATHER, COMPREHEND, AND ANALYZE NEW AI KNOWLEDGE FROM VARIOUS SOURCES AND APPLY IT IN VARIOUS CONTEXTS 5. ABILITY TO COMMUNICATE AI IDEAS, ALGORITHMS, QUESTIONS, SOLUTIONS, BOTH ORALLY AND 6. 7. IN WRITING ABILITY TO WORK IN TEAMS IN ORDER TO SOLVE THE COMPLEX AI PROBLEMS A BROAD UNDERSTANDING OF THE AI IN THE AREA OF THE SPECIFICATION, DESIGN, IMPLEMENTATION AND USE AS STATED IN THE ACM/IEEE COMPUTING CURRICULA RECOMMENDATIONS. COURSE EXPECTATIONS COURSE CODE: COSC 3017 COURSE NAME: INTRODUCTION TO ROBOTICS FACULTY MEMBER: BOGUSLAW SCHREYER 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: This course introduces the basic concepts and components of robotics. The hardware of robot manipulators and mobile robot and the resulting theoretical background will be discussed. The concept of environmental feedback and sensors necessary for the robots, including intelligent ones, will also be discussed. Some mobile robotics concepts will be introduced, including: path planning, localization, obstruction avoidance and mapping, and SLAM problems. The elements of robotic vision will also be introduced. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. DEMONSTRATE A BROAD AND DETAILED KNOWLEDGE OF THE KEY CONCEPTS OF ROBOTICS, INCLUDING I/O HARDWARE, STABILITY, SENSORS, END EFFECTORS, VISUAL SENSING, PLANNING, NAVIGATION AND SLAM PROBLEMS 2. DEMONSTRATE THE UNDERSTANDING AND ABILITY TO APPLY THE CONCEPTS OF 3. 4. 5. 6. ENVIRONMENTAL FEEDBACK AND SENSORS AND BE ABLE TO APPLY ASSEMBLY LANGUAGE PROGRAMS TO CONTROL THOSE SENSORS APPLY AI TO ROBOTICS SOLUTIONS INCLUDING ANN METHODS FOR IMAGE AND PATTERN RECOGNITION APPLY PATH PLANNING, LOCALIZATION, OBSTRUCTION AVOIDANCE AND MAPPING INCLUDING THE PROBLEMS OF GLOBAL AND LOCAL PLANNING, VORONOI DIAGRAMS, MONTE-CARLO METHODS, APPLY ROBOTICS METHODOLOGIES TO SLAM PROBLEMS SUCH AS MAP GENERATION, VESCO AND GRIDSLAM AND FASTSLAM AND GMAPPING UTILITIES, DESIGN ROBOTIC VISION SYSTEMS AND METHODS SUCH AS FEATURE TRACKING METHODS , ANN METHODS, THE OPTICAL FLOW UTILITIES, FEATURE TRACKING, AND EDGE DETECTION. OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE 1. ABILITY TO READ, UNDERSTAND , AND ANALYZE THE ROBOTICS TEXTS INCLUDING THE NOVEL ROBOT APPLICATIONS IN MEDICINE, SPACE SCIENCES, EDUCATION AND MANY OTHER 2. ABILITY TO SET THE NETWORK COMMUNICATION WITH ROBOTS AS WELL AS ABILITY TO CREATE THE ROBOT CONTROL PROGRAMS 3. GOOD UNDERSTANDING OF ROBOT CONTROL ARCHITECTURE (DELIBERATIVE, REACTIVE, HYBRID, BEHAVIOUR-BASED) AS WELL AS THE ASPECTS OF TIME SCALE, MODULARITY AND REPRESENTATION 4. GOOD UNDERSTANDING OF EMERGENT BEHAVIOURS, NAVIGATION, ROBOT LEARNING, AI AND GROUP ROBOTICS 5. DEVELOP CRITICAL THINKING AND ADVANCED ANALYTICAL, PROBLEM-SOLVING SKILLS ALLOWING TO CREATE THE STRATEGIC CONCEPTS FOR VARIETY OF ROBOT APPLICATIONS 6. ABILITY TO GATHER, COMPREHEND, AND ANALYZE NEW ROBOTICS KNOWLEDGE FROM VARIOUS SOURCES AND APPLY IT IN VARIOUS CONTEXTS 7. ABILITY TO COMMUNICATE ROBOTICS IDEAS, QUESTIONS, SOLUTIONS, BOTH ORALLY AND IN WRITING 8. A BROAD UNDERSTANDING OF THE ROBOTICS IN THE AREA OF THE SPECIFICATION, DESIGN, IMPLEMENTATION AND USE AS STATED IN THE ACM/IEEE COMPUTING CURRICULA RECOMMENDATIONS. COURSE EXPECTATIONS COURSE CODE: COSC 3206 COURSE NAME: THEORY OF COMPUTATION FACULTY MEMBER: RENATA SMOLIKOVA-WACHOWIAK 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: The course introduces the theory of computability, automata theory and formal languages. The topics include automata and regular, context-free and context-sensitive languages, general theory of computability including Turing machines, recursive functions, decidability and undecidability. Approaches to formal program semantics are presented and analyzed, leading to an introduction to formal program verification. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. DEMONSTRATE AN UNDERSTANDING OF WHAT COMPUTATION ENTAILS. 2. DISCUSS THE PRACTICAL NEED FOR A THEORY OF COMPUTING. 3. DEMONSTRATE AN UNDERSTANDING OF THE BASIC CONCEPTS BY ANALYSING AND DESIGNING FINITE AUTOMATA, PUSH-DOWN AUTOMATA, AND TURING MACHINES. 4. SPECIFY FORMAL LANGUAGES AND GRAMMARS BY DRAWING A CHART OF THE GRAMMARS. 5. DEMONSTRATE AN UNDERSTANDING OF COMPUTABILITY, DECIDABILITY, UNDECIDABILITY, AND COMPLEXITY THROUGH PROBLEM SOLVING. 6. DEMONSTRATE AN UNDERSTANDING OF CHURCH-TURING THESIS BY DISCUSSING ITS IMPORTANCE. 7. DEFINE CLASSES P, NP, THE NOTIONS OF POLYNOMIAL TIME REDUCTION, NP-HARDNESS, AND NP-COMPLETENESS AND GIVE EXAMPLES OF ALGORITHMS THAT FALL INTO EACH CLASS. 8. DISCUSS APPLICATIONS OF THE THEORY OF COMPUTATION. OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE 1. A GENERAL KNOWLEDGE AND UNDERSTANDING OF KEY CONCEPTS AND METHODOLOGIES IN THEORY OF COMPUTATION. 2. AN ABILITY TO USE BASIC KNOWLEDGE OF PROOF TECHNIQUES. 3. A GENERAL UNDERSTANDING OF THEORY OF COMPUTATION AND ITS CONNECTION WITH OTHER SCIENCES, AS WELL AS ITS APPLICATIONS. 4. A GENERAL UNDERSTANDING OF THE RELATIONS BETWEEN AUTOMATA, LANGUAGES AND GRAMMARS. 5. AN ABILITY TO IMPLEMENT CONCEPTS IN THEORY OF COMPUTATION USING A VARIETY OF PROGRAMMING LANGUAGES AND PARADIGMS. 6. AN ABILITY TO READ, UNDERSTAND, AND ANALYZE SCIENTIFIC AND TECHNICAL LITERATURE RELATED TO CONCEPTS COVERED IN THEORY OF COMPUTATION . 7. A KNOWLEDGE OF CURRENT ISSUES IN COMPUTATIONAL COMPLEXITY AS WELL AS ITS THEORETICAL AND PRACTICAL IMPORTANCE. COURSE EXPECTATIONS COURSE CODE: COSC 3207 COURSE NAME: COMPUTER GRAPHICS FACULTY MEMBER: MARK WACHOWIAK 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: This course introduces the principles and methods of computer graphics and their applications. Topics include: PC video cards and storage; display devices; representing objects; raster algorithms for lines, circles and region filling; 2-D and 3D graphics software; object transformations, fractal construction and animation software. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. DRAW A FLOWCHART OF THE GRAPHICS PIPELINE. 2. OUTLINE (E.G. DRAW A FLOWCHART) THE STEPS INVOLVED IN RENDERING. 3. SOLVE MATHEMATICAL PROBLEMS IN 3D TRIGONOMETRY, LINEAR ALGEBRA, AND GEOMETRY THAT ARE RELEVANT FOR COMPUTER GRAPHICS. 4. DESIGN, WRITE, AND IMPLEMENT WORKING COMPUTER GRAPHICS PROGRAMS IN STANDARD PROGRAMMING LANGUAGES (C, C++, JAVA). 5. COMPARE AND CONTRAST GEOMETRY AND TOPOLOGY, AND THEIR IMPORTANCE IN COMPUTER GRAPHICS, AND INCORPORATE BOTH INTO A WORKING GEOMETRIC MODEL . 6. SOLVE MATHEMATICAL PROBLEMS INVOLVING 2D AND 3D GEOMETRIC TRANSFORMATIONS THAT ARE USED IN COMPUTER GRAPHICS. 7. EXPLAIN, DEMONSTRATE, AND GIVE EXAMPLES OF BASIC AND FUNDAMENTAL ALGORITHMS USED IN COMPUTER GRAPHICS. 8. PERFORM TRANSFORMATIONS BETWEEN VARIOUS COLOUR MODELS. OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE 1. A GENERAL KNOWLEDGE AND UNDERSTANDING OF KEY CONCEPTS AND METHODOLOGIES IN 2D AND 3D COMPUTER IMAGE GENERATION (GRAPHICS) FROM GEOMETRY. 2. AN ABILITY TO PLAN, WRITE, AND REVISE TECHNICAL REPORTS (THROUGH LABORATORY WORK). 3. AN ABILITY TO PLAN, IMPLEMENT, TEST, AND ANALYZE WORKING ALGORITHMS AND SOFTWARE THAT GENERATE COMPUTER GRAPHICS (THROUGH LABORATORY WORK). 4. AN ABILITY TO WORK IN SMALL GROUPS. 5. AN ABILITY TO WORK INDEPENDENTLY. 6. AN ABILITY TO SEARCH, ACCESS, STUDY, AND UNDERSTAND SCIENTIFIC AND TECHNICAL LITERATURE IN COMPUTER GRAPHICS. 7. AN ABILITY TO SOLVE MATHEMATICAL PROBLEMS ARISING IN COMPUTER GRAPHICS. 8. PROFICIENCY IN ORAL AND WRITTEN COMMUNICATION (THROUGH CLASS PRESENTATIONS AND LABORATORY REPORTS, RESPECTIVELY). 9. THE ABILITY TO CORRECTLY AND THOROUGHLY DOCUMENT CODE. COURSE EXPECTATIONS COURSE CODE: COSC 3306 COURSE NAME: PROGRAMMING PARADIGMS FACULTY MEMBER: MARK WACHOWIAK 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: This course introduces the alternative programming paradigms and languages. Lecture topics include: overview of functional, logic, and object-oriented paradigms and languages, designing programs with these paradigms, advantages and disadvantages of alternative programming paradigms vs. procedural programming. Applications in AI, database and software design are introduced. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. DEFINE KEY TECHNICAL TERMS ASSOCIATED WITH PROGRAMMING LANGUAGES AND COMPILERS. 2. COMPARE AND CONTRAST THE DIFFERENT PARADIGMS: SEQUENTIAL, FUNCTIONAL, OBJECTORIENTED, LOGICAL, AND PARALLEL. 3. WRITE BASIC PROGRAMS IN FUNCTIONAL AND LOGICAL LANGUAGES. 4. WRITE A BASIC PARALLEL PROGRAM IN A HIGH-LEVEL PROGRAMMING LANGUAGE. 5. EXPLAIN THE MOTIVATION AND RATIONALE OF NEW PARALLEL PROGRAMMING PARADIGMS . 6. EXPLAIN WHY ALTERNATIVE PROGRAMMING LANGUAGES ARE IMPORTANT, AND DESCRIBE SOME OF THEIR DISADVANTAGES. 7. COMPARE AND CONTRAST THE DIFFERENCES IN THE SOFTWARE DEVELOPMENT PROCESS AMONGST THE VARIOUS PARADIGMS. 8. DISCUSS NEW AND EMERGING PARADIGMS AND APPLICATIONS IN NEW PROGRAMMING LANGUAGES BY DESCRIBING A LEADING-EDGE EXAMPLE. 9. EXPLAIN PERFORMANCE ISSUES WITH ALTERNATIVE LANGUAGES. 10. WRITE A SMALL BUT NON-TRIVIAL “APP” USING OBJECTIVE-C (A NEW LANGUAGE). OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE 1. A KNOWLEDGE AND UNDERSTANDING OF KEY CONCEPTS AND METHODOLOGIES IN PROGRAMMING LANGUAGE TECHNOLOGY. 2. THE ABILITY TO WRITE BASIC PROGRAMS IN LANGUAGES FROM DIFFERENT PARADIGMS . 3. THE ABILITY TO PLAN, IMPLEMENT, AND TEST PROGRAMS IN NEW LANGUAGES. 4. AN ABILITY TO PLAN, WRITE, ANALYZE, AND REVISE TECHNICAL REPORTS AND SCIENTIFIC DOCUMENTATION, BOTH INDIVIDUALLY AND THROUGH GROUP EFFORTS, ACCOMPLISHED THROUGH PROGRAMMING LABORATORY PROJECTS. 5. A FAMILIARITY WITH RESEARCH METHODS, TECHNICAL, AND SCIENTIFIC LITERATURE RELATED TO PROGRAMMING LANGUAGES. 6. A KNOWLEDGE OF PARALLEL PROGRAMMING PARADIGMS AND THEIR IMPORTANCE. 7. AN UNDERSTANDING OF LEADING EDGE PROGRAMMING PARADIGMS IN “APPS” AND MOBILE DEVICES. 8. AN UNDERSTANDING OF THE ADVANTAGES AND DISADVANTAGES OF THE VARIOUS PROGRAMMING LANGUAGES AND PARADIGMS. COURSE EXPECTATIONS COURSE CODE: COSC 3307 COURSE NAME: 3D COMPUTER GRAPHICS FACULTY MEMBER: MARK WACHOWIAK 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: This course introduces the fundamentals of computer graphics in three dimensions, including 3D curves and surfaces, viewing in three dimensions, three dimensional transforms, and elements of 3D vision and animation. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. EXPLAIN (E.G. VIA A FLOWCHART) HOW 3D GEOMETRY IS TRANSFORMED INTO IMAGES (GRAPHICS) ON A DISPLAY SCREEN. 2. APPLY ALGEBRAIC, GEOMETRIC, TRIGONOMETRIC, AND LINEAR ALGEBRAIC MATHEMATICAL CONCEPTS TO SOLVE REALISTIC PROBLEMS USED TO CREATE AND GENERATE 3D COMPUTER IMAGERY. 3. DESIGN, WRITE, ANALYZE, AND TEST SOPHISTICATED 3D GRAPHICS APPLICATIONS WITH WIDELYUSED INDUSTRY STANDARD FRAMEWORKS (OPENGL, OPENGL/SL, DIRECTX) AND PROGRAMMING LANGUAGES (C, C++, JAVA). 4. PLAN, DEVELOP, ANALYZE, AND TEST APPLICATIONS TO DEMONSTRATE THE FUNDAMENTALS OF IMAGE PROCESSING. 5. PLAN, WRITE, ANALYZE, AND TEST NON-TRIVIAL PROGRAMS EMPLOYING GRAPHICS PROCESSING UNITS. 6. APPLY AND COMPUTE ADVANCED 3D GEOMETRIC TRANSFORMATIONS (3D ROTATIONS, SHEARING, SCALING), AND EXPLAIN THE DERIVATION AND USE OF THESE TRANSFORMATIONS. 7. SELECT, CRITICALLY READ, ANALYZE, AND DISSEMINATE LITERATURE (BROADLY DEFINED) CONCERNING IMPORTANT SCIENTIFIC AND TECHNICAL ISSUES INVOLVED IN 3D GRAPHICS. 8. DESCRIBE HOW 3D GRAPHICS CONTRIBUTES TO IMPORTANT VISUALIZATION APPLICATIONS. OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE 1. A GENERAL KNOWLEDGE AND UNDERSTANDING OF KEY CONCEPTS AND METHODOLOGIES 3D COMPUTER IMAGE GENERATION (GRAPHICS) FROM GEOMETRY. 2. AN ABILITY TO PLAN, WRITE, AND REVISE ADVANCED TECHNICAL REPORTS (THROUGH LABORATORY WORK). 3. MATHEMATICAL MATURITY THROUGH IMAGING AND 3D GRAPHICS LABORATORY WORK. 4. AN ABILITY TO PLAN, IMPLEMENT, TEST, AND ANALYZE WORKING ALGORITHMS AND SOFTWARE THAT GENERATE COMPUTER GRAPHICS (THROUGH LABORATORY WORK). 5. A BASIC ABILITY TO WORK IN SMALL GROUPS. 6. A BASIC ABILITY TO WORK INDEPENDENTLY. 7. AN ABILITY TO SEARCH, ACCESS, STUDY, AND UNDERSTAND SCIENTIFIC AND TECHNICAL LITERATURE IN 3D COMPUTER GRAPHICS. 8. BASIC PROGRAMMING PROFICIENCY ON GRAPHICS PROCESSING UNITS. 9. AN ABILITY TO DESIGN, IMPLEMENT, TEST, AND ANALYZE SOPHISTICATED ANIMATION (DYNAMIC) PROGRAMS USING A 3D GRAPHICS PROGRAMMING INTERFACE (OPENGL, DIRECTX). 10. PROFICIENCY IN ORAL AND WRITTEN COMMUNICATION (THROUGH CLASS PRESENTATIONS AND LABORATORY REPORTS, RESPECTIVELY). 11. THE ABILITY TO CORRECTLY AND THOROUGHLY DOCUMENT CODE. COURSE EXPECTATIONS COURSE CODE: COSC 3406 COURSE NAME: ADVANCED GAME DESIGN AND DEVELOPMENT FACULTY MEMBER: MARK WACHOWIAK 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: This course presents a rigorous approach to the design and development of computer games, emphasizing the computational and programming tasks involved. Students will learn the basics of physics simulation, graphics, audio, 2D/3D art, and software engineering, as applied to game development. Topics such as the game engine, sound, rendering, modeling, and user interfaces will also be explored. Knowledge of these topics will be applied to the development of game-oriented projects. This is primarily a hands-on course where real-world skills, including design, teamwork, management, documentation, and effective communication are critical. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. PRESENT AND DISCUSS A GAME INDUSTRY CASE STUDY IN DETAIL. 2. PROGRAM VARIOUS ASPECTS OF A WORKING GAME IN A HIGH-LEVEL PROGRAMMING LANGUAGE (C, C++, C#) BY CREATING A LARGE TEAMWORK-BASED GAME DEVELOPMENT/IMPLEMENTATION PROJECT. 3. DESIGN AND IMPLEMENT A WORKING GAME USER INTERFACE. 4. EMPLOY ADVANCED COMPUTATIONAL ARCHITECTURES FOR GAMES (MULTICORE PROCESSORS AND GRAPHICS PROCESSING UNITS) IN A WORKING GAME COMPONENT. 5. DESCRIBE THE PROCESSES INVOLVED IN GAME ART, MODELING, AND ANIMATION. 6. SELECT, PRESENT, AND CRITICALLY ASSESS A CASE STUDY IN LEADING-EDGE GAME TECHNOLOGIES. 7. SELECT, READ, PRESENT, AND CRITIQUE A REPRESENTATIVE SCIENTIFIC PAPER ON GAME TECHNOLOGY. 8. EXPLAIN, OUTLINE, AND ANALYZE THE MATHEMATICS, ALGORITHMS AND TECHNIQUES USED IN GAME TECHNOLOGY. 9. DESIGN, DEVELOP, IMPLEMENT, TEST, AND DEMONSTRATE A FUNCTIONAL GAME IN A TEAMBASED EFFORT, APPLYING SOFTWARE ENGINEERING PRINCIPLES. OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE 1. AN ADVANCED KNOWLEDGE AND UNDERSTANDING OF KEY CONCEPTS AND METHODOLOGIES IN GAME DESIGN, DEVELOPMENT, AND TECHNOLOGY. 2. THE ABILITY TO IMPLEMENT COMPLEX PROGRAMS IN A HIGH LEVEL PROGRAMMING LANGUAGE (C, C++, C#). 3. A FAMILIARITY WITH AND AN ABILITY TO PLAN, WRITE, AND ANALYZE, TEST, AND REVISE LARGE-SCALE PROGRAMS IN A GAME DEVELOPMENT FRAMEWORK (E.G. XNA/C#) (THROUGH LABORATORY WORK AND AN EXTENSIVE PROJECT). 4. AN ABILITY TO PLAN, WRITE, ANALYZE, AND REVISE TECHNICAL REPORTS AND SCIENTIFIC DOCUMENTATION, BOTH INDIVIDUALLY AND THROUGH GROUP EFFORTS, ACCOMPLISHED THROUGH EXTENSIVE LABORATORY PROJECTS. 5. AN ABILITY TO COORDINATE AND CONTRIBUTE TO GROUP EFFORTS IN LARGE-SCALE SOFTWARE DEVELOPMENT. 6. AN ADVANCED FAMILIARITY WITH RESEARCH METHODS, TECHNICAL, AND SCIENTIFIC LITERATURE. 7. AN UNDERSTANDING OF THE MATHEMATICAL AND COMPUTATIONAL ASPECTS OF VIDEO, GRAPHICS, AND AUDIO. 8. PROFICIENCY IN ORAL AND WRITTEN COMMUNICATION (THROUGH CLASS PRESENTATIONS AND LABORATORY REPORTS, RESPECTIVELY). 9. THE ABILITY TO APPLY SOFTWARE ENGINEERING PRINCIPLES TO INDIVIDUAL AND GROUP PROJECTS. 10. THE ABILITY TO CORRECTLY AND THOROUGHLY DOCUMENT CODE. 11. AN AWARENESS OF EMERGING TRENDS IN GAME TECHNOLOGY AND ALGORITHMS. COURSE EXPECTATIONS COURSE CODE: COSC 3606 COURSE NAME: DATABASES AND DATA MANAGEMENT FACULTY MEMBER: RENATA SMOLIKOVA-WACHOWIAK 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: Introduction to database systems and management of large collections of data. Methods used for storage, selection, presentation and retrieval of data. Theory and analysis of relational, hierarchical and other database models. The design of database management systems. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. DEFINE KEY TECHNICAL TERMS ASSOCIATED WITH DATABASE SYSTEMS. 2. OUTLINE THE MAJOR PARTS OF A RELATIONAL DATABASE MANAGEMENT SYSTEM (DBMS). 3. DEFINE AND GENERATE A DATABASE WITH SQL DDL, AND QUERY AND UPDATE DATABASES WITH SQL DML. 4. WRITE PROGRAMS IN HIGH-LEVEL PROGRAMMING LANGUAGES (C, C++, JAVA) THAT CONNECT TO A DMBS AND THAT EMPLOY EMBEDDED SQL. 5. COMPARE AND CONTRAST RELATIONAL AND OBJECT-ORIENTED DATABASES, EXPLAINING THE ADVANTAGES AND DISADVANTAGES OF EACH. 6. EXPLAIN THE ROLE OF DBMS IN DAILY LIFE. 7. OUTLINE SECURITY AND PRIVACY CONCERNS IN DBMS, AND EXPLAIN HOW THESE CONCERNS ARE CURRENTLY ADDRESSED. 8. PLAN A DBMS FROM SPECIFICATIONS. 9. DISCUSS NEW AND EMERGING PARADIGMS IN DBMS BY DESCRIBING A LEADING-EDGE EXAMPLE. 10. EXPLAIN PERFORMANCE ISSUES WITH DBMS AND DESCRIBE METHODS TO INCREASE DBMS PERFORMANCE. OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE 1. A KNOWLEDGE AND UNDERSTANDING OF KEY CONCEPTS AND METHODOLOGIES IN DBMS AND DATABASE TECHNOLOGY. 2. THE ABILITY TO WRITE BASIC DBMS PROGRAMS IN A HIGH LEVEL PROGRAMMING LANGUAGE (C, C++, C#) WITH SQL. 3. THE ABILITY TO PLAN, IMPLEMENT, AND TEST SQL QUERIES. 4. AN ABILITY TO PLAN, WRITE, ANALYZE, AND REVISE TECHNICAL REPORTS AND SCIENTIFIC DOCUMENTATION, BOTH INDIVIDUALLY AND THROUGH GROUP EFFORTS, ACCOMPLISHED THROUGH DBMS LABORATORY PROJECTS. 5. A FAMILIARITY WITH RESEARCH METHODS, TECHNICAL, AND SCIENTIFIC LITERATURE RELATED TO DBMS. 6. A BASIC KNOWLEDGE OF DATA MINING AND ONLINE ANALYTIC PROCESSING, AND HOW IT RELATES TO DBMS. 7. AN UNDERSTANDING OF LEADING EDGE DBMS APPLICATIONS, INCLUDING CONTENTDRIVEN SEARCHES AND BUSINESS INTELLIGENCE. 8. THE ABILITY TO CORRECTLY AND THOROUGHLY DOCUMENT THE ENTIRE PROCESS OF DBMS DEVELOPMENT, FROM INCEPTION TO FINAL TESTING. COURSE EXPECTATIONS COURSE CODE: COSC 3657 COURSE NAME: DISTRIBUTED SYSTEMS FACULTY MEMBER: RENATA SMOLIKOVA-WACHOWIAK 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: Introduction to computer networks and computer systems interconnected by networks, including both the hardware and software of selected LANs and WANs. The issues of reliable and secure communication, layered models, distributed file systems, and concurrency will be discussed. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. DEFINE BASIC CONCEPTS AND TECHNIQUES IN DISTRIBUTED SYSTEMS AND THE DESIRED PROPERTIES OF SUCH SYSTEMS. 2. DEMONSTRATE KNOWLEDGE OF THE NATURE OF DISTRIBUTED SYSTEMS BY UNDERLYING EXAMPLES AND LATEST TRENDS. 3. APPLY DISTRIBUTED SYSTEMS TECHNIQUES. 4. DEMONSTRATE AN UNDERSTANDING OF NETWORK PRINCIPLES AND INTERNET PROTOCOLS BY IMPLEMENTING ALGORITHMS. 5. IDENTIFY CHALLENGES WHEN DESIGNING A RELIABLE DISTRIBUTED SYSTEM . 6. IDENTIFY SECURITY ISSUES WHEN DESIGNING AND IMPLEMENTING DISTRIBUTED SYSTEMS AND/OR PROTOCOLS. 7. WRITE DISTRIBUTED SYSTEM SOFTWARE USING OPERATING SYSTEM MECHANISMS AND HIGHERLEVEL MIDDLEWARE AND LANGUAGES. OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE 1. A GENERAL KNOWLEDGE AND UNDERSTANDING OF KEY CONCEPTS AND TERMS IN DISTRIBUTED SYSTEMS. 2. AN UNDERSTANDING OF HOW TO DESIGN A DISTRIBUTED SYSTEM AND SPECIFY THE DESIRED PROPERTIES OF SUCH SYSTEMS. 3. AN ABILITY TO APPLY KNOWLEDGE OF OBJECT-ORIENTED PROGRAMMING (E.G. JAVA), OPERATING SYSTEMS, AND ELEMENTARY COMPUTER ARCHITECTURE. 4. AN ABILITY TO IMPLEMENT DISTRIBUTED AND NETWORKED ALGORITHMS USING HIGH-LEVEL PROGRAMMING LANGUAGES. 5. AN ABILITY TO SELECT APPROPRIATE TOOLS FOR BUILDING DISTRIBUTED COMPUTER SYSTEMS AND NETWORKS. 6. FAMILIARITY WITH PAST AND CURRENT RESEARCH ISSUES IN DISTRIBUTED SYSTEMS AND NEW CHALLENGES IN THIS FIELD. COURSE EXPECTATIONS COURSE CODE: COSC 3807 COURSE NAME: Project Management Faculty Member: Haibin Zhu □2012-13 □2013-14 Calendar Course Description: This course introduces several aspects of project management in a variety of environments. Topics include: team project organization and accounting; resources and cost management; human factors; analysis, tools and document preparation; technological and safety standards; product testing, verification and validation; reducing PC/LAN costs in the enterprise; capital and administrative costs; technical support. EXPECTATIONS: By the end of the course students should be able to: 1. Describe the four P’s of importance in a project, i.e., project, people, process, and product. 2. Define the roles in a project, i.e., responsibilities, duties, and rights. 3. Demonstrate through involvement in a team project the central elements of team building and team management. 4. Prepare a project plan for a software project that includes estimates of size and effort, a schedule, resource allocation, configuration control, change management, and project risk identification and management. 5. Indicate an approach to risk that will help to secure the on-time delivery of software. 6. Compare and contrast the different methods and techniques used to assure the quality of a software product. 7. Define the concepts of hazard and risk, hazard. 8. Recognize common security risks in at least two operating systems. 9. Describe the categories of threats to networked computing systems. 10. Display a systematic approach to the task of identifying hazards and risks in a particular situation. 11. Apply the basic principles of risk management in a variety of simple scenarios including a security situation. OUTCOMES: Successful graduates of this course will demonstrate 1. The ability of assessing needs and planning development activities. 2. The understanding of qualities and competencies of a project manager by explaining to team members. 3. The understanding of project structures and software development life cycle(SDLC) by writing the document of a project. 4. The ability of defining and categorising projects, the life cycle of the project, the lean and mean approach, and feasibility and risk in projects. 5. The ability of testing and assessing the feasibility of the project by writing a testing plan. 6. The ability of assessing and managing risk by computing related figures. 7. The ability of working with and leading people (project teams) by managing the project team members; managing creativity and conflict; designing internal and external roles and responsibilities; and managing relationships. 8. The understanding of the project closure stage by planning and activating the closure point; and being familiar with a project closure template. COURSE EXPECTATIONS COURSE CODE: COSC 3997 COURSE NAME: SENIOR PRACTICUM FACULTY MEMBER: BOGUSLAW SCHREYER 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: In this course, the senior student works an approved project, either while placed in a business enterprise/organization or supervised by a faculty member on campus. Projects may range from practical/experimental to theoretical, and the student is expected t5o successfully integrate theory and skills learned in the program. Evaluation of the student’s final report and presentation is on a pass/fail basis. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. DEMONSTRATE UNDERSTANDING OF THE KEY CONCEPTS OF COMPUTER SCIENCE, WITH SPECIFIC RELEVANCE TO THE DOMAIN TO THE PROJECT. THE PROJECT DOMAINS MAY VARY SIGNIFICANTLY DEPENDING ON PROFESSOR’S AND STUDENT’S INTEREST 2. APPLY CONCEPTS IN A GIVEN DOMAIN, MOSTLY BY WRITING THE APPLICATION SOFTWARE 3. SHOW INDEPENDENCE IN WORKING ON A COMPLEX PROJECT, WHICH MAY INVOLVE SEVERAL CSC DOMAINS WITH DIRECTION BUT WITH MINIMUM HELP FROM A FACULTY OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE 1. A BROAD AND DETAILED KNOWLEDGE AND CRITICAL UNDERSTANDING OF THE KEY CONCEPTS OF SPECIFIC CSC DOMAIN(S) 2. ABILITY TO READ, UNDERSTAND , AND ANALYZE THE RELATED CSC TEXTS 3. ABILITY TO SELECT AND APPLY THE APPROPRIATE KNOWLEDGE TO REAL-LIFE PROBLEMS AND CREATE SOLUTIONS TO SUCH PROBLEMS 4. DEVELOP CRITICAL THINKING AND ADVANCED ANALYTICAL, PROBLEM-SOLVING SKILLS 5. ABILITY TO GATHER, COMPREHEND, AND ANALYZE NEW CSC KNOWLEDGE FROM VARIOUS 6. 7. SOURCES AND APPLY IT IN VARIOUS CONTEXTS ABILITY TO THINK INDEPENDENTLY ABILITY TO COMMUNICATE ROBOTICS IDEAS, QUESTIONS, SOLUTIONS, BOTH ORALLY AND IN WRITING COURSE EXPECTATIONS COURSE CODE: COSC 4107 COURSE NAME: INTERFACING AND COMMUNICATION FACULTY MEMBER: MARK WACHOWIAK 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: This course introduces the fundamentals of input/output control. Techniques for interrupt handling are discussed. Course topics include input/output control methods, interrupts; interrupt acknowledgement; synchronization, Open loop, handshaking; communication protocols; external storage, physical organization and drives; user interfaces. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. DEFINE AND EXPLAIN THE TERMINOLOGY USED IN INTERFACING AND COMMUNICATION PROTOCOLS. 2. COMPARE AND CONTRAST VARIOUS INTERFACING TECHNOLOGIES. 3. DESCRIBE SYNCHRONIZATION, AND OUTLINE ITS IMPORTANCE IN STATE-OF-THE-ART SYSTEMS. 4. LIST IMPORTANT CURRENT ISSUES IN COMPUTER INTERFACING AND COMMUNICATION. 5. DESCRIBE, AT AN ADVANCED LEVEL, STORAGE MECHANISMS, INTERFACES, MEMORY, AND PHYSICAL ORGANIZATION. 6. DESCRIBE AND EXPLAIN (CRITICALLY) A LEADING-EDGE EXAMPLE OF AN ASPECT OF INTERFACING AND COMMUNICATION. 7. WRITE A FUNCTIONAL PROGRAM AND/OR DRIVER TO INTERFACE COMPUTER EQUIPMENT WITH DEVICES. OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE 1. A KNOWLEDGE AND UNDERSTANDING OF KEY CONCEPTS AND METHODOLOGIES IN INTERFACING AND COMMUNICATION. 2. THE ABILITY TO WRITE DRIVERS AND INTERFACES IN PROGRAMMING LANGUAGES (C, C++, C#, MATLAB, ASSEMBLY). 3. AN ABILITY TO PLAN, WRITE, ANALYZE, AND REVISE TECHNICAL REPORTS AND SCIENTIFIC DOCUMENTATION, BOTH INDIVIDUALLY AND THROUGH GROUP EFFORTS, ACCOMPLISHED THROUGH LABORATORY PROJECTS. 4. A KNOWLEDGE OF PROGRAMMING LANGUAGES, TECHNIQUES, AND PARADIGMS (E.G. USB) REQUIRED IN INTERFACING COMPUTER EQUIPMENT WITH DEVICES. 5. PROFICIENCY IN ORAL AND WRITTEN COMMUNICATION (THROUGH CLASS PRESENTATIONS AND LABORATORY REPORTS, RESPECTIVELY). 6. AN UNDERSTANDING OF THE POTENTIAL AND LIMITATIONS OF STATE-OF-THE-ART INTERFACING AND COMMUNICATION PARADIGMS. 7. THE ABILITY TO CORRECTLY AND THOROUGHLY DOCUMENT CODE. 8. AN AWARENESS OF EMERGING TRENDS IN COMPUTER INTERFACING. COURSE EXPECTATIONS COURSE CODE: COSC 4127 COURSE NAME: REAL-TIME PROGRAMMING FACULTY MEMBER: MARK WACHOWIAK 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: This course introduces the fundamentals of tools and techniques of real-time programming and computer system control. The course topics include microcomputer architecture, real-time programming language and operating system, data acquisition and communication, microprocessor and microcontroller applications, interfacing techniques. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. DEFINE AND EXPLAIN THE TERMINOLOGY USED IN EMBEDDED SYSTEMS AND REAL-TIME SOFTWARE ENVIRONMENTS. 2. OUTLINE THE PROCESS OF REAL-TIME SYSTEMS DEVELOPMENT. 3. DEVELOP AND TEST SIMPLE, YET USEFUL, REAL-TIME SYSTEMS IN A HIGH-LEVEL PROGRAMMING LANGUAGE (C, C++, C#, MATLAB, VISUAL BASIC). 4. SOLVE MATHEMATICAL PROBLEMS IN ANALOG-TO-DIGITAL AND DIGITAL-TO-ANALOG CONVERTERS BY SOLVING MATHEMATICAL PROBLEMS IN A-D AND D-A CONVERSION. 5. COMPARE AND CONTRAST VARIOUS REAL-TIME SYSTEMS. 6. DESCRIBE AN ACTUAL CASE STUDY OF REAL-TIME SYSTEM FAILURE, AND EXPLAIN HOW THE SYSTEM FAILED. 7. LIST IMPORTANT CURRENT AND FUTURE APPLICATIONS OF EMBEDDED PROCESSORS AND REAL TIME SYSTEMS. 8. UNDERSTAND DIFFERENCES BETWEEN EMBEDDED AND NON-EMBEDDED PROGRAMMING LANGUAGES BY CREATING A COMPARATIVE TABLE. 9. DESCRIBE AND EXPLAIN (CRITICALLY) A LEADING-EDGE EXAMPLE OF A REAL-TIME SYSTEM. 10. COMPARE AND CONTRAST COMPUTATIONAL RESOURCES (MEMORY, PROCESSOR SPEED, DATA BANDWIDTH, ETC.) IN REAL-TIME AND NON-REAL-TIME SYSTEMS. 11. SIMULATE REAL TIME SYSTEMS IN REAL-TIME MODELING ENVIRONMENTS. OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE 1. A KNOWLEDGE AND UNDERSTANDING OF KEY CONCEPTS AND METHODOLOGIES IN EMBEDDED SYSTEMS TECHNOLOGY. 2. THE ABILITY TO WRITE BASIC REAL-TIME PROGRAMS IN A HIGH LEVEL PROGRAMMING LANGUAGE (C, C++, C#, MATLAB, VISUAL BASIC). 3. A KNOWLEDGE OF THE DIFFERENCES BETWEEN REAL-TIME AND NON-REAL-TIME SYSTEMS. 4. AN ABILITY TO PLAN, WRITE, ANALYZE, AND REVISE TECHNICAL REPORTS AND SCIENTIFIC DOCUMENTATION, BOTH INDIVIDUALLY AND THROUGH GROUP EFFORTS, ACCOMPLISHED THROUGH EXTENSIVE LABORATORY PROJECTS. 5. AN ABILITY TO COORDINATE AND CONTRIBUTE TO GROUP EFFORTS IN REAL -TIME SOFTWARE DEVELOPMENT. 6. A FAMILIARITY WITH RESEARCH METHODS, TECHNICAL, AND SCIENTIFIC LITERATURE. 7. A KNOWLEDGE OF SOFTWARE ENGINEERING PRINCIPLES ASSOCIATED WITH REAL-TIME PROGRAMMING PROJECTS. 8. AN UNDERSTANDING OF THE MATHEMATICAL AND COMPUTATIONAL ASPECTS OF REALTIME AND EMBEDDED SYSTEMS. 9. PROFICIENCY IN ORAL AND WRITTEN COMMUNICATION (THROUGH CLASS PRESENTATIONS AND LABORATORY REPORTS, RESPECTIVELY). 10. AN UNDERSTANDING OF THE POTENTIAL AND LIMITATIONS OF REAL-TIME AND EMBEDDED SYSTEMS. 11. THE ABILITY TO CORRECTLY AND THOROUGHLY DOCUMENT CODE. 12. A BASIC KNOWLEDGE OF REAL-TIME SIMULATION TECHNIQUES. 13. AN AWARENESS OF EMERGING TRENDS IN EMBEDDED SYSTEMS TECHNOLOGY AND ALGORITHMS. COURSE EXPECTATIONS COURSE CODE: COSC 4206 COURSE NAME: TOPICS IN COMPUTER SCIENCE FACULTY MEMBER: MARK WACHOWIAK 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: This course provides advanced coverage of particular topics in Computer Science. The content varies according to the specialization of the faculty teaching the course. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. INVESTIGATE, EXAMINE, INTERPRET, AND ANALYZE LEADING-EDGE AND STATE-OF-THE-ART COMPUTER SCIENCE AND COMPUTER TECHNOLOGY CONCEPTS AND TOPICS. 2. DESIGN, IMPLEMENT, TEST, AND ANALYZE ORIGINAL COMPUTER IMPLEMENTATIONS TO SOLVE USEFUL PROBLEMS. 3. EXPLAIN, DISCUSS, AND PRESENT ORIGINAL WORK, AS WELL AS FINDINGS FROM THE TECHNICAL AND SCIENTIFIC LITERATURE, BROADLY DEFINED. 4. DISSEMINATE (ORALLY AND IN WRITING) ORIGINAL FINDINGS AND STATE-OF-THE-ART TECHNOLOGIES. OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE: 1. AN IN-DEPTH KNOWLEDGE AND UNDERSTANDING OF RELEVANT, USEFUL, AND TIMELY COMPUTER SCIENCE TOPICS. 2. THE ABILITY TO CRITICALLY READ, ASSESS, AND REPORT ON (BOTH ORALLY AND IN WRITING) LEADING-EDGE AND STATE-OF-THE-ART COMPUTER SCIENCE LITERATURE. 3. A SOPHISTICATED KNOWLEDGE OF SOFTWARE ENGINEERING AND ALL PHASES OF SOFTWARE DEVELOPMENT. 4. AN ABILITY TO PLAN, WRITE, ANALYZE, AND REVISE TECHNICAL REPORTS AND SCIENTIFIC DOCUMENTATION, ACCOMPLISHED THROUGH EXTENSIVE LABORATORY PROJECTS. 5. AN AWARENESS OF EMERGING TRENDS IN ALGORITHMS, COMPUTER SCIENCE, AND COMPUTER TECHNOLOGY. COURSE EXPECTATIONS COURSE CODE: COSC 4207 COURSE NAME: SEMINARS IN COMPUTER SCIENCE FACULTY MEMBER: ALL COSC FACULTY 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: This seminar course provides coverage of particular topics of current importance. Reading and research will be conducted in the areas of interest of students and faculty teaching the course. Students will present seminars and prepare essays. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. EXPLAIN, DISCUSS, SUMMARIZE, AND CRITIQUE RELEVANT AND IMPORTANT PROBLEMS AND OPPORTUNITIES IN COMPUTER SCIENCE TECHNOLOGY AND RESEARCH. 2. DESIGN, IMPLEMENT, TEST, AND ANALYZE ORIGINAL COMPUTER IMPLEMENTATIONS TO SOLVE USEFUL PROBLEMS. 3. ANALYZE AND INTERPRET RESULTS FROM ORIGINAL INVESTIGATIONS. 4. COMPARE AND CONTRAST DIFFERENT COMPUTATIONAL APPROACHES TO PROBLEMS. 5. DISCUSS (ORALLY AND IN WRITING) ORIGINAL WORK AS WELL AS FINDINGS FROM THE TECHNICAL AND SCIENTIFIC (BROADLY DEFINED) LITERATURE IN COMPUTER SCIENCE. OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE: 1. AN IN-DEPTH KNOWLEDGE AND UNDERSTANDING OF RELEVANT, USEFUL, AND TIMELY COMPUTER SCIENCE TOPICS. 2. THE ABILITY TO INDEPENDENTLY AND CRITICALLY READ, ASSESS, ANALYZE AND REPORT ON (BOTH ORALLY AND IN WRITING) LEADING-EDGE AND STATE-OF-THE-ART COMPUTER SCIENCE LITERATURE. 3. A SOPHISTICATED KNOWLEDGE OF RESEARCH METHODS AND R&D IN COMPUTER SCIENCE AND TECHNOLOGY. 4. AN ABILITY TO PLAN, WRITE, ANALYZE, AND REVISE TECHNICAL REPORTS AND SCIENTIFIC DOCUMENTATION, ACCOMPLISHED THROUGH EXTENSIVE LABORATORY AND RESEARCH PROJECTS. 5. AN AWARENESS OF EMERGING TRENDS, OPPORTUNITIES, AND LIMITATIONS IN COMPUTER ALGORITHMS AND TECHNOLOGY. COURSE EXPECTATIONS COURSE CODE: COSC 4607 COURSE NAME: SECURITY AND PROTECTION FACULTY MEMBER: MARK WACHOWIAK 2012-13 2013-14 CALENDAR COURSE DESCRIPTION: This course introduces physical security, privacy, capabilities and access lists, authentication mechanisms and formalisms. The course topics include: overview of system security, security methods and devices, memory protection, recovery management, secure operating systems, hardware/software redundancy. EXPECTATIONS: BY THE END OF THE COURSE STUDENTS SHOULD BE ABLE TO: 1. DEFINE KEY TECHNICAL TERMS ASSOCIATED WITH COMPUTER AND NETWORK SECURITY. 2. COMPARE AND CONTRAST THE DIFFERENT TYPES OF ELECTRONIC “ATTACKS”, AND THE MECHANISMS FOR PREVENTION AND AMELIORATION. 3. WRITE PROGRAMS THAT IMPLEMENT BASIC SECURITY MEASURES IN COMPUTER SYSTEMS. 4. EXPLAIN THE STEPS AND PROCEDURES INVOLVED IN USER-LEVEL COMPUTER SECURITY. 5. EXPLAIN THE MECHANISMS BY WHICH TRANSACTIONS ARE SECURED IN A NETWORKED ENVIRONMENT. 6. COMPARE AND CONTRAST THE DIFFERENCES IN SECURITY FOR DIFFERENT OPERATING SYSTEMS (WINDOWS, MACOS, LINUX, UNIX). 7. DISCUSS NEW AND EMERGING PARADIGMS IN COMPUTER SECURITY BY DESCRIBING A LEADINGEDGE EXAMPLE. 8. EXPLAIN THE MECHANISMS BY WHICH “VIRUSES”, “WORMS”, “ADWARE”, AND OTHER “MALWARE” COMPROMISE COMPUTER SECURITY, AND OUTLINE STEPS NEEDED TO PROTECT AGAINST MALWARE. 9. WRITE ENCRYPTION AND DECRYPTION CODE IN A HIGH-LEVEL PROGRAMMING LANGUAGE (E.G. JAVA). 10. COMPARE AND CONTRAST VARIOUS ENCRYPTION METHODS. OUTCOMES: SUCCESSFUL GRADUATES OF THIS COURSE WILL DEMONSTRATE 1. A KNOWLEDGE AND UNDERSTANDING OF KEY CONCEPTS AND METHODOLOGIES IN COMPUTER SECURITY. 2. THE ABILITY TO WRITE BASIC PROGRAMS DEALING WITH COMPUTER SECURITY ISSUES. 3. THE ABILITY TO CREATE AND IMPLEMENT A SECURITY PLAN FOR VARIOUS OPERATING SYSTEMS AND ENVIRONMENTS (STANDALONE AND NETWORKED). 4. A MATHEMATICAL AND COMPUTATIONAL KNOWLEDGE OF CRYPTOGRAPHY (ENCRYPTION AND DECRYPTION). 5. A FAMILIARITY WITH RESEARCH METHODS, TECHNICAL, AND SCIENTIFIC LITERATURE RELATED TO COMPUTER SECURITY. 6. A THEORETICAL UNDERSTANDING OF POTENTIAL FUTURE SECURITY RISKS (E.G. QUANTUM COMPUTING TO BREAK RSA CODES). 7. AN UNDERSTANDING OF LEADING EDGE COMPUTER SECURITY MECHANISMS. 8. A BASIC UNDERSTANDING BIOMETRICS. 9. A BASIC UNDERSTANDING OF MALWARE, WHAT IT DOES, AND HOW TO PROTECT AGAINST IT. 10. A THEORETICAL KNOWLEDGE OF OPERATING SYSTEM SECURITY MECHANISMS FOR THE WINDOWS, LINUX, UNIX, AND MACOS OPERATING SYSTEMS. COURSE EXPECTATIONS COURSE CODE: COSC 4896 COURSE NAME: Honours Research I Faculty Member: All COSC Faculty ☒2012-13 ☒2013-14 Calendar Course Description: An individualized studies course in which a senior student conducts research in a topic not specifically covered in other courses, under the supervision of a faculty member with expertise in that area. Each student will be required to make oral presentations on their work to faculty and students at several seminar sessions held for this purpose, and to submit a final report, written in the format of a journal article. EXPECTATIONS: By the end of the course students should be able to: 1. EXPLAIN, DESCRIBE, AND PRESENT (BOTH ORALLY AND IN WRITING) THE KEY THEORETICAL 2. 3. 4. 5. AND PRACTICAL CONCEPTS OF COMPUTER SCIENCE SPECIFICALLY RELATED TO ADVANCED RESEARCH (PROJECT DOMAINS VARY DEPENDING ON THE INTERESTS OF THE SUPERVISING PROFESSOR AND THE STUDENT). STUDY, ANALYZE, AND CRITIQUE ADVANCED STATE-OF-THE-ART AND LEADING-EDGE COMPUTER SCIENCE CONCEPTS. SHOW INDEPENDENCE IN WORKING ON ADVANCED RESEARCH, WHICH MAY INVOLVE SEVERAL COMPUTER SCIENCE DOMAINS WITH DIRECTIONS, BUT WITH MINIMUM HELP FROM FACULTY. EXPLAIN THE OPPORTUNITIES AND LIMITATIONS OF COMPUTER-BASED APPROACHES FOR PROBLEM-SOLVING. USE AND UNDERSTAND ADVANCED RESEARCH METHODS. OUTCOMES: Successful graduates of this course will demonstrate 1. A BROAD AND DETAILED KNOWLEDGE AND CRITICAL UNDERSTANDING OF THE KEY CONCEPTS 2. 3. 4. 5. 6. 7. 8. OF SPECIFIC COMPUTER SCIENCE DOMAIN(S). ABILITY TO READ, UNDERSTAND, ANALYZE, AND CRITIQUE THE RELATED COMPUTER SCIENCE AND RELATED LITERATURE. ABILITY TO RELATE THEORETICAL TO PRACTICAL KNOWLEDGE. DEVELOP CRITICAL THINKING AND ADVANCED ANALYTICAL, PROBLEM-SOLVING SKILLS. ABILITY TO GATHER, COMPREHEND, AND ANALYZE NEW COMPUTER SCIENCE AND RELATED KNOWLEDGE FROM THE SCIENTIFIC LITERATURE AND APPLY IT IN VARIOUS CONTEXTS. ABILITY TO SYNTHESIZE KNOWLEDGE GAINED OVER THE STUDENT’S ENTIRE COURSE OF STUDY. ABILITY TO THINK INDEPENDENTLY. ABILITY TO COMMUNICATE IDEAS, QUESTIONS, AND SOLUTIONS, BOTH ORALLY AND IN WRITING. COURSE EXPECTATIONS COURSE CODE: COSC 4897 COURSE NAME: Honours Research II Faculty Member: All COSC Faculty ☒2012-13 ☒2013-14 Calendar Course Description: An individualized studies course in which a senior student conducts research in a topic not specifically covered in other courses, under the supervision of a faculty member with expertise in that area. Each student will be required to make oral presentations on their work to faculty and students at several seminar sessions held for this purpose, and to submit a final report, written in the format of a journal article. EXPECTATIONS: By the end of the course students should be able to: 1. EXPLAIN, DESCRIBE, AND PRESENT (BOTH ORALLY AND IN WRITING) THE KEY THEORETICAL 2. 3. 4. 5. AND PRACTICAL CONCEPTS OF COMPUTER SCIENCE SPECIFICALLY RELATED TO ADVANCED RESEARCH (PROJECT DOMAINS VARY DEPENDING ON THE INTERESTS OF THE SUPERVISING PROFESSOR AND THE STUDENT). STUDY, ANALYZE, AND CRITIQUE ADVANCED STATE-OF-THE-ART AND LEADING-EDGE COMPUTER SCIENCE CONCEPTS. SHOW INDEPENDENCE IN WORKING ON ADVANCED RESEARCH, WHICH MAY INVOLVE SEVERAL COMPUTER SCIENCE DOMAINS WITH DIRECTIONS, BUT WITH MINIMUM HELP FROM FACULTY. EXPLAIN THE OPPORTUNITIES AND LIMITATIONS OF COMPUTER-BASED APPROACHES FOR PROBLEM-SOLVING. USE AND UNDERSTAND ADVANCED RESEARCH METHODS. OUTCOMES: Successful graduates of this course will demonstrate 1. A BROAD AND DETAILED KNOWLEDGE AND CRITICAL UNDERSTANDING OF THE KEY CONCEPTS 2. 3. 4. 5. 6. 7. 8. OF SPECIFIC COMPUTER SCIENCE DOMAIN(S). ABILITY TO READ, UNDERSTAND, ANALYZE, AND CRITIQUE THE RELATED COMPUTER SCIENCE AND RELATED LITERATURE. ABILITY TO RELATE THEORETICAL TO PRACTICAL KNOWLEDGE. DEVELOP CRITICAL THINKING AND ADVANCED ANALYTICAL, PROBLEM-SOLVING SKILLS. ABILITY TO GATHER, COMPREHEND, AND ANALYZE NEW COMPUTER SCIENCE AND RELATED KNOWLEDGE FROM THE SCIENTIFIC LITERATURE AND APPLY IT IN VARIOUS CONTEXTS . ABILITY TO SYNTHESIZE KNOWLEDGE GAINED OVER THE STUDENT’S ENTIRE COURSE OF STUDY. ABILITY TO THINK INDEPENDENTLY. ABILITY TO COMMUNICATE IDEAS, QUESTIONS, AND SOLUTIONS, BOTH ORALLY AND IN WRITING. COURSE EXPECTATIONS COURSE CODE: COSC 4997 COURSE NAME: Honours Practicum Faculty Member: All COSC Faculty ☒2012-13 ☒2013-14 Calendar Course Description: In this course, the honours student works on an approved project, either while placed in a business enterprise/organization or supervised by a faculty member on campus. Projects may range from practical/experiential to theoretical, and the student is expected to successfully integrate theory and skills learned in the program. Evaluation of the student's final report and presentation is on a pass/fail basis. EXPECTATIONS: By the end of the course students should be able to: 1. EXPLAIN, DESCRIBE, AND PRESENT (BOTH ORALLY AND IN WRITING) THE KEY THEORETICAL AND PRACTICAL CONCEPTS OF COMPUTER SCIENCE SPECIFICALLY RELATED TO AN ADVANCED PROJECT (PROJECT DOMAINS VARY DEPENDING ON THE INTERESTS OF THE SUPERVISING PROFESSOR AND THE STUDENT). 2. APPLY ADVANCED COMPUTER SCIENCE CONCEPTS TO A SPECIFIC DOMAIN, MOSTLY BY SOFTWARE DEVELOPMENT AND IMPLEMENTATION. 3. SHOW INDEPENDENCE IN WORKING ON A COMPLEX PROJECT, WHICH MAY INVOLVE SEVERAL COMPUTER SCIENCE DOMAINS WITH DIRECTIONS, BUT WITH MINIMUM HELP FROM FACULTY. 4. MAKE APPROPRIATE USE OF ADVANCED SOFTWARE ENGINEERING PRINCIPLES IN DEVELOPING THE PROJECT. OUTCOMES: Successful graduates of this course will demonstrate 1. A BROAD AND DETAILED KNOWLEDGE AND CRITICAL UNDERSTANDING OF THE KEY CONCEPTS OF SPECIFIC COMPUTER SCIENCE DOMAIN(S). 2. ABILITY TO READ, UNDERSTAND, ANALYZE, AND CRITIQUE THE RELATED COMPUTER SCIENCE LITERATURE AND TECHNICAL DOCUMENTATION. 3. ABILITY TO SELECT AND APPLY THE APPROPRIATE KNOWLEDGE TO REAL-WORLD PROBLEMS AND CREATE SOLUTIONS TO SUCH PROBLEMS. 4. DEVELOP CRITICAL THINKING AND ADVANCED ANALYTICAL, PROBLEM-SOLVING SKILLS. 5. ABILITY TO GATHER, COMPREHEND, AND ANALYZE NEW COMPUTER SCIENCE KNOWLEDGE FROM VARIOUS SOURCES AND APPLY IT IN VARIOUS CONTEXTS. 6. ABILITY TO APPLY AND SYNTHESIZE KNOWLEDGE GAINED OVER THE STUDENT ’S ENTIRE COURSE OF STUDY. 7. ABILITY TO THINK INDEPENDENTLY. 8. ABILITY TO COMMUNICATE IDEAS, QUESTIONS AND SOLUTIONS, BOTH ORALLY AND IN WRITING.