Browsing by Author "Tang, Lei"
Now showing 1 - 4 of 4
Results Per Page
Sort Options
Item A Browser-based Program Execution Visualizer for Learning Interactive Programming in Python(2015-04-23) Tang, Lei; Warren, Joe; Rixner, Scott; Jermaine, ChristopherGood educational programming tools help students practice programming skills and build better understanding of basic concepts and logic. As Rice University started offering free Massive Open Online Courses (MOOC) on the internet, we developed a web-based programming environment to teach introductory programming course in Python. The course is now one of the top-rated MOOC courses, which is believed largely due to the successful web-based educational programming environment. Here we will introduce the thought processes behind the design and then focus on the key innovations incorporated in it. The main contribution of this thesis is an entirely browser-based Python program execution visualizer that graphically demonstrates the execution information to help students understand the dynamics of program execution. Especially, this tool can also be used to visualize and debug event-driven programs. The design details and unit test infrastructure for the program execution visualizer are both introduced in this thesis.Item A cell number-counting factor regulates group size in Dictyostelium discoideum(2002) Tang, Lei; Gomer, Richard H.Little is known about how a morphogenetic rearrangement of a tissue is effected by the individual cells. Starving Dictyostelium discoideum cells aggregate to form dendritic streams which then break up into groups of ∼2 x 104 cells. Cell number is sensed using counting factor (CF), a secreted complex of polypeptides. A high extracellular concentration of CF causes an aggregation stream to break up. We find that CF slowly down-regulates the cAMP-induced cGMP pulse by inhibiting guanylyl cyclase activity. On the other hand, CF significantly potentiates the cAMP-induced cAMP pulse size through the up-regulation of the adenylyl cyclase. Both the cAMP-induced cAMP and cGMP pulses are dramatically smaller in REMI-11 cells, which over-express REMI-11 protein, a smlA second site suppressor. CF does not affect the cAMP receptor, its interaction with its associated G proteins, or the translocation of the CRAC to the membrane in response to cAMP. Pulsing streaming wild-type cells with a high concentration of cAMP results in the formation of small groups, whereas reducing cAMP pulse size with exogenous cAMP phosphodiesterase during stream formation causes cells to form large groups. Altering the extracellular cAMP pulse size does not phenocopy the effects of CF on the cAMP-induced cGMP pulse size or cell-cell adhesion, indicating that CF does not regulate cGMP pulses and adhesion via CF's effects on cAMP pulses. We also show that Ca 2+ is required for CF's function although the mechanism is not clear. Computer simulations indicated that stream breakup could be caused by CF decreasing cell-cell adhesion and/or increasing cell motility, and we have previously observed that CF does indeed decrease cell-cell adhesion. We further demonstrated that CF increases cell motility. In Dictyostelium, motility is mediated by actin and myosin. CF increases the amounts of polymerized actin and ABP-120. Reducing motility using drugs which interfere with actin polymerization inhibits stream dissipation resulting in larger groups. CF also potentiates the phosphorylation and redistribution of myosin. Our results indicate that CF may regulate myosin function and cell polarity, at least in part, through activating protein kinases Akt/PKB and PAKa. CF thus appears to induce the morphogenesis of streams into evenly-sized groups by decreasing adhesion, increasing actin polymerization, increasing myosin phosphorylation, and increasing cell polarity.Item Data-Driven Tools for Introductory Computer Science Education(2018-08-10) Tang, Lei; Warren, Joe D.The software industry spends a tremendous amount of effort and resources on software testing and maintenance to improve the quality of software. However, a large portion of the cost may be saved by training high-quality software developers with better Computer Science education. Skilled software developers can not only produce code of fewer bugs and better design but also identify and fix issues more effectively. Therefore, in this thesis, we researched building useful educational tools for facilitating Computer Science education, particularly in introductory programming courses. Since understanding the code execution is the first step of writing high-quality code and software testing, in the first study, we built a web-based interactive tool to teach students necessary comprehension and analysis skills to understand the program execution. Secondly, we built an automated tool for students to interactively practice writing test cases and debugging programs. The tool gauges the test coverage of students' test sets using a large corpus of buggy programs we collected in our previous course sessions. The tool returns the buggy programs as immediate feedback which students' test sets failed to catch. Students need to study those returned buggy programs to gradually improve the testing coverage of their test sets. In the third project, we built a tool that automatically generates high-quality test cases to construct concise test sets for testing students' coding assignment solutions. The tool utilizes heterogeneous historical student incorrect implementations to guide the test case search process. Its generated test cases are expected to provide better test coverage than instructor built tests cases. To validate the effectiveness of our tools, we conducted studies in introductory programming courses among students at Rice and online students of our Massive Open Online Courses (MOOC). The studies showed that, compared with studying traditional Computer Science curriculum, students made significant improvements in understanding basic Computer Science concepts and software testing skills by interacting with our educational tools.Item High-Performance Communication Protocols for Asynchronous Duty-Cycling Wireless Networks(2013-11-07) Tang, Lei; Johnson, David B.; Ng, T. S. Eugene; Knightly, Edward W.Duty cycling is a technique for saving energy in resource-limited wireless networks such as sensor networks. With duty cycling, each node periodically switches between active and sleeping states, for example being active for only 1 to 10 percent of the time. Wireless duty-cycling networks face many challenges such as maintaining high energy efficiency, efficient packet delivery under dynamic channel conditions, and effective route discovery. This thesis presents a series of protocols to address these challenges. The first part of this thesis presents a new single-channel energy-efficient MAC protocol, called the Predictive-Wakeup MAC (PW-MAC). The key idea behind PW-MAC is to allow each node to wake up asynchronously at randomized times, while enabling senders to predict receiver wakeup times to save energy. Extending the randomized predictive wakeup mechanism of PW-MAC, the second part of this thesis presents a new multichannel energy-efficient MAC protocol, called the Efficient-Multichannel MAC (EM-MAC). EM-MAC enables each node to dynamically optimize the selection of wireless channels it utilizes based on the channel conditions it senses. By adapting to changing channel conditions, EM-MAC achieves high packet delivery performance. EM-MAC also achieves high energy efficiency through its predictive multichannel wakeup mechanism. Although duty cycling saves energy, I found that, in asynchronous duty-cycling networks, existing on-demand routing protocols tend to discover routes much worse than the optimal routes. The last part of this thesis presents four optimization techniques to improve the routes discovered in such networks. These optimizations are fully distributed and work on different route metrics, such as hop-count and ETX. Implemented in TinyOS on a testbed of MICAz sensor nodes, PW-MAC achieved the lowest energy consumption and delivery latency among the single-channel protocols, while EM-MAC significantly outperformed all other protocols tested. EM-MAC maintained the lowest duty cycles, the lowest packet delivery latency, and 100% packet delivery ratio across all experiments, including those with concurrent multihop traffic flows, and those with heavy ZigBee and Wi-Fi interference. Finally, in simulations on the ns-2 network simulator, compared with the conventional on-demand route discovery, the presented route discovery optimizations substantially improved the routes discovered in asynchronous duty-cycling networks.