Computer Engineering at Fairfield University

The School of Engineering at Fairfield University offers a Computer Engineering Bachelor of Science degree. The goal of the program is to produce professionals who can work at the intersection of computer science, software engineering, physics and mathematics.

Students focus on engineering applications and state of the art technologies. They gain an in-depth understanding of at least one area of engineering specialization. Additionally, students get a background in the liberal arts.

The computer engineering program has three broad domains, signal processing, visualization and computer systems.

Object oriented design principles are integrated throughout the program and are applied to custom engineering designs. Students  obtain valuable engineering background in computer graphics, image processing, video compression and transmission, visualization, display techniques, and multimedia systems. Extensive experimental and computational facilities are available and close interactions are maintained with industry.


Table Of Contents

1.            DATA Structures in JAVA            3

2.            Digital Design I            6

3.            Digital Design II            8

4.            Computer Networks            10

5.            Operating Systems in Java            12

6.            Eng. Applications of Numerical Methods            15

7.            Computer Graphics            18

8.            Voice and Signal Processing            20

9.            Image Processing            24



 

1.    DATA Structures in JAVA

Fairfield University

School of Engineering

 

Course Name & Number: DATA Structures in JAVA                                         CE ???

Instructor:                              Prof. D. Lyon

Home Phone:

Business Phone:                              

E-mail:                                   lyon@DocJava.com

FAX:                                     (203)877-4187

Instructor Assistance:             (additional support prior to and/or after class)

Lecture Hours:                       3 hours per week starting at 6:30PM

Lab Hours:                            0 hours per semester

Course Description:

a study of data structures and algorithms. Topics include stacks, lists, queues, linked lists, trees, Binary Search Trees, B-trees, AVL-trees, reachability, Minimum Spanning Trees and Disjoint Sets, graph optimization. 

PreReq: CS131

Learning Objectives:

After the student take this course, they will know how to write programs that divide the data structure into its specification (via interface) and subsequent implementation. The students will know how to think abstractly about data structures and be able to perform algorithm analysis. Students will have facility with linked lists, queues, trees, priority queues and hash tables. Students will be able to write recursive programs, and sorting algorithms.

This course requires substantial programming effort and emphasis is place on good software engineering practices.

Outcomes:

 

1.       The students will learn the principles of Data Structures.

          Expected learning outcomes:           

          a.         Big-O rules

          b.         Data Structures (Stacks, Queues, Linked Lists, Trees, Hash Tables)

          c.         Recursion, sorting (shell sort, merge sort, quick sort)

2.       The student will become proficient with the usage of the Java language.

          Expected learning outcomes:

          a.         Demonstrates the ability to utilize Java in practical data structures

          b.         Uses appropriate object-oriented design patterns to solve problems.

After students take this course, they will know how to write programs that can use data structures. Finally, the students will make use of object-oriented design patterns and data structures in order to implement algorithms.

This course requires substantial programming effort and emphasis is place on good software engineering practices.

Outcomes:

When the course is done, Students will have deployed Java applications of their own design, on the web.

Performance Indicators:

Aside from the basics assessment procedures based on homeworks and tests, Students must obtain 75% or better on all tests. Additionally, students must perform at least 75% on the homeworks.

Textbook:                      DATA STRUCTURES & Problem Solving Using Java, by M. Weiss

Reference Material:        Notes, as required.

Course Requirements:

All homework is to be submitted on time.

The course includes three reporting periods (exam, quiz, project, etc.) and a comprehensive final.

Topics :

1. Basic Java

2. Objects, Classes, and Packages

3. Inheritance

4. The AWT and Applets

5. Algorithm Analysis

6. Stacks and Queues (Part I)

7. Stacks and Queues (Part II) - Linked Lists

8. Infix Expression Evaluation

9. Binary Search Trees

10. AVL Trees

11. B-Trees

12 Priority Queues

      Operations and Applications

      The binary heap

      Linear-time construction

      Heapsort

      Insertion sort

      Quicksort

      Selection

      Lower Bounds

13 Graph Algorithms

      Graph Representation

      Topological Sort

      Unweighted Shortest Paths (breadth-first search) •           Weighted Shortest Path (Dijkstra's algorithm)

14 Minimum Spanning Trees and Disjoint Sets •            The Disjoint Set Problem

      Minimum Spanning Trees

      Kruskal's Algorithm

      The Union/Find Data Structure

Attendance Policy:              Students are responsible to acquire notes and homework assignment from classmates in case of absence.

                         Weighted

Grading:

Midterm                            1/3

Final Examination              1/3

Homework                        1/3        includes tests, quizzes, projects, etc.


 

2.    Digital Design I

Fairfield University

School of Engineering

Course Name & Number: Digital Design I    EE 245 + EE 245L

Instructor:                              Prof. D. Lyon

Home Phone:

Business Phone:                              

E-mail:                                   lyon@DocJava.com

FAX:                                     (203)877-4187

Instructor Assistance:             (additional support prior to and/or after class)

Lecture Hours:                       3 hours per week starting at 6:30PM

Lab Hours:                            0 hours per semester

Course Description:

Basic digital design principles. Boolean algebra. Combinational logic design with gates, MSI, LSI. Sequential logic design; register, counters, memory and PLD.
PreReq: EE 213

Learning Objectives:

After the student take this course, they will know how to perform elementary digital design. 

This is a foundations course that enables students to be able to perform well in the follow-on course, Digital Design II.

Student knowledge of the basics culminated in being able to design and implement finite-state machines.

Outcomes:

 

1.       The students will learn the principles of Digital Design.

          Expected learning outcomes:           

          a.         k-maps

          b.         Boolean Algebra

          c.         carry out a design using a simulator

2.       The student will become proficient with a schematic capture simulator.

          Expected learning outcomes:

          a.         Demonstrates the ability to implement a Finite State machine

          b.         Implement an open-ended word problem with the simulator.

After students take this course, they will know how to write implement and simulate their digital designs.

Performance Indicators:

Aside from the basics assessment procedures based on homeworks and tests, Students must obtain 75% or better on all tests. Additionally, students must perform at least 75% on the homeworks.

Textbook:                      Contemporary Logic Design, Katz

Reference Material:        Notes, as required.

Course Requirements:

All homework is to be submitted on time.

The course includes three reporting periods (exam, quiz, project, etc.) and a comprehensive final.

Session #/Date                   Topic                                        Text Chapter(s)                                        Homework Assignment

Topics :

1 Introduction

2 Boolean Algebra

3 Applications of Boolean Algebra

4 K-maps

5 Multi-level Gate Networks, Nand and NOR gates • 

6 Multiple-output networks, Mux's,

7 Decoders, ROMs and PLA's

8 Flip-flops

9 Counters and Sequential Nets

10 Analysis of Clocked Sequential Nets •   

11 Derivation of State Graphs and Tables • 

12 Nets for addition and subtraction

13 State Machines and State Machine Charts

Attendance Policy:              Students are responsible to acquire notes and homework assignment from classmates in case of absence.

                                                                                               Weighted

Grading:

     Midterm          1/3

     Comprehensive Final Examination          1/3

     Homework          1/3 (tests, quizzes, projects..)


 

3.    Digital Design II

Fairfield University

School of Engineering

Course Name & Number: Digital Design II  EE 245 + EE 245L

Instructor:                              Prof. D. Lyon

Home Phone:

Business Phone:                              

E-mail:                                   lyon@DocJava.com

FAX:                                     (203)877-4187

Instructor Assistance:             (additional support prior to and/or after class)

Lecture Hours:                       3 hours per week starting at 6:30PM

Lab Hours:                            0 hours per semester

Course Description:

Computer architecture implemented using a hardware design language and PLDs. Students design, implement and program small RISC machines.

PreReq: EE 245

Learning Objectives:

After the student take this course, they will know how to implement and program a CPU using VHDL. 

Students will understand CPU architectures, and how to program in VHDL.

Student knowledge of the basics culminated in being able to design and implement programmable finite-state machines.

Outcomes:

 

1.       The students will learn the principles of Computer Architecture.

          Expected learning outcomes:           

          a.         broad understanding of computer architecture

          b.         Basic parts of a CPU

          c.         carry out a design using a PLD

2.       The student will become proficient with VHDL.

          Expected learning outcomes:

          a.         Demonstrates the ability to implement a RISC machine

          b.         Program an open-ended word problem with the RISC machine.

          c.         Perform Mealy sequential FSM design

          d.         Design serial accumlator elements

          e.         Design floating point elements

          f.          Design a microcontroller CPU

After students take this course, they will know how to design and implement CPUS of their own design. They will also know a little about machine language programming..

Performance Indicators:

Aside from the basics assessment procedures based on homeworks and tests, Students must obtain 75% or better on all tests. Additionally, students must perform at least 75% on the homeworks.

Textbook:                      Digital Systems Design using VHDL by Roth.

Reference Material:        Notes, as required.

Course Requirements:

All homework is to be submitted on time.

The course includes three reporting periods (exam, quiz, project, etc.) and a comprehensive final.

Topics :

1 Intro to VHDL

2 Counter Design/Memory

3 Finite State Machine design

4 Computer Organization

5 Busing strategies

6 Finite State Machines for Simple CPU's

7 Controller Implementation

8 Jump counters

9 Branch sequencers

10 Reduction of State tables State Assignment

11 Design of Microcontroller

12 Nets for multiplication and division

13. Verification

14. Model optimizations

Attendance Policy:              Students are responsible to acquire notes and homework assignment from classmates in case of absence.

                                         Weighted

Grading:

   Midterm                         1/3

   Final Examination           1/3

   Homework                    1/3        includes tests, quizzes, projects, etc.


 

4.    Computer Networks

Fairfield University

School of Engineering

Course Name & Number: Computer Networks                                                  CE??

Instructor:                              Prof. D. Lyon

Home Phone:

Business Phone:                              

E-mail:                                   lyon@DocJava.com

FAX:                                     (203)877-4187

Instructor Assistance:             (additional support prior to and/or after class)

Lecture Hours:                       3 hours per week starting at 6:30PM

Lab Hours:                            0 hours per semester

Course Description:

Operating system elements, multi-threading, command-line interpreters and monitors. Students write their own operating system, implemented in Java, using a virtual machine. New system commands are added to the JAVAOS. Students deploy a custom-built, distributed, multi-platform, thin-client operating system.
PreReq: Data Structures in Java

Outcomes:

 

1.       The students will learn the principles of Network Programming.

          Expected learning outcomes:           

          a.         Servlets

          b.         RMI

          c.         Object Serialization

2.       The student will become proficient with the mathematical tools for modeling traffic.

          Expected learning outcomes:

          a.         Demonstrates the ability to model m/m/1 and m/g/1 queues

          b.         Simulate an Nth order Markov process.

After students take this course, they will know how to write implement and simulate models of traffic.

Performance Indicators:

Aside from the basics assessment procedures based on homeworks and tests, Students must obtain 75% or better on all tests. Additionally, students must perform at least 75% on the homeworks.

Textbook:                      Java Network Programming, by Hughes et. Al.

Reference Material:        Notes, as required.

Course Requirements:

All homework is to be submitted on time.

The course includes three reporting periods (exam, quiz, project, etc.) and a comprehensive final.

Topics by week:

1. OSI seven layer model, and TCP/IP suite

2. Services (FTP, Telnet, Gopher, Finger, SMTP, SNMP, HTTP, DNS)

3. Introduction to Cryptography, (public key encryption, hash functions, signatures)

4. Java Security model (manager, resource, threads, network resources)

5. Introduction to streams (output, input, file and filter streams)

6. Filter streams (buffered input and output streams, memory I/O streams., Piped streams)

7 Client-side networks (getting web pages with sockets, posting output streams)

8 Server-side networking (echo server, non blocking server, chat server)

9. Data gram networking (UDP alarms, a UDP echo server, message streams).

10. Queuing theory, (M/M/1, simple traffic, Poisson arrivals).

11. Simulating a Markov process, predicting traffic

12. Remote method invocation

13. Building a white board server

14 Building a white board client

15 Monitoring traffic in the system and correlating with simulation.

Attendance Policy:              Students are responsible to acquire notes and homework assignment from classmates in case of absence.

                                         Weighted

Grading:

   Midterm                         1/3

   Final Examination           1/3

   Homework                    1/3        includes tests, quizzes, projects, etc.


 

5.    Operating Systems in Java

Fairfield University

School of Engineering

Course Name & Number: Operating Systems in Java                                            CE??

Instructor:                              Prof. D. Lyon

Home Phone:

Business Phone:                              

E-mail:                                   lyon@DocJava.com

FAX:                                     (203)877-4187

Instructor Assistance:             (additional support prior to and/or after class)

Lecture Hours:                       3 hours per week starting at 6:30PM

Lab Hours:                            0 hours per semester

Course Description:


PreReq: Data Structures in Java

Learning Objectives:

After the student take this course, they will know how to write Java programs that can perform network services. . 

Students will understand the layers and protocols in the Internet and OSI models. Students will understand multi-threaded streaming, message routing, serialization and persistence.

Student knowledge of the basics culminated in being able to design and implement a client-server system.

Learning Objectives:

After the student take this course, they will know how to write Java programs that can perform operating system services. . 

Students will understand the basic of operating systems. Students will design and implement their own operating system, with a web distribution requirement.

Student knowledge of the basics is culminated in the design of a thread management system, integrated into the JavaOS.

Outcomes:

 

1.       The students will learn the principles of Operating System.

          Expected learning outcomes:           

          a.         Threads

          b.         Command Line Interpreters

          c.         Schedulers

2.       The student will become proficient with the programming tools for implementing an operating system.

          Expected learning outcomes:

          a.         Demonstrates the ability to add new system commands

          b.         Build a thread manager.

After students take this course, they will know how to design and implement an operating system.

Performance Indicators:

Aside from the basics assessment procedures based on homeworks and tests, Students must obtain 75% or better on all tests. Additionally, students must perform at least 75% on the homeworks.

Textbook:                      Inside the JAVAOS Operating System, by Saulpaugh et. Al.

Reference Material:        Notes, as required.

Course Requirements:

All homework is to be submitted on time.

The course includes three reporting periods (exam, quiz, project, etc.) and a comprehensive final.

Topics by week:

1. Overview, JavaOS and the JDK, Computing models, major components

2. The database (The JavaOS System Database, JSD,  Namespaces, trees and navigation)

3. The event system, consumer-producer ordering rules, threading, device events

4. Service loader, business cards, JavaOS configuration, service loader, client-server connections

5. Standard device support, networking video architecture, video designs, mouse and keyboard support

6. Device drivers, bus drivers, device handles, JDK serial port example

7. Memory, addressing, virtual addresses, page faults, memory regions

8. Interrupts, source tree, IST constructions, registering IS, interrupt dispatch

9. Microkernal, supervisor mode, architecture of interfaces and managers, interrupt processing

10. Booting  Java OS boot interface

11. Using introspection to list available methods

12. Design of a command-line interface

13. Adding a process monitor to the JAVA OS

14. System commands for managing threads in JAVA OS

Attendance Policy:              Students are responsible to acquire notes and homework assignment from classmates in case of absence.

                                 Weighted

Grading:

   Midterm                         1/3

   Final Examination           1/3

   Homework                    1/3        includes tests, quizzes, projects, etc.


 

6.    Eng. Applications of Numerical Methods

Eng. Applications of Numerical Methods

Fairfield University

School of Engineering

Course Name & Number: Eng. Applications of Numerical Methods                    CE ???

Instructor:                              Prof. D. Lyon

Home Phone:

Business Phone:                              

E-mail:                                   lyon@DocJava.com

FAX:                                     (203)877-4187

Instructor Assistance:             (additional support prior to and/or after class)

Lecture Hours:                       3 hours per week starting at 6:30PM

Lab Hours:                            0 hours per semester

Course Description:

Root-finding, interpolation, linear algebraic systems, numerical integration, and numerical solution of ordinary and partial differential equations. Substantial programming projects required. The theoretical basis is provided for the students to proceed in computer graphics and voice and signal processing.

PreReq: CE Data Structures in Java, MA 227 (calc III)

Learning Objectives:

After the student take this course, they will know how to write programs that find Roots of Equations using a variety of methods, including Bisection, Newton Raphson, Secant Method and Regular Falsi.

They will also have a basic understanding of the solving of simultaneous equations using Gaussian Elimination, Gauss-Jordan Elimination, LU Decomposition, Jacobi Iteration and Gauss-Siedel Iteration. Students make use of data structures,

and there math background to set up and display solutions Using linear, Cubic & quadratic splines. Students will learn Numerical differentiation and Numerical Integration. Students are introduced to transform methods.

This course requires substantial programming effort and emphasis is place on good software engineering practices.

Outcomes:

 

1.       The students will learn the principles of Numerical Methods.

          Expected learning outcomes:           

          a.         Numeric Integration (Trapezoidal, Simpson's, Romberg, Gauss-Legendre)

          b.         Differential Equations (Euler's Method, Runge-Kutta, Predictor-Corrector)

          c.         Curve Fitting (least-square lines, splines, Trigonometric Polynomial). Transform Methods (convolution, DFT, DHT, DCT)

2.       The student will become proficient with the usage of the Java language.

          Expected learning outcomes:

          a.         Demonstrates the ability to utilize Java in practical numerical method problems.

          b.         Uses appropriate object-oriented design patterns to solve problems.

After students take this course, they will know how to write programs that can solve problems that have no closed-form solutions. Finally, the students will make use of data structures, linear algebra, and object-oriented design patterns in order to solve numeric methods.

This course requires substantial programming effort and emphasis is place on good software engineering practices.

Outcomes:

When the course is done, Students will have deployed Java applications of their own design, on the web.

Performance Indicators:

Aside from the basics assessment procedures based on homeworks and tests, Students must obtain 75% or better on all tests. Additionally, students must perform at least 75% on the homeworks.

Textbook:                      Numerical Methods in Java, a manuscript by D. Lyon

Reference Material:        Numerical Recipes in C, Press et Al.

Course Requirements:

All homework is to be submitted on time.

The course includes three reporting periods (exam, quiz, project, etc.) and a comprehensive final.

Topics :

1.: Root-finding;

       Bisection, Newton Raphson, Secant Method and Regular Falsi.

2. Simultaneous equations using:

       Gaussian Elimination, Gauss-Jordan Elimination, LU Decomposition, Jacobi Iteration and Gauss-Siedel Iteration.

3. Approximation

       linear, Cubic & quadratic splines. Least-square lines, splines, Trigonometric Polynomial.

4. Numerical differentiation:

       Euler's Method, Runge-Kutta, Predictor-Corrector

5. Numerical Integration:

       Trapezoidal, Simpson's, Romberg, Gauss-Legendre

6. Transform Methods

      c.                                 Transform Methods (convolution, DFT, DHT, DCT)

Attendance Policy:              Students are responsible to acquire notes and homework assignment from classmates in case of absence.

                                         Weighted

Grading:

   Midterm                         1/3

   Final Examination           1/3

   Homework                    1/3        includes tests, quizzes, projects, etc.


 

7.    Computer Graphics

Fairfield University

School of Engineering

Course Name & Number:      Computer Graphics                                                  CE ???

Instructor:                             

Home Phone:

Business Phone:                               SAMPLE

E-mail:

FAX:

Instructor Assistance:             (additional support prior to and/or after class)

Lecture Hours:                       3 hours per week starting at 6:30PM

Lab Hours:                            3 hours per semester

Course Description:

A unified, introductory treatment to two-dimensional and three-dimensional computer graphics concepts. Topics include Human-computer interfaces using the AWT, applied  geometry; homogeneous coordinate transforms; Bezier curves, Bernstien  Basis Polynomials, Hermite Polynomials, B-Spline  curve fitting. Rendering topics:   z-buffer algorithm, painters algorithm, raytracing, and texture mapping.

Prerequisite – CE  Eng. Applications of Num. Methods, MA 211

Course Objectives and Learning Outcomes:

This course designed to support the visualization and computer systems domain in the CE BS degree.

1.       The students will learn the principles of Computer Graphics.

          Expected learning outcomes:

          a.         Applies transform concepts in programming situations

          b.         Recognizes interrelationships among geometric modeling and computer graphics

2.       The student will become proficient with the usage of the Java language.

          Expected learning outcomes:

          a.         Demonstrates the ability to utilize Java in practical visualization problems.

          b.         Uses appropriate object-oriented design patters to solve problems.

After the student take this course, they will know how to write programs that display and manipulate 3D objects. They will also have a basic understanding of geometric modeling and computational geometry. Finally, the students will make use of data structures, linear algebra, design patterns and basic software engineering.

This course requires substantial programming effort and emphasis is place on good software engineering practices.

Outcomes:

When the course is done, Students will have deployed Java applications of their own design, on the web.

Performance Indicators:

Aside from the basics assessment procedures based on homeworks and tests, Students must obtain 75% or better on all tests. Additionally, students must perform at least 75% on the homeworks.

Textbook:                      Computer Graphics for Java Programmers by Ammeraal

Reference Material:        The Java 3D API Specification

Course Requirements:

All homework is to be submitted on time.

The course includes three reporting periods (exam, quiz, project, etc.) and a comprehensive final.

Obtain data during laboratory hands on session.

Topics (listed by week):

1. Historical perspective and some fundamental issues in hardware, software and applications.

2. The use and implementation of Java 2D, a simple 2D graphics package.

3. Graphics hardware.

4. Transforms in the plane and 3-space, representation by matrices, homogeneous coordinates, 3D views.

5. Java 3D, a 3D floating-point hierarchical graphics package.

6. Human color-vision system, various color-description systems.

7.  Shaded graphics, aliasing

8. Visible-surface determination.

9. Illumination and shading, texture, shadows, transparency, reflections,

10. Image manipulations, scaling, shearing, rotation pixmaps. Image storage techniques.

11. Computer Animation.

12. physically based illumination models, .

13. ray tracing

14. radiosity

Attendance Policy:              Students are responsible to acquire notes and homework assignment from classmates in case of absence.

                                         Weighted

Grading:

   Midterm                         1/3

   Final Examination           1/3

   Homework                    1/3        includes tests, quizzes, projects, etc.


 

8.    Voice and Signal Processing

Fairfield University

School of Engineering

Course Name & Number:      Voice and Signal Processing                                  CE ???

Instructor:                              Prof. D. Lyon

Home Phone:

Business Phone:                              

E-mail:                                   lyon@docjava.com

FAX:                                     (203)877-4187

Instructor Assistance:             (additional support prior to and/or after class)

Lecture Hours:                       3 hours per week starting at 6:30PM

Lab Hours:                            0 hours per semester

Course Description:

Overview of Digital Audio and its application Current state of streaming Audio on the Internet Digital Audio Processing Fundamentals. This course applies the theories laid down in CE  Eng. Applications of Num. Methods to the areas of audio processing.

Students will apply the theories of Sampling, Spectra, Fast Fourier Transform Class, convolution and frequency space processing, compression and one-dimensional streaming.

Students will apply the theories by creating programs that read processing and write audio streams. They are exposed to the elements of multi-media network delivery of data. They learn about a wide class of FFT algorithms and elementary sound synthesis.

This course requires substantial programming effort and emphasis is place on good software engineering practices.

Students will learn enough signal processing to take Image Processing, the follow-on course.

Prerequisite – CE Numeric Methods, MA 211 (matrix theory)

Learning Objectives for Voice and Signal Processing

This course designed to support the signal processing and computer systems domain

in the CE BS degree.

When the course is done, Students will have deployed

Java applications of their

own design, on the web. These applications will

demonstrate the usage of Java for real-time

voice and sound processing.

1. The students will learn the principles of Digital Signal Processing.

Expected learning outcomes:

a. Applies transform concepts in programming situations

b. Recognizes interrelationships among signals and spectra

2. The student will become proficient with the usage of the Java language.

Expected learning outcomes:

a.        Demonstrates the ability to utilize Java in practical signal processing problems.

b.       Uses appropriate object-oriented design patters to solve problems.

After the student take this course, they will know how to write programs that display and manipulate 1D waveforms. They will also have a basic understanding of constructive and destructive synthesis. Finally, the students will make use of data structures, linear algebra, design patterns and basic software engineering.

This course requires substantial programming effort and emphasis is place on good software engineering practices.

Outcomes:

When the course is done, Students will have deployed Java applications of their own design, on the web.

Performance Indicators:

Aside from the basics assessment procedures based on homeworks and tests, Students must obtain 75% or better on all tests. Additionally, students must perform at least 75% on the homeworks.

Textbook:                         Java Digital Signal Processing by Douglas Lyon

Reference Material:           Digital Audio with Java, by Lindley

Course Requirements:

      All homework is to be submitted on time.

      The course includes three reporting periods (exam, quiz, project, etc.) and a comprehensive final.

Topics :

1. Overview of Digital Audio and its application

Current state of streaming Audio on the Internet

        Problems and solutions

2. Digital Audio Processing Fundamentals

        Sampling

        Spectra

3. The AudioFrame Class

        internal data structures

                the AudioStream

                the AudioDataStream

                doubleData

                ulawData

                the AudioPlayer

        building the menu

                intercepting menu event

                intercepting keyboard events

4. Audio Files

        Audio file formats

        u-law companding in the Sun AU files

                decoding u-law

                encoding u-law

        reading

        writing

        playing

        graphing

5. Wave Table Generation

        Sine

        Triangle

        Square

        Sawtooth

6. Audio Processing

        Delay, echo vs. reverb

        The Discrete Fourier Transform

        The Inverse DFT

        The Fast Fourier Transform Class

        The Inverse FFT method

        Fast Convolution using the FFT

        Power Spectral Estimation

        Frequency shifting using the FFT

        Filtering using FFT

7. Sound Synthesis

        Additive Synthesis

        Subtractive Synthesis

8. Generalized Modulations

                AM

                FM

9. Object Oriented Design Patterns and signal Processing

       Producer consumer

References

10. Wavelets in Computer Graphics11. Transform compression techniques

12. Multi-media application

13. Telephony

14. Streaming Audio

Attendance Policy:              Students are responsible to acquire notes and homework assignment from classmates in case of absence.

                                         Weighted

Grading:

   Midterm                         1/3

   Final Examination           1/3

   Homework                    1/3        includes tests, quizzes, projects, etc.

 

9.    Image Processing

Fairfield University

School of Engineering

Course Name & Number:      Image Processing                                                  CE ???

Instructor:                              Prof. D. Lyon

Home Phone:

Business Phone:                              

E-mail:                                   lyon@DocJava.com

FAX:                                     (203)877-4187

Instructor Assistance:             (additional support prior to and/or after class)

Lecture Hours:                       3 hours per week starting at 6:30PM

Lab Hours:                            0 hours per semester

Course Description:

A first course in Image Processing;  Image algebra,arithmetic operations,boolean operations, matrix operations

     Achromatic and Colored Light

        Selecting Intensities, Gamma Correction

        Chromatic Color, psychophysics, Color models

        Color Space Conversion, low-level pattern recognition.

Students will learn the theory of 2-D Fast Fourier Transform Class, 2D convolution and frequency space processing, compression and 2D streaming.

Students will apply the theory by creating programs that read processing and write image streams. They are exposed to the elements of multi-resolution multi-media network streaming. They learn about a wide class of transforms, including Wavelets, DCT, the PFA FFT and others.

This course requires substantial programming effort and emphasis is place on good software engineering practices.

Students will learn enough signal processing to write their image processing applications.

Prerequisite – PreReq: CE Voice and Signal Processing

Learning Objectives for Image Processing

This course designed to support the signal processing and computer systems domain in the CE BS degree.

When the course is done, Students will have deployed Java applications of their own design, on the web. These applications will demonstrate the usage of  Java for image processing.

1.       The students will learn the principles of Image Processing.

          Expected learning outcomes:

          a.         Applies transform concepts in programming situations

          b.         Recognizes interrelationships among signals and spectra

2.       The student will become proficient with the usage of the Java language.

          Expected learning outcomes:

          a.         Demonstrates the ability to utilize Java in practical image processing problems.

          b.         Uses appropriate object-oriented design patters to solve problems.

After the student take this course, they will know how to write programs that display and manipulate 2D images. They will also have a basic understanding of image filtering. Finally, the students will make use of data structures, linear algebra, design patterns, voice and 1D signal processing.

This course requires substantial programming effort and emphasis is place on good software engineering practices.

Outcomes:

When the course is done, Students will have deployed Java applications of their own design, on the web.

Performance Indicators:

Aside from the basics assessment procedures based on homeworks and tests, Students must obtain 75% or better on all tests. Additionally, students must perform at least 75% on the homeworks.

Textbook:                         Image Processing, in Java by Douglas Lyon

Reference Material:           Java Digital Signal Processing, By Dougas Lyon

Course Requirements:

      All homework is to be submitted on time.

      The course includes three reporting periods (exam, quiz, project, etc.) and a comprehensive final.

Topics :

Topics: (coverage will be altered to encompass the latest APIs)

Week 1: Using the AWT - The new Event model

  The Graphics Class

      Test Patterns

         Color Bars

         resolution chart

         multi-burst test chart

         Snell and Wilcox test chart

  Interaction

      The mouse

      The keyboard

      The Evt class

  building the menu

                intercepting menu event

                intercepting keyboard events

Week 2:  The Model-View Approach

  observables and the dialogs boxes

     Int Dialog

     Float Dialog

     File dialogs

  The ImageFrame Class

        oldPixels

        newPixels

        menu construction

Week 3: Streams

  File input stream

  stream tokenizer

  closing a file

  token flags

  writing files

  summary for writing files

  Save File Example/ set-up main menu bar

  Process menu pick - save

Week 4: Digital Image Processing Fundamentals

  Overview of Image Processing and its application

    Image Storage and Display

        image models

        cameras video and scanners

  Current state of streaming video on the Internet

        Problems and solutions

        Sampling

        Spectra and Spectra

  Preview of Image processing

Week 5: The PixelPlane Class

        range checking

        PixelGrabbers

        internal data structures

                the ImageStream

                the ImageDataStream

                Image doubleData

  Reading and Writing Images

        Reading GIF and JPEG

        Writing GIF

        Reading PPM

        Writing PPM

Week 6:  Edge Detection

           Roberts, Prewitt, Frei-Chen,

           Kirsch, Sobel,

           boxcar, pyramid, argyle, Macleod,

           derivative of Gaussian, Robinson,

           Canny

           Laplacian generation, Laplacian of Gaussian

           Hat

Week 7: Boundary Processing

     XY to Vector Conversion

     vector ordering using Dijkstras' algorithm

     Edge following and Martellis' algorithm

     Divide-and-conquer boundary detection

     Range finding via diffraction

     Range map to boundary representation

Week 8: Image Enhancement Techniques

    Blur

         mean, median, unsharp

    smoothing binary images by association

    local area contrast enhancement

    histogram equalization

    lowpass filtering

    highpass filtering

    averaging multiple images

Week 9: Achromatic and Colored Light

   Selecting Intensities-Gamma Correction in Java

   Chromatic Color

        psychophysics

        Color models (CIE, RGB, YUV, CMY, HSV, YIQ)

   Color coordinate systems

                RGB to  L*u*v*, L*u*v* to RGB

                RGB to  L*a*b*, L*a*b* to RGB

                RGB to XYZ, XYZ to RGB

                RGB to YIQ, YIQ to RGB

                RGB to YUV, YUV to RGB

                RGB to HSV, HSV to RGB

                RGB to HLS, HLS to RGB

Week 10: Thresholding techniques

   Global thresholding

   multilevel thresholding

   variable thresholding

   thresholding using image statistics

       using mean and standard deviation

       using maximization of between-class variance

Week 11: Morphological filtering

        set theory

        arithmetic operations

        boolean operations

        erosion and dilation

        medial axis transform

        skeletonization

 Week 12:   Warping

        scaling

        rotation

        shear

        cutting and pasting

        conformal image mapping

        warping

Week 13: The Cosine Transform

       The Discrete Cosine Transform

       The Inverse Discrete Cosine Transform

       The Fast Cosine Transform Class

        Reading and Writing JPEG Images

Week 14: The InLine MPEG CODEC

        Compressed MPEG movies images

                decoding MPEG

                encoding MPEG

        reading MPEG files

        writing MPEG files

        displaying MPEG files

        measuring loss

        Implementing in-line Java Decoders

Week 15: The Wavelet Transform

      The Discrete Wavelet Transform

      The Inverse Discrete Wavelet Transform

      The Fast Wavelet Transform Class

     Writing a wavelet encoded file

     Decoding the wavelet encoded file

     Incorporating the decoder with the data

     Distribution of wavelet images on the Net.

Attendance Policy:              Students are responsible to acquire notes and homework assignment from classmates in case of absence.

                                 Weighted

Grading:

   Midterm                         1/3

   Final Examination           1/3

   Homework                    1/3        includes tests, quizzes, projects, etc.