|
Andrew Johnson
M.S. Internet Engineering
University of San Francisco
Computer Science Department
Fall 2005
Programming SVGA Graphics Devices 0203-686-01 Computer Science Prof. Allan Cruse
This course explores fundamental principles of raster graphics
programming from a hardware and systems software perspective.
Topics include:
- functional components of the standard SuperVGA graphics adapter
- relationship of video memory to screen resolution and color depth
- standard and non-standard display-modes for text and graphics
- basic computer algorithms for line-drawing and region-filling
- construction of wireframe models and principles of animation
- fundamentals of lighting, coloring, and perspective drawing
- user-interface issues in window systems and event-driven programs
- mathematics of ray-tracing used to create photorealistic images
- exercises in font, icon, and cursor designs and interactive controls
- exercises with sound-effects, mouse-control and graphic laserprinting
| |
Projects
|
| |
Tune Tool (C, C++)
|
| |
This project involves handling of mouse-events in
a graphics application, and with synchronization of some sound-effects as
responses when a user presses or releases a mouse-button while the cursor
is over various regions-of-interest on the display-screen.
Author: Andrew Johnson
Source code can found here.
|
| |
|
| |
3D Graphics with Ray Tracing on Linux (C/ C++)
|
| |
This project offered the opportunity to apply the knowledge
gained in this course on programming SVGA devices, to create a ray-traced
image of a mathematically defined object in 3-dimensional space.
Author: Andrew Johnson
Source code can found here.
|
| |
|
Spring 2005
Distributed Software Development 0203-682-01 Computer Science Christopher H. Brooks
Use
of artificial intelligence techniques to solve large scale problems.
Search strategies, knowledge representation, and other topics chosen
from: simulated annealing, constraint satisfaction, logical and
probabilistic reasoning, machine learning, expert systems, natural
language processing, neural networks, genetic algorithms, and fuzzy
logic. Both theoretical foundations and practical applications will be
covered. Coursework includes written assignments and programming
projects.
| |
Projects
|
| |
XML Music Database (Cocoa, Objective-C, C++)
|
| |
XML music database that uses Web Services to gather additional information. Interacts with Amazon's Web Services platform using the REST interface.
Author: Andrew Johnson
Source code can found here.
|
| |
|
| |
theBaconiZer: foaf.rdf tool (Cocoa, Objective-C)
|
| |
A program that tries to solve the 'Kevin Bacon' problem for a given person. That is, given a person's name and a FOAF profile, it finds the shortest path through the graph of friends that leads to this person.
Author: Andrew Johnson
Source code can found here.
|
Internet Systems Research 0203-680-01 Computer Science David W. Wolber
Survey of Internet systems research including the anatomy of the web,
search engine architecture and algorithms, information retrieval,
crawling, text analysis, personalization and context, collaborative
environments, and the semantic web.
| |
Projects
|
| |
Akita: Web Profile Hunter (Objective-C)
|
| |
Akita is a search-driven personal profile builder that creates a personality "image" of a user based on online presence and peer associations. The data sources to build the image are derived from utilizing search APIs and by indexing a crawl of seed-driven FOAF files to obtain peer relationships.
Author: Andrew Johnson
Source code can found here.
|
| |
|
| |
Universal Search Protocol Project (Java)
|
| |
A proposed structure for a Universal Search API, to standardize the syntax of public search queries. This structure contains a core set of functionality to represent generalized search requests and responses.
Authors: Andrew Johnson, Marc Greenberg
Source code can found here.
|
Fall 2004
Artificial Intelligence Prog 0203-662-01 Computer Science Christopher H. Brooks
Use
of artificial intelligence techniques to solve large scale problems.
Search strategies, knowledge representation, and other topics chosen
from: simulated annealing, constraint satisfaction, logical and
probabilistic reasoning, machine learning, expert systems, natural
language processing, neural networks, genetic algorithms, and fuzzy
logic. Both theoretical foundations and practical applications will be
covered. Coursework includes written assignments and programming
projects.
| |
Projects
|
| |
TFIDF WebCrawler (Python)
|
| |
A focused web crawler application that uses both keyword queries and TFIDF to determine what the user is interested in.
Author: Andrew Johnson
Source code can found here.
|
| |
|
| |
Electronic Music Ontology (RDF)
|
| |
An Electronic Music ontology that was created using Protege, exported as RDF, and then queried with RDQL.
Author: Andrew Johnson
rdf
rdfs
|
Obj-Oriented Software Development 0203-601-01 Computer Science Terence J. Parr
A study of software development. Software engineering principles and
structured methods are discussed as a prelude to the focus on
object-oriented approaches. All phases of the software lifecycle are
covered, including analysis, design, implementation and testing, and
maintenance. Other topics include user interface design and
development, software reuse and the design of reusable software
components, software patterns, and web-based client-server programming.
| |
Projects
|
| |
Bubble Mail Web Client (Java)
|
| |
A Java servlet-based application that acts as a web-based email client server like Hotmail, etc.
Authors: Andrew Johnson, Cindy Zhou
Source code can found here.
|
| |
|
| |
Bubble Server (Java)
|
| |
A simple HTTP server that accepts multiple simultaneous requests, responds to GET requests for multiple file formats, and can execute Java code on the server side.
Author: Andrew Johnson
Source code can found here.
|
back
|
|