Lou Guzik's Portfolio

A collection of some of the academic projects I have completed.


Assembler Programming:

The assembler programs here are written for Intel's 8088/8086 microprocessor, using a PC running MS-DOS and also embeded controllers.

View the
files

Goto Top of Page


C Programming

Compiler:

This program was written with C++ as a better C. It is an exercise in simulating some of the features found in a very simple language (VSL) and compiler.

View the
files

Goto Top of Page


3D Transformation Graphics:

This program was written with Borland C. It is an exercise in DOS based 3D Transformation Graphics.

View Source Code
program3.c
Download Executable program3.exe (78k)

Goto Top of Page


MS Windows:

This program was written with Microsoft's Quick C for Windows. It is an exercise in simulating some of the features found in MS Paint. Barcolor is the name of the program because of the way the dialog box for changing the color works.

View Source Code
barcolor.c
Download Executable barcolor.exe (47k)

Goto Top of Page


C++ Programming

Classes:

Bib_Item is an object orientated programming project that demonstrates the use of objects and classes built upon each other. It is based on the handout given during our artificial intelligence class.

The file bib_main.cpp is the application program, the first few lines load in some data to start off with. Bib_Cards is declared as an abstract data type of the class Bib_Item. Then we loop through a menu loop that will call the object Bib_Cards functions. MYIO is a class I wrote some time ago, with the modularity of O.O.P. it was very easy to add it in. This explains the time display in the upper right corner. I really use the functions for getting keyboard entries.

The file bib_item.h is the include file where the definitions for the class Bib_Item are located. Class Item is the base class for all objects, this is so a general base class pointer can point at derived class. Virtual data slots and virtual functions are dummy place holders, data slots return NULL and the functions display an error message (functions should be overloaded in the derived class).

Class Book is a frame that contains the particular data for a book, a pointer to the next book, and general functions for returning authors name, book title, total books, and a print function.

Class Mag is a frame that contains the data for a magazine, a pointer to the next mag, and general functions for returning authors name, mag title, total mags, and a print function.

Class MicroFilm is a frame that contains the particular data for a microfilm, a pointer to the next microfilm, and general functions for returning authors name, mag title, total microfilms, and a print function.

Class Items is a list of lists with pointers for the head of each book, mag, and microfilm.

Class Bib_Item is the controller for the over all operation of the application program. The print function is overloaded to support: Print( void ) which is like the browse function in the handout; Print( Type ) which is like print_bib showing all authors and title for a particular type (book, mag, microfilm, etc); Print( Type, Author, Title ) to display a particular item. Functions Find, Add, and Delete all for a particular item.

The file bib_item.cpp is the work horse for the program. The key here is to point at the right book or mag or microfilm without knowing its type in the program. This is the reason for the base class, so other classes can all point to each other before they can all be declared.

View Main Program
bib_main.cpp
View Source Code bib_item.cpp
View Include File bib_item.h
Download Executable bib_main.exe (32k)

Goto Top of Page


Constructors:

In this project constructors are used to do most of the work when a money object is created or destroyed or appended to other money object. Overloaded operators are used as friends to perform the functions of the money objects.

Money.cpp is the generic application program which is an example how a user may wish to use the functions of a money class. USAmoney is a money class based on the United States money system. Other money system can easily be added.

View Source Code
money.cpp
View Source Code usamoney.cpp
View Include File usamoney.h

Goto Top of Page


Memory Manager Simulation:

Variable Partition Multiprogramming Operating System project. Observing the problems with fixed partition multiprogramming an improvement would be to allow jobs to occupy as much space (short of the full real storage) as they need. No fixed boundaries would be observed. Instead, jobs would be given as much storage as they required. This scheme is called Variable Partition Multiprogramming (VPM).

In VPM wasted space becomes obvious when jobs start to finish and leave holes in the main storage. These holes can be used for other jobs, but as this happens, the remaining holes get smaller eventually becoming too small to hold new jobs.

The process of merging adjacent holes to form a single larger hole is called coalescing. By coalescing holes, we reclaim the largest possible contiguous blocks of storage. This is also known as garbage collecting.

View Source Code
simmeman.h
View Source Code simmeman.cpp
Download Executable sim.exe (96k)

Goto Top of Page


Object List:

This project is a list of lists. In Queue list nodes or objects are inserted in a first come, first served basis and removed from the top of the list. In a Stack objects are pushed onto the list and popped off from the top of the list. In a Link List nodes are inserted in order and removed from there position in the list.

Any number of all three kinds of lists can be created or deleted. Also any node, list or all lists can be printed to the screen.

View Source Code
files
Download Executable objlist.exe (96k)

Goto Top of Page


Prolog Programming:

These programs were written with Prolog. They are an exercise in Rule Based Programming.

View the
files

Goto Top of Page


Micro Controller Project

Lottery:

A microcontroller is similar to a microprocessor except it has on-board RAM and is capable of handling current requirements up to 20 milliamps. A microcontroller is used best with byte operations and only has a limited amount of operations it can perform.

The Lottery game uses a Microchip PIC16C57 microcontroller and a HD44780 dot matrix liquid crystal display controller and driver.

View Source Code
lottery.txt
View Schematic Diagram
View Top
View Bottom

Goto Top of Page


UNIX

Client - Server:

This program was written on a H.P. 9000 computer. It simulates a multi-user vending machine.

View Client Source Code
client.c
View Server Source Code server.c
View Socket Source Code mysocket.h

Goto Top of Page


Telecommunication

Differential Manchester Encoder/Decoder:

Group Members: Diane Gruseck, Chang Che-ming, Louis Guzik

Digital Data - Digital Signal

In the MANCHESTER code there is a transition at the middle of each bit period. The mid-bit transition serves as a clock ans also as data: a low-to-high transition represents a 1, and a high-to-low transition represents a 0.

In DIFFERENTIAL MANCHESTER the midbit transition is used only to provide clocking. The encoding of a 0 is represented by the presence of a transition at the beginning of a bit period. Differential Manchester exhibits the advantage of being a differential encoding technique.

This is a method of encoding a bit stream. A binary 1 is encoded as a low-high signal and a binary 0 as a high-low signal. So there is always a transition(1->0 or 0->1) at the center of each bit cell. A transition at the start of a bit cell occurs only if the next bit to be encoded is a 0. This can be a useful feature with point-to-point links if using differential drivers and receivers.

ADVANTAGES:
Synchronization; a predictable transition occurs during each bit time, this is know as a self-clocking code.
No DC Component; which allows electrical isolation between the communicating devices. The DC component can also cause deterioration at the electrical contacts.
Error Detection; the absence of an expected transition can be used to detect errors.

View
Picture.
View Waveforms.
View Encoder Schematic.
View Decoder Schematic.
View Block Diagram.

Goto Top of Page


Link to Learn:

Group Members: Diane Gruseck, Louis Guzik, Stephen Sirulnick, Monika Schwartz, Joe Yee

A Network Design Project

Assume you have just been hired by the State Government of Pennsylvania as the Director of Design for the new State-Wide Link-To-Learn Telecommunications Network. Your first task will be to propose a network design that meets the objectives of the project and costs less that $5 million.

The network is to link every significant State facility and provide access to the city, the state, federal authorities, the internet and possibly other countries. The network will carry voice, video and data traffic as needed.

It is desirable to have the network be as reliable as possible, have a good response time, be relatively immune to congestion and have excess capacity to satisfy needs for the next five years.

The Task is to:
A. Identify and justify potential nodes.
B. Estimate current and future traffic among nodes.
C. Identify and quantify any other measures (reliability, response, flexibility, etc.) that might be necessary.
D. Propose a topology for this network.
E. Show that this topology has sufficient reliability, response and capacity.
F. Write a report that justifies the network specification and includes as appendices the supporting data and calculations.

View the
Paper, short version.
View the Network Diagram.

Goto Top of Page


Telephony:

A Design Project

A company runs two call centers. One has 8 people and handles customer help and technical calls (SUPPORT). It is located in Greentree and runs on Centrex. The other has 15 people and handles new product ordering (SALES). It is located in Greensburg and runs off an AT&T Definity G3r PBX. Both use the ACD features available within their respective telephone systems. Neither uses any stand alone products. All agents have client PC acess to company applications for call tracking, ordering, and trouble ticketing via in-building LAN's. The call receipt/trouble ticketing application resides on a server in the Greentree office. The order entry application resides on a server in the Greensburg office.

In the company almost everyone has a PC. About 30% of the staff (including clerical) have either an AT&T 84xx series set for the PBX site in Greensburg or an AT&T 85xx series set for the Centrex site in Greentree.

The COI thinks it would enhance productivity and communications to go ISDN BRI for the 30% with 84xx and 85xx sets and do PC desktop telephony with collaborative file sharing and video conferencing.

View the
Paper.

Goto Top of Page


Protocols:

TELCOM 2061: Telecommunications Protocols & Interfaces

Project Description: The project for this course involves the design and implementation of a simple file transfer protocol (SFTP) in the C programming language. The file transfer is to be executed between two computers, with their serial ports connected via a null modem cable.

The low level serial port drivers will be made available, and the file transfer program should use these driver routines to read and write data from/to the serial port, as well as configure the serial port.

This document provides a detailed description of the project specifications, and the deadlines. However, the specifications provided here should not restrict you in implementing other functions. Feel free to be creative and ambitious, but only after making sure you have the time to complete the required functions. At the end of the project, a project report (and help manual) describing your design and the capabilities of your application program, along with the code are to be submitted.

The project is to be done in groups of two, and I would like a contract from each group stating the responsibilities of each group member . There will be a project demonstration in the last week of classes (See Section 3.).

Project Specifications 1.1 The SFTP Protocol

The basic SFTP packets types are :
Initiation (I) Packet containing the communication parameters.
Header (H) Packet containing the name of the file to be transmitted.
Data (D) Packet containing the file contents.
End-of-File (E) Packet.
Break Transmission (B) Packet.
Acknowledgement (A) Packet.
Negative Acknowledgement (N) Packet.
Fatal Error (F) Packet.

SFTP is a Selective Repeat continuous-RQ transaction oriented protocol. The transaction is driven by the sender; the receiver simply acknowledges each packet it gets. If an error is detected, the receiver sends back a negative acknowledgement which causes the retransmission of the erroneous packet(s). The transaction begins when the sender transmits an initiation packet, I, to indicate that files are coming. This is followed by a file header packet, H, in which the sender tells the receiver the name of the file that is to be sent. A packet, E, signals the end of the file. A packet, B, signals the end of the transaction. The received files are to be stored at the receiver after making sure that no old file with the same name is overwritten. Further , you must provide the option of being able to display the file on the screen. An important parameter in this scenario is the window size (K) chosen. Note that K=1 corresponds to the stop-and-wait or Idle RQ scheme.

SFTP Packet Format
Mark
Len Seq T ype
Data Check
End

Mark A single character that marks the beginning of the packet.

Len Number of ASCII characters in the remainder of the packet, up to and including the check field.

Seq The sequence number of the packet.

Type The type of the file.

A ACK. The date field determines the kind of packet being acknowledged.

N NACK. The data field is empty.

I Initial packet. Data field contains the initialization parameter .

Maxl = Maximum length Time = Time out

EOL = Packet terminator The Ack of this packet contains the values of the initialization parameters as agreed upon by the sender and the receiver .

H File header . Indicates that a file data is to arrive for named field. Data field contains the name of the file. An Ack to this packet contains the name of the file as stored by the receiver . D Data. An acknowledgment may contain R to drop the the transmission of the current file or a B to stop the whole transmission. B Break the transmission

E End of file

F Fatal

error Check Block check sequence (1 character)

As a minimum requirement, the protocol must handle properly the transfer of a group of ASCII files.

In addition, the design must provide for a user interface. The interface should allow the setting of the communication parameters : speed and parity .

In addition, the interface should offer the possibility to force errors and test error recovery procedures, report the status of the transfer and allow the user to interrupt the transaction, if desired. Further , the performance of the protocol with different window sizes must be measured and documented. For example, the performance dif ference between the stop-and-wait scheme and the Selective Repeat scheme implemented should be presented. 1.2

Design Documentation Prior to implementing the system, you must submit an initial design report.

The report should include the following

A detailed description of the structure of the user interface. The design of the interface should allow the user to ask and obtain at least one level of help for each command provided at the interface.

A modular decomposition of each component of the system, a description of the interface between each pair of components, and a justification of your design choices. Careful thought must be given to the design to allow for new functionalities to be added to the system. As part of the final report, you are expected to discuss the program design and implementation in detail, and justify whatever design decisions you have made. Enclose a well documented user manual and a listing of the source code.

Project Evaluation Criteria

Demonstration of the correct operation of the protocol in the presence of (forced) communication errors. Software design methodology (Eg., data or ganization and structure) User interface and the flexibility in use.

Error messages generated.

Specified functions implemented (and executable). Additional functions implemented. On-line help provided to the user. The effectiveness of the help manual provided in running the application.

View the
Paper (short version)
View Source Code protocol.h
View Source Code serial.h
View Source Code driver.c
View Source Code prot_snd.c
View Source Code prot_rec.c

Goto Top of Page


2^k Factoral Design:

TELCOM 2062: Network Performance

Project Description: Investigate the use of the ping/spray Unix commands to collect data to accurately predict delays in an internet environment. You should pick a set of ftp cites that one can ftp files from/to and set up an experiment to repeatedly ping/spray the cite then ftp a file. Vary the parameters in the ping/spray (e.g., packet size, packet length) and use the info to predict the time to execute the ftp. First set up a Experimental Design (maybe 2^K factorial) before collecting data - once you have an initial set of data try to determine which factors effect the prediction most - then repeat the experiments to do full factorial design on the factors that MATTER. Based on the measurements collected can we construct an accurate prediction model - (e.g., multi linear regression) ?

View
Report (short version)
View Table 1.
View Table 2.
View Table 3.
View Table 5.
View the script file for 2^k.
View the script file for Full Factoral.
View the script file for Spray data.

Goto Top of Page


SLAM:

TELCOM 2221:

Project Description:

View
files

Goto Top of Page


Network Discovery:

TELCOM 2121: Network Management

Project Description: By using SNMP information from a seed router, create a topology map of the following networks. The completed assignment should contain:
- the type of hardware for each device
- software versions
- the IP address of each device
- the IP domain name
- the MAC address of each device
- how the devices are interconnected
- a report that documents the steps and methods used in discovering the networks.

View
Report (short version)
View the Network Diagrams.
View the script file for 130.49.65.0.
View the script file for 136.142.100.0.

Goto Top of Page


Firewalls:

TELCOM 2123: Network Security

Project Description:

View
Paper (short version)
View Presentation

Goto Top of Page


Wireless LANs:

TELCOM 2221: Wireless

Project Description:

View
Paper

Goto Top of Page


Intelligent Networks:

TELCOM 2226:

Project Description: A.I.N. with SS7

View
Paper

Project Description: Modify the REDCOM Telephone Switch to add three new features; call-block, redial, call-back.

View Red-Serial.h
View Redcom.h
View Reddos7.c

Goto Top of Page


TCP / IP:

TELCOM 2550:

Project Description: An IP stop&wait Protocol, used to add users to a database. The workhorse programs are: people_tcp_client.c and people_tcp_server.c

View
Source code files


Project Description: minisend() a Client-side, low level network fetch tool.

View Source code files
View Shell Script files

Goto Top of Page


Continuing Education

Java Calculator


Project Description: My first Java applet program.

Requires Java
Click Here to Download Java

Run the program
View Source code files


Goto Top of Page







The End.