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.
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.
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:
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.
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:
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..
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:
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.
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:
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.
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.
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.
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.
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.
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.
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.
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.