Computer

advertisement
Computer
Code
Name
CPE 100
Introduction to Computer Engineering
CPE 110
Computer Engineering Exploration
CPE 112
Discrete Mathematics for Computer
Engineers
CPE 130
Algorithms and Data Structures
Course Description and strengths
Programming concepts will be covered while the syntax and semantics of C language will be emphasized. Lab hours will focus on
programming experience. Subject matter includes input, output, expression grammar, library function calls, selection structures,
looping construction, arrays, writing functions, understanding pointers, file processing, and using structures. An introduction to
object-oriented programming with C++ will also be covered.
Introduction to practical concepts of computer systems and its components including basic electric circuits, electronic devices, logic
gates and digital circuits, and hardware interfacing. Hands-on experience focuses on computer simulations and experiments on the
mentioned topics.
Basics of logic: relations, mathematical reasoning and logical reasoning, propositional logic, and predicate logic. Introduction to logic
programming, graphs, trees, finite automata and context-free grammar, and the Turing machine. Introduction to the complexity
analysis of algorithms and to number theory.
Introduction to data representation and structure, array, linked-listed, stacks and queues, trees, graphs, analysis of algorithms,
recursion, sorting and searching algorithms, hashing, heap tree, binary search tree, AVL tree, breadth first search, dept first search,
string processing, and data compression.
CPE 214
Signals and Systems
Introduction to signal and system. Continuous-time signals and systems: mathematical representation of signals, frequency-domain
representation of signals, time-domain representation of systems, transform-domain representation of systems and continuous-time
system architecture. Discrete-time signals and systems: mathematical representation of signals, frequency-domain representation of
signals, time-domain representation of systems, transform-domain representation of systems and discrete-time system architecture.
First order and higher order differential equations. Frequency response, Fourier analysis and Laplace transforms
CPE 220
Digital Systems Design
Number systems, codes, logic gates, Boolean algebra, logic functions, multi-level combinational logic and simplification, flip-flops and
related devices, sequential logic design and optimization, types of registers and counters including design and implementation,
programmable and steering logic, PALs and PLAs, multiplexers and selectors, logic design in computer simulation program.
CPE 221
Circuits and Electronics for Computer
Engineers
Electrical units and definitions; fundamental laws; natural response; forced response; complete response; power; RMS value; AC
circuits and polyphase circuits. Introduction to semiconductor devices; diodes, bipolar junction transistor(BJT), field-effect
transistor(FET). DC biasing and AC small-signal analysis of BJT and FET amplifiers, frequency response consideration, operational
amplifiers, basic DC power supply, A/D and D/A conversions, some useful circuits.
Digital System Laboratory
Experiments on digital circuit design using both simulation programs and actual circuits. The experiments consist of basic logic gates,
clock generation circuits, counter circuits, encoder circuits, decoder circuits, shift register current, arithmetic circuits, multiplexer and
demultiplexer circuits, digital-to-analog and analog-to-digital circuits, and design and implementation of Field Programmable Gate
Array (FPGA) circuits.
CPE 221
Computer
Code
CPE 222
Name
Circuit and Electronic Laboratory
Course Description and strengths
Using some electronic measuring equipment with safety considerations to experiment on some useful electrical and electronic
circuits that coincide with the CPE 221 course.
CPE 223
Computer Architecture and Systems
Topics cover processor technology, input and output, memory hierarchy, interleaved memory, bus, cache, pipelined architectures,
computer arithmetic, and multiprocessors technology. The course will also discuss machine instructions and assembly language to
be applied to actual microprocessor design for physical control and data communications. Experiments focus on microcomputer,
microprocessor and microcontroller interfacing with physical devices.
CPE 223
Digital System Design
Number systems, codes, logic gates, Boolean algebra, logic functions, multi-level combinational logic and simplification, flip-flops and
related devices, sequential logic design and optimization, types of registers and counters including design and implementation,
programmable and steering logic, PALs and PLAs, multiplexers and selectors, logic design in computer simulation program.
CPE 231
Principles of Programming Languages
Programming language paradigms and the principle of programming language design are provided. The structure and design
principles of programming languages consist of syntax and semantic, notion of type, role of variable declarations, bindings and scope,
sequence control, subprogram control, and abstract data type. Four programming language paradigms include imperative
programming, object-oriented programming, functional programming, and script programming.
CPE 301
Seminar
Under the supervision of faculty members, each student works independently, selects a topic from an academic paper in computer
engineering, and prepares for a presentation and discussion in class. The selected topic may be related to the project topic in CPE
402.
CPE 325
Computer Architecture and Systems
Topics cover processor technology, Input and output, memory hierarchy, interleaved memory, bus, cache, pipelined architectures,
computer arithmetic, and multiprocessors technology. The course will also discuss machine instructions and assembly language to
be applied to actual microprocessor design for physical control and data communications.
Database and ERP Systems
Introduction to the practical concepts in database system analysis, design and implementation. Hands-on experience will also be
emphasized in developing front-end software for a backend database of a client-server, 3-tier architecture with web browser
interface. Theoretical aspects of relational databases general to all database products will be the focus, while specific database
products including Microsoft SQL, Oracle, and MySQL will be covered. Database concepts covered include data modeling, SQL,
database design, normalization, multi-user databases, access standards such as ODBC, ADO, and XML. Concepts in Enterprise
Resource Planning will be covered throughout such as manufacturing, MRP, finance, human resource management, and inventory
management.
CPE 332
Computer
Code
Name
Course Description and strengths
This course introduces students to principles and techniques used to create functionally correct, easy to use, robust, reliable, and
maintainable software systems. The course covers all phases of the software development lifecycle, focusing on practical approaches
that can be applied in each phase. Lectures are supplemented by homework assignments to encourage problem-based learning. The
course also includes a team-based collaborative term project that requires students to analyze a proposed software system and
produce a set of development artifacts typical of a real-world software development project.
CPE 333
Software Engineering
CPE 334
Operating Systems
CPE 341
Computer Networks
CPE 342
Computer Network Laboratory
Experiments for supporting the study of computer networking protocols. Network protocol analyzer software, basic router
configuration commands, network interface and routing protocol configuration in computers and routers for IP networking. Analysis
of TCP protocols, IP routing and addressing protocols. Operations of application layer protocols and network management protocols.
CPE 403
Computer Engineering Project 2
Continuation and the completion of the project initiated in CPE 402 course.
CPE 442
Computer Engineering Project 1
Students work in groups of 1-3 persons under the supervision of faculty members. Each group is encouraged to develop and design a
systematic method to investigate and solve computer and information technology related problems that demand theoretical
backing. The objective is to have students gain experience in systems development for a relatively large size project.
CPE 442
Computer Network Laboratory
Experiments supporting the study of computer networking protocols. Network protocol analyzer software, basic router configuration
commands, network interface and routing protocol configuration in computers and routers for IP networking. Analysis of TCP
protocols, IP routing and addressing protocols. Operations of application layer protocols and network management protocols.
CSC 102
Computer Programming I
Fundamental concepts of programming, variables, operators, elementary types, console input and output, programming style and
documentation, program debugging, control statements, loops, functions, passing parameters by values, variable scope, one and two
dimensional arrays, basic search and sort algorithms.
CSC 103
Computer system, processor, memory and Input/Output modules, interconnections among these major components, central
processing unit, control unit, registers, arithmetic and logic unit, instruction unit and interconnections among these components,
Computer Architectures and Organization
architectural issues, instruction-set design and data types, organizational issues, pipelining, parallel organization, multiple processors
and vector processing organizations.
Theoretical aspects of Operating systems: memory management, process management, I/O management, and information
management. Issues on Job Control Language, Assembler, Loader, and Linker are covered. Some operating systems, compilers,
interpreters and utilities are studied in detail.
Fundamental concepts and protocols in computer communication networks, particularly IP networks. Packet switching and circuit
switching networks, layered network architectures. Application layer protocols, socket programming, TCP/IP protocol suite, unicast
and multicast routing protocols, link layer protocols and multiple access networks. Wired and wireless local area network standards,
and basic mobile Internet protocols.
Computer
Code
Name
Course Description and strengths
Computer Programming II
Objects and classes, data field encapsulation, array of objects, strings, command-line arguments, file input and output, pointer
concept, list structure, recursion, testing, test automation, testing techniques, fundamental object-oriented programming,
superclasses and subclasses, polymorphism, abstract classes, interfaces, event-driven programming, and GUI.
CSC 165
Discrete Mathematics
Propositional logic, predicate logic, elementary number theory, methods of proof, set theory, proving set identities, counting and
probability, permutations, combinations, binomial theorem, Pascal's triangle, conditional probability, functions, pigeonhole principle,
relations, partial order relations, total order relations, sequences, mathematical induction, graphs and trees, paths and circuits,
binary trees, and spanning trees, finite state machines.
CSC 209
Data Structures
Abstract data type in Java, pointer and vector in Java, running time and complexity, linked-lists, stacks, queues, trees, recursion,
numerical case studies, trees, graph, binary heap, tree algorithms, sorting case studies, hash table, data compression, and string
matching.
CSC 210
Analysis and Design of Algorithms
Computational problems, set and graphs, searching and sorting algorithms, brute force, divide-and-conquer, decrease-and-conquer,
and transform-and-conquer approaches to problem solving, asymptotic efficiency of algorithms, algorithm optimizations using
dynamic programming and greedy algorithms two major tradeoffs; space and time, of computing, and limitations of algorithm power.
CSC 213
Systems Analysis and Design
System component, System Development Life Cycle, analysis methodologies and Computer-aided Software Engineering tools,
technical, operational, and economical feasibility studies, Data Flow Diagram, Entity Relationship Diagram, input design, output
design, database design, documentation, and presentation.
CSC 233
Programming Paradigms
Review of grammars, languages and their syntax and semantics, parsing and ambiguity, Backus Normal Form (BNF), finite state
grammars and recognizers, lexical scanners, implementation of symbol tables, context-free languages, push-down automata, and
context- free parsing techniques, alternative programming paradigms (imperative,
functional, logic, and so on).
CSC 261
Statistics for Scientists
Statistics, probability theory, probability distribution, sampling distribution, estimation hypothesis testing, test of goodness of fit and
independence, analysis of variance and experimental design, simple linear regression, and multiple linear regression.
CSC 317
Operating Systems
CSC 318
Database Systems
CSC 319
Object-Oriented Software Development
CSC 105
Prerequisite: CSC 103 Computer Architecture and Organizations & CSC 209 Data Structures
Database systems, database components and architecture, data modeling, database logical and physical design, Entity-relationship
(ER) model, normalization, database languages, Structured Query Language (SQL), Relational Algebra, Relational Calculus, indexing,
query optimization, and transaction management
Object-oriented software development process, object-oriented principles, object and class design, reuse, object-oriented code
quality, quality improvement techniques, error handling, design patterns, object-oriented systems and applications
Computer
Code
CSC 320
Name
Computer Networks
CSC 321
Software Engineering
CSC 323
Management Information Systems
Course Description and strengths
Introduction to computer networks, transmission media, structured cabling, concepts, horizontal cabling, backbone cabling,
telecommunication spaces, testing and certification of cabling, cabling design, cabling installation, bridging, spanning tree protocol,
Local Area Network (LAN), Ethernet, switch basics, Virtual Local Area Network (VLAN),
internet address, static routing, dynamic routing, Routing Information Protocol (RIP), Open Shortest Path First (OSPF) routing, basic
router configuration, serial connection, and wireless Local Area Network (LAN).
Introduction to software engineering, software process, requirement analysis, system modeling, Graphical User Interface (GUI)
design, architectural design, testing, software project management, software evolution, verification & validation, software cost
estimation, software quality assurance, Capability Maturity Model Integration (CMMI), and Computer-Aided Software Engineering
(CASE) tools.
Introduction to computer-based information system, using technology as a competitive advantage, business computing system
theory; system life cycle methodologies, computing technology and computer processing, database management system and data
communications as a foundation for information system.
CSC 334
Human-Computer Interaction
Human behavior, methodologies for obtaining and interpreting human behavior: work activity analysis, observation techniques,
questionnaire, task analysis and modeling techniques, methods for interface representation and prototyping tools, cognitive
walkthroughs, usability studies and verbal protocol analysis, the four approaches to human-computer interaction, empirical,
cognitive, predictive, and anthropomorphic and case studies.
CSC 335
Computer Graphics
Introduction to computer graphics, fundamental algorithms for two and three dimensional graphics, interactive, real-time rendering
applications using Open Graphic Library (OpenGL), viewing pipeline, 3D geometry creation, transformations, the camera model,
illumination, projections, and rasterization.
CSC 344
Decision Support Systems
Overview of information systems, Decision Support Systems (DSS) vs. other Information Systems (IS), human decision making
processes, systems and models, types and architecture of DSS, issues in implementation of DSS project, hardware, supporting
Operating System (OS) and platforms, mathematical models business intelligence, and business performance management.
CSC 401
Selected Programming Language
CSC 424
Software Project Management
CSC 433
Software Quality Assurance
To provide a comprehensive study of one or more selected programming languages. Selected languages may vary from semester to
semester and will be announced before the starting of each semester. The objective is to introduce students to alternative
programming languages.
Project activities, defining, planning, leading, monitoring, constraints of performance specifications, schedule and budget, negotiating
and writing contracts, scheduling tools, time estimation, network diagrams, team organization, support team, role of project
manager, monitoring tools, and project cost reports.
Experimental design and analysis, measurement and validation, data collection and analysis, implementing software quality program,
measuring the software process and product quality attributes, making predictions, assuring software quality with measurements,
and ISO 9000 Series for software production.
Computer
Code
Name
Course Description and strengths
CSC 446
Data Mining
Introduction to data mining and machine learning, concepts, instances, and attributes, classification methods, decision trees,
evaluation and credibility, evaluation with lift and cost, data preparation for knowledge discovery, clustering, association rules,
visualization, summarization, and deviation detection, applications in targeted marketing and customer modeling, applications with
genomic microarray data analysis, applications in other areas, data mining and society and its future direction, and advanced topics
in data mining.
CSC 489
Computer Security Management
Computer security principles, managerial aspects of security: confidentiality, privacy, volatility in computerized information,
protection of information against unauthorized observation, modification, and denial of service, encryption, legal and ethical issues,
and disaster recovery planning.
CSC 491
Platform-based Development
Platform-based development is concerned with the design and development of software applications that reside on specific software
platforms, taking into account platform-specific constraints. This course will provide an introduction and overview to web
programming, multimedia development, mobile computing, app development, and robotics as examples of relevant platforms.
Topics may include programming via platform-specific APIs, overview of platform languages such as HTML 5 and Objective C,
programming under platform constraints, challenges with mobility and wireless communication, location-aware applications, and
types of game platforms.
CSC 492
Machine Learning
Supervised learning, parametric/non-parametric learning, neural networks, support vector machines. Unsupervised learning,
clustering, dimensionality reduction, kernel methods. Learning theory, reinforcement learning, adaptive control. Applications of
machine learning, robotic control, data mining, bioinformatics, speech recognition, text and web data processing.
CSC 495
Digital Image Processing
This course gives students the knowledge of basic digital image processing concepts. Its theory and principles will be given
throughout the semester. The digital image processing software, libraries and tools will be presented, taught and used to implement
some simple and interesting image processing programs, simply to give the students the ideas of what image processing could be
used. By acquiring these basic concepts, the students can further extend them for other related computer science courses, especially
Computer Graphics (CG), Computer Vision, and Computer Aided Geometric Design (CAGD).
CSC 4961/71
Problem-based Learning I & II 3
CSC 4962
Cobol Programming Workshop
CSC 498
Computer Science Project I
This course will cover new or advanced topics in computer science. The contents will be specified at the time this course is offered.
This course may be repeated for credit only if the topics are different.
This course will first cover the basics of the Cobol programming language, including structure, syntax and commands, and data
structures. Then it will provide a series of practical programming workshop on Cobol.
This course is the first portion of a project-based individual or group study investigation. Students will work under the supervision of
faculty member(s). Each group must choose to conduct a systematic investigation of a computer science problem of its choice.
Project topic must require a substantial background in computer science and the applications of studied concepts and techniques.
Download