Shen Li's repositories
HeadFirstDesignPatterns
Head First Design Patterns examples
EffectiveJava
Effective Java examples
CrackingCodingInterview
Cracking the Coding Interview solutions
ConnectFourGame
Product Quanlity Software class final project
BasicAlgorithmsAndDataStructures
Basic algorithms and data structures
AddressBookLib
Product Quanlity Software class address book library project
WebSearchEngine
Web Search Engine class project
PerformanceTestFramework
Performance test framework
Stopwatch
Product Quanlity Software class thread-safe stopwatch project
bullett_media_workspace
Bullett Media Web Development
ost_head2head
For this assignment, we'll be creating a new command called head2head that can be used to compare objects one pair at a time until a ranking between all objects is obtained using the Condorcet method. The idea is similar to what you might see on websites like http://www.greatmovieexperiment.com/.
os_replacement
Implement several replacement policies and compare between them in terms of performance.
os_scheduler
In this project we will test several scheduling algorithm/
oop_scala
This assignment introduces you to programming in Scala and to some of its more interesting features.
oop_overload_java
This assignment exercises your knowledge of generics and overloading in Java.
oop_generics
Java collections are supposed to be "fail fast". If you iterate over the elements of a collection and, while iterating, also modify the collection through another method (i.e., not the iterator's remove() method), the next iteration should signal a java.util.ConcurrentModificationException.
oop_inheritance_c
Implementing dynamic dispatch using explicit vtables in C.
dcn_streaming_video
In this programming assignment you will implement a streaming video server and client that communicate control commands via the Real-Time Streaming Protocol (RTSP) and send data using the Real-Time Transfer Protocol (RTP). Your task is to implement the RTSP protocol in the client and implement the RTP packetization in the server.
dcn_udppinger
In this lab you will implement a simple UDP-based ping client and server. The functionality provided by these programs is similar to the standard ping-program available in modern operating system. Ping works by sending Internet Control Message Protocol (ICMP) ECHO-messages which the remote machines echo back to the sender, who can then determine the round-trip times between itself and the computer it pinged. In this lab you will implement use standard UDP sockets ad messages to measure the round trip time (RTT) between a client and server.
dcn_webserver
In this lab you will develop a limited Web server that can detect some Request errors, process multiple requests simultaneously and support caching. You should be able to demonstrate that your Web server is capable of delivering content to a Web browser.
cc_intermediate_code_generation
In this last part of the project, we are adding one more part to the puzzle! In that part, your compiler is actually generating code.
cc_lexical_analyzer
The first step in the construction of your compiler is to implement a lexical analyzer for a Pascal-like language.
cc_syntax_analyzer
Syntax Analysis: Parser
cc_semantic_analyzer
In this part of the project we will build a more realistic symbol table, and use it for semantic analysis and type checking.
ost_final_rank
The goal of the final project is to demonstrate your knowledge of Open Source tools. In assignment 3, we wrote a command line tool to rank items, and in assignment 4, we put together a simple web-based interface to this system. For the final project, we will adapt this into a more full featured web-based application.