Engineering Course Descriptions
2006/07 catalog
ELECTRICAL ENGINEERING COURSE DESCRIPTIONS
ELE270 Introduction to Circuit Analysis 4(3,3)
Analysis of linear circuits; energy and power considerations; The Venin and Norton equivalent circuits; various network theorems. Applications of Kirchhoff’s voltage and current laws. Transients in RL and RC circuits. Students learn basic principles to analyze electronic circuits.
Prerequisites: MATH134, SCI245
ELE312 Signals and Systems 3(3,0)
Operational methods, system functions, and the complex frequency domain in a circuit context leading to an input-output characterization of linear time-invariant (LTI) circuit behavior. Lumped continuous-time systems and discrete-time systems. Laplace and Z transforms. Unit sample response and convolution. Fundamental properties of Fourier series and transforms and applications to sampling and filtering. Students are introduced to fundamental tools of signals and systems used to analyze and design electric systems.
Prerequisites: ELE270, MATH235
ELE313 Advanced Engineering Mathematics I 3(3,0)
ODE. Laplace transforms. PDE. Complex Variables. Vector calculus: Gauss’ Law, surface integrals, flux, divergence, divergence theorem and applications, line integrals, Stoke’s Theorem and its applications, the gradient and Laplace’s equation. Z and Fourier Transforms: Properties and evaluation of Z transforms, Convolution, time domain and Z-domain, Discrete Fourier Transform (DFT), DFT properties and evaluation, spectrum analysis, Fast Fourier Transform (FFT), basic algorithm and evaluation, fast convolution.
Prerequisite: ELE312 or consent of the instructor
ELE320 Electronic Devices and Circuits I 4(3,3)
Diodes, bipolar junction transistors, field-effect transistors, and operational amplifiers. Characterization of device parameters and design of biasing circuits. Equivalent circuits and models. Analysis and design of small-signal and large-signal amplifiers. Characterization of device parameters and design of biasing circuits to obtain specified operation criteria. The terminal properties of the devices and their models are emphasized, together with physical relations necessary to determine the values and limitations of the parameters of the device. Laboratory experiments include the analysis and design of diode circuits, BJT and FET amplifiers and switching circuits, and operational amplifiers. Students are introduced to the basic electronic devices, including device characteristics, circuit models, limitations, and applications.
Prerequisite: ELE270
ELE321 Electronic Devices and Circuits II 4(3,3)
Analysis and design of small and large signal amplifiers using discrete and integrated components. Frequency response considerations. Analysis and design of amplifiers, comparators, regulators, oscillators, active filters, and other analog circuits including analog-to-digital and digital-to-analog converters. Design and testing of amplifiers and other analog circuits. Students apply basic device design principles to design and evaluate analog circuits.
Prerequisite: ELE320
ELE350 Digital Circuits and Systems 4(3,3)
Number systems and number representations; binary codes; Boolean algebra axioms and theorems; logic gates, including the IEEE standard 91-1984 logic symbols; minimization techniques, including algebraic, Karnaugh maps, and Quine-McCluskey; combinational logic analysis and synthesis; adders and subtractors; code conversion; comparators; decoders; encoders; multiplexers; programmable logic devices; analysis and synthesis of synchronous sequential machines; synchronous counters; Moore and Mealy machines. Laboratory experiments use Verilog HDL. Students learn the analysis and synthesis of combinational and sequential logic circuits.
Prerequisite: SCI245
ELE355 Introduction to Robotics 3(2,3)
Students design, assemble and program robots using LEGO parts, sensors, motors, and firmware. Fundamental robotics. Students will present a final group project.
Prerequisites: SWE350, ELE270
ELE358 Mobil Robot and Embedded Programming 4(3,3)
Design, construct, and program of nontrivial mobile robots from ready-made kits and practically from scratch. This course is extensively hands-on, involving basic sensor and microcontroller circuits and embedded programming. The basic subsystems of control, localization, mapping, perception, and planning are presented. Students will present a final group project.
Prerequisite: ELE355
ELE366 Sequential Logic Design 4(3,3)
Sequential machine classification, including Moore and Mealy machines. Analysis of synchronous sequential machines. Terminal states, strongly-connected machines. Moore-Mealy equivalence. Synthesis of synchronous sequential machines, state assignment techniques, minimization techniques (state equivalence). Performance analysis. Sequence detectors. Linear-select multiplexers, non-liner-select multiplexers. Decoders. PLDs. Microprocessor synchronous sequential machines. Error detection in synchronous sequential machines. Analysis of asynchronous sequential machines. Hazards: static, dynamic, essential, multi-level. Oscillations. Races: noncritical, critical. Synthesis of asynchronous sequential machines: primitive flow table, state equivalence, row merging. Synthesis of pulse-mode asynchronous sequential machines. Converting from iterative combinational machines to equivalent sequential machines. Laboratory experiments use Verilog HDL. Students practice combinational logic principles to design sequential circuits.
Prerequisite: ELE 350
ELE370 Computer Architecture 4(3,3)
Organization and architecture of medium and large-scale computer systems. Addressing modes, instruction sets, processor design, microprogramming techniques, input/output subsystem organization, direct memory access, input/output processors, including interrupt structures and priority arbitration techniques, computer arithmetic, memory hierarchies, memory organization, virtual memories, cache memories, and introduction to reduced-instruction-set computer architecture. Students practice sequential logic design techniques to design a 32-bit pipelined reduced-instruction-set computer (RISC) using Verilog HDL.
Prerequisite: ELE366
ELE385 Field and Waves 3(3,0)
Static and time-varying electric and magnetic fields. Theory and application of Maxwell’s equations. Waves on continuous transmission lines, dielectric and metallic waveguides, propagation, energy flow, and impedance matching. Scattering parameters. Students are introduced to electromagnetic field. Students practice advanced engineering mathematics in fields and waves problems.
Prerequisite: ELE313
ELE410 Control Systems 4(3,3)
Principles and applications of feedback control of dynamic systems. Analysis and design methods including: root-locus, frequency response, and state-space. Memoryless nonlinear systems. Introduction to digital control. Laboratory experiments use CASAD software and experiments on actual or simulated plants. MATHTLAB with Control Systems Toolbox is also used. Students practice analog and digital design principles to analyze and design control systems.
Prerequisites: ELE321, ELE350
ELE413 Advanced Engineering Mathematics II 3(3,0)
Numerical Analysis. Finite difference. Probability and random processes: events, sample space and probability, random variables, statistical averages, probability models, binomial, Poisson, Gaussian distributions, random processes, spectral characteristics, correlation functions. Stochastic processes. Queuing theory.
Prerequisite: ELE313
ELE420 Communication Systems 3(3,0)
Communication systems using various transform techniques. Basic concepts of probability, random variables, and stochastic processes applied to communications, control, information, logic systems. Modulation techniques including AM, FM, PM, and pulse modulation. Information theory concepts for coding, combining, transmission, reception, and distribution of signals.
Prerequistes: ELE413, ELE321
ELE450 Intelligent Robotics 4(3,3)
Principles and applications of intelligent mobile robotics. Various architectures used in the basic AI robotics development paradigms and basic techniques used for robot navigation.
Prerequisites: ELE358, ELE 410
ELE487 Advanced Computer Architecture 3(3,0)
Pipelined architecture. Stack architecture. Reduced-instruction-set architecture. Vector processor architecture. Parallel architecture. Memory hierarchy: cache, main, secondary. Virtual memory. Virtual machines. Computer arithmetic. Computer performance evaluation.
Prerequisite: ELE370
ELE495 Senior Project 3(0,6)
Research, definition, design, cost analysis, construction, testing, and oral and written documentation of a faculty-approved project to demonstrate the student’s ability to perform as a practicing electrical engineer.
Prerequisite: Senior Standing
ELE497 Internship 3-5 credits
Students have the opportunity to work and learn in “real-world” professional environment while earning credits towards their degree. The average requirement for a 3-credit internship is 10-15 hours per week during the 16-week semester. Cogswell has several local, national and international placement opportunities available to students. Students interested in pursuing an internship must start the application process the semester before they intend to work.
Prerequisite: Junior Status
ELE498 Special Project 1-6 credits
Individual or group investigation, research, or study to pursue a special area of interest.
Prerequisite: Permission of Dean of the College
ELE499 Special Topic 1-4 credits
Advanced course dealing with special topics in the engineering field. May be used as elective and may be repeated when topic changes.
Prerequisites: Permission of instructor and advisor
SOFTWARE ENGINEERING COURSE DESCRIPTIONS
SWE050 Introduction to Software Engineering: Visual Modeling and Problem Solving 4(3, 3)
Introduction to computer systems: hardware, operating systems, compilers, assemblers, linkers, loaders. Introduction to Logo as visual modeling language. Data abstraction. Problem solving through software life cycle. Students explore modeling concepts and problem solving techniques.
Prerequisite: High school algebra.
SWE105 Scripting for CG 3(2, 3)
Introduction to workflow automation technologies for digital artists. Overview of Linux. Navigating a Linux shell. Standard file system organization. Editors. Scripting. Regular expressions. Introduction to PERL. Revision control. Server farms. Lab assignments will be progressive, with each assignment building on previous work. This course does not fulfill any requirement for the Engineering degree programs.
Prerequisite: MATH115
SWE110 C Programming 4(3, 3)
Introduction to hardware and software tools. Discuss CPU, memory, disks, and files. Program development flow. Introduction to C programming: lexical elements, operators, fundamental data types, flow of controls, functions, recursions, arrays, pointers, strings, bit-wise operators, structures, unions, file manipulation. Students learn structured programming paradigm.
Prerequisite: High school algebra
SWE212 Java Programming 4(3, 3)
Primitive types. Strings. Classes. Objects. Methods. References. Polymorphisms. Inheritance. Exception handling. Streams and file I/O. Arrays. Vectors. Applets and HTML. Some fundamental data structures in Java. AWT/Swing programming. Introduction to threaded programming. Students are introduced to the object oriented paradigm.
Prerequisite: SWE110
SWE220 UNIX/LINUX Programming Environment 4(3, 3)
Structure of UNIX/LINUX file systems. Shell programming. Discuss different shells. Filters. UNIX/LINUX system calls. Documentation Preparation. Standard I/O Library. AWK programming language. SED editor. Students practice programming in the UNIX/LINUX environment.
Prerequisite: SWE110
SWE310 Data Structures and Algorithms 4(3, 3)
Data Structures: Stacks. Queues. Linked lists. Circular linked lists. Double linked lists. Circular double linked lists. Binary search trees. Searching and sorting algorithms. Introduction to graph algorithms. Huffman codes, AVL trees. Hashing. B-trees. Students practice concepts of structured programming and discrete mathematical concepts in data structures and analysis of algorithms.
Prerequisites: SWE110, Co-requisite MATH377
SWE315 Object Oriented Programming 4(3, 3)
Non-object oriented features of C++. Classes. Constructors and Destructors. Type Conversions. Friends. Overloading functions and operators. References. Polymorphisms. I/O streams. Multiple Inheritances. Templates. Memory Management. Students practice the object oriented paradigm.
Prerequisite: SWE310
SWE320 Operating Systems Concepts 3(3, 0)
General multitasking operating system. Scheduling Algorithms. Deadlocks. Concurrency problems and solutions. Process management. Thread management. Disk management. Memory management. Virtual memory. File system organization. Security. Students learn how UNIX, LINUX, and Windows operating systems are designed. Students practice data structures in operating system design.
Prerequisites: SWE220, SWE310
SWE330 Compiler Design 4(3, 3)
Lexical Analysis. Parsing techniques. Semantics analysis. Run time environments. Introduction to code generation and optimization. Students apply discrete mathematical concepts and data structures in compiler theory.
Prerequisites: SWE220, SWE310
SWE340 Software Engineering Methods and Project 3(3, 0)
The software life cycle. Software development methods top-down and bottom-up. Reusability and portability. Documentation development: analysis, specification, design, implementation, testing, operational documents. Inspection walk-through and design review. Students practice project management through software life cycle.
Prerequisite: SWE310
SWE341 Object Oriented Analysis and Design 4(3, 3)
Object oriented analysis. Object oriented software design in C++/Java. Objects. Classes. Inheritance. Polymorphism. Managing complexity with Abstraction. Liskov principle. Object Modeling. Case studies of object oriented design. Memory management. Exception handling. Some design patterns. Students apply object oriented analysis, design, programming techniques to complete a software project.
Prerequisite: SWE315
SWE350 Embedded Software Systems 4(3, 3)
Technologies used in the design and implementation of embedded systems. Introduction to software tools such as compilers, schedulers, code generators, and system-level design tools. Introduction to computer organization: CPU, I/O, Memory. INTEL/MIPS Assembly languages. Linking C and Assembly Language.
Prerequisites: SWE 110, MATH133
SWE351 Computer Architecture 3(3, 0)
Introduction to generic computer architecture. The Processing Unit; ALU, CPU. Instruction cycle behavior and sequencer. Microprogrammed Control. Main Memory. Memory Management. I/O subsystem, disk controller. A complete simple computer design. Computer Arithmetic Algorithms. Principles of pipelining. Discuss CISC and RISC architectures.
Prerequisites: SWE350, ELE350
SWE360 Database Management Systems 4(3, 3)
File Organization. Indexing techniques. Data models. Query Languages. B-trees, B*- trees, B+-trees. Study design and implementation of a relational database. Students apply concepts from data structures and compiler design in database management.
Prerequisites: SWE310, SWE220
SWE371 Scripting Languages 4 (3, 3)
Fundamentals of Lua, Perl, and Python as scripting languages. Applications of scripting languages in data structures and algorithms, animation and games.
Prerequisite: SWE310
SWE 419 Concurrent Programming 4(3, 3)
Threads. Semaphores. Monitors. Message passing. Rendezvous. RMI. Remote procedure calls, distributed or network programming, and parallel processing. This course emphasizes on thread implementations.
Prerequisite: SWE320
SWE420 UNIX/LINUX Internals 4(3, 3)
Introduction to UNIX/LINUX kernel. Designs and Algorithms of Buffer Cache, File System, UNIX/LINUX System Calls, Processes, Memory Management System. UNIX Scheduling algorithms. Students apply operating systems concepts in UNIX/LINUX systems and study the efficiency of UNIX/LINUX systems.
Prerequisites: SWE220, SWE320
SWE422 Foundations of Computer Networks 4(3, 3)
Network Communication: Internal Structure, Interfaces, Routing, Buffering and Congestion Control, Sockets. Network Protocols. TCP algorithms.
Prerequisites: SWE320, SWE350
SWE424 Routing and Switching 4(3, 3)
LAN and WAN protocols. LAN and WAN design issues. IP routing. IP Multicast. Frame relay. Router token ring. ATM routing and switching.
Prerequisite: SWE422
SWE426 Network Security 4(3, 3)
Security protocols. Security technologies: Concepts - Firewalls, Content Filters, Public Key Infrastructure (PKI), Authentication Technologies, Authorization technologies, Virtual Private Networks (VPN), Network IDS anomaly, signature, passive, inline. Host Intrusion Prevention Cisco Threat Response. Routing and switching security features: IE mac address controls, port security, dhcp snoop.
Prerequisite: SWE422
SWE430 Advanced Java 4(3, 3)
Java Threaded Programming. Collection. Networking. Database Connectivity. Remote Objects. Swing. Security. Internationalization. Naïve methods.
Prerequisite: SWE212, SWE341
SWE432 Web Programming 4(3, 3)
HTML, XHTML. Servlets. Java threads. Introduction to Java beans. Introduction to JSP. Non-Java related technologies for web development such as Perl, PHP and Javascript.
Prerequisite: SWE212
SWE440 Advanced Software Engineering 3(3, 0)
Software Validation. Software Verification. Software Engineering Management. Software Quality Assurance. Students apply discrete mathematics and software methods in optimizing software projects.
Prerequisites: MATH377, SWE310, SWE340
SWE442 Advanced Object Oriented Design 4(3, 3)
Advanced Object Modeling. Case Studies of Object Oriented Design. Design Patterns. Component architecture. Component frameworks. Students apply object oriented principles in a large project.
Prerequisite: SWE341
SWE447 GUI and Graphics Programming 4(3, 3)
Principles of user interface design. Input elements: keyboard, mouse. Memory management. Icons. Menus. Dialog boxes. Graphics device interface. OpenGL. Transformations. Bresenham’s Lines and Circles Algorithms. Ellipses. Hidden line Algorithms. Clipping Algorithms. Spline curves. Bezier curves. B-splines surfaces and Bezier surfaces. Hidden lines and surfaces algorithms. Hidden line and surface removal methods. Students learn GUI and practice concrete mathematics concepts in computer graphics.
Prerequisites: MATH377, SWE315
SWE449 Tools Programming 4(3, 3)
Advanced Scripting. Mel Scripting. C++ Plug-in programming.
Prerequisites: SWE315, SWE371
SWE450 Animation 4(3, 3)
Sprite Animation. Frame Animation. Theory and Practice of anti-aliasing techniques. Rendering techniques: Shadow Algorithms, Texture Mapping. Volume Rendering. Visualization techniques. Global Illumination. Motion Control. Students apply computer graphics in animation.
Prerequisites: SWE315, SWE447
SWE451 Advanced Animation 4(3, 3)
New topics and trends in animation and visualization. Students are exposed to frontiers of animation techniques.
Prerequisite: SWE450
SWE459 Data Compression Algorithms 3(3,0)
History of data compressions. Shannon-Fano algorithm. Huffman Algorithm. Adaptive Huffman coding. Arithmetic coding. Statistical Modeling. Dictionary based Compression. Sliding window compression: LZ77, LZSS. An improved compression: LZ78. Speech Compression. Lossy Graphics Compression.
Prerequisites: MATH377, SWE310
SWE461 Computer Security 3(3, 0)
Cryptography. Data encryption. RSA algorithm. Breaking Knapsacks. The Chor-Rivest Algorithm. Other Public-key cryptosystems. Security problems in UNIX, databases, networks. Hacking and social responsibilities.
Prerequisites: MATH377, SWE320
SWE472 AI Game Programming 4(3, 3)
Study the design and implementation of computer games like chess, checkers and others. Combinatorial games. Students learn AI techniques for games and apply concrete mathematics, and animation techniques to games.
Prerequisite: SWE447, May be taken with SWE473
SWE473 Game Engine I 4(3, 3)
Study the design and implementation of a game engine. Modify existed game engine. Design a game engine. Students apply computer graphics, AI and animation techniques in a game engine.
Prerequisite: SWE450, May be taken with SWE472
SWE474 Game Engine II 4(3, 3)
Implementation part of a game engine. Students apply computer graphics, AI and animation techniques in game engines.
Prerequisite: SWE473
SWE 480 Wireless Software Engineering 4(3, 3)
Principles, methods, and processes of developing software for mobile computers. Tools and processes used in developing software for small embedded systems. Design, implement, and test software for a wireless or handheld computer.
Prerequisite: SWE 422
SWE 482 Wireless and Mobile Networks 4(3, 3)
Basic principles of Mobile IP. Basic case studies of mobile IP applications. Security issues. Scalability of the mobile IP solutions. Wireless VoIP. Mobile multimedia messaging. Integration of WLAN and cellular networks.
Prerequisite: SWE 480
SWE495 Senior Project 3(0, 6)
Students apply software life cycle in a senior project. Project results are presented orally and in a formal written report.
Prerequisite: Senior standing
SWE497 Internship 3-5 credits
Students have the opportunity to work and learn in “real-world” professional environment while earning credits towards their degree. The average requirement for a 3- credit internship is 10-15 hours per week during the 16-week semester. Cogswell has several local, national and international placement opportunities available to students. Students interested in pursuing an internship must start the application process the semester before they intend to work.
Prerequisite: Junior Status
SWE498 Special Project 1-6 credits
Individual or group research of pre-selected problems. May be used to support senior project.
Prerequisite: Permission of the Dean of the College
SWE499 Special Topic 1-4 credits
Group study of pre-selected topics to be specified by the instructor. May be repeated for credit.
Prerequisite: Permission of instructor and advisor