Session 2K

Modern Technology / Economic Modeling

3:30 PM to 5:00 PM | Moderated by Marc Dupuis


Using Modern Web Programming with Active Learning in CS1
Presenters
  • Joonwoo Choi, Senior, Information Technology (Tacoma)
  • Joo Sung Park, Fifth Year, Computer Science and Systems
Mentor
  • Sam Chung, Information Technology & Systems, UW Tacoma
Session
  • 3:30 PM to 5:00 PM

Using Modern Web Programming with Active Learning in CS1close

The purpose of this paper is to propose a new curriculum of a college-level introductory computer science course called CS1 using modern web programming with active learning methods. The current CS1 courses have several limits - 1) distributed computing is not employed, 2) software architecture is not taught in advance, and 3) active learning methods are not usually used. To develop CS1based active learning using modern web technology, we chose a server side web programming that supports Client/Server (C/S) Computing and Model-View-Controller (MVC) architecture - Microsoft ASP.NET MVC4. Also, three active learning methods such as Just-in Time-Teaching (JiTT), Peer Instruction (PI), and Flipped Classroom (FC) are used to encourage student learning in class. For JiTT, we develop a reading assignment for the next class, which consists of one or two multiple choice quizzes and an essay question. CS1 students are required to submit their assignment before the next class. The instructor checks what the students could not understand and explain the topics in the class. For PI, a concept question, in which the most important concept that the students must understand in the class, is provided. The students in the class discuss the given concept test and explain each other to find a correct answer. After peers help each other, the instructor explains the concept test to the students. For FC, a programming lab, which is very similar to a programming assignment that will be done out of class, is conducted. This CS1 curriculum with modern web programming allows a CS1 instructor to teach students modern web applications using C/S computing and MVC architecture, instead of console applications using monotonic computing and non-architecture. Also, the CS1 curriculum based active learning allows the CS1 students to be more engaged and interested in learning.


A Comparison of Server-Side Web Technologies based upon Knowledge, Skills, and Abilities
Presenters
  • Rahul Deshpande, Sophomore, Computer Engineering and Systems
  • John (Himchan) Han, Junior, Information Technology (Tacoma)
Mentor
  • Sam Chung, Information Technology & Systems, UW Tacoma
Session
  • 3:30 PM to 5:00 PM

A Comparison of Server-Side Web Technologies based upon Knowledge, Skills, and Abilitiesclose

The purpose of our research is to propose guidelines for web developers in choosing the appropriate server-side technology for web application development, based on KSAs (Knowledge, Skills and Abilities). Server-side technologies have evolved over the years. However, there are no clear guidelines for web programmers to distinguish between them, especially in the following areas : Architecture, Cloud Computing and Unit Testing. Knowledge of architecture helps easily design maintainable software systems. Cloud Computing allows to deploy the developed applications easily. Unit Testing is essential in testing units of code that has been written using server-side languages. Hence, these areas form a crucial basis for suggesting guidelines for comparison between server-side technologies. We study three knowledge areas of server-side technologies significant to web-application development : architecture, cloud computing and testing. Then, we compare the three server-side technologies on a specific framework on the basis of the skills required in the stated knowledge areas, and the abilities to demonstrate those skills: ASP.NET MVC, JavaServer Pages on Spring, and Python on Django. The results of our research make straightforward the similiarities and differences between the server-side technologies discussed. Our conclusions will help web developers make the right decision when choosing a server-side technology for making web-applications.


Optimal Stopping for the Secretary Problem with Competition
Presenter
  • Eric Christopher Lei, Senior, Computer Science, Economics, Mathematics Mary Gates Scholar, UW Honors Program, Washington Research Foundation Fellow
Mentor
  • Anna Karlin, Computer Science & Engineering
Session
  • 3:30 PM to 5:00 PM

Optimal Stopping for the Secretary Problem with Competitionclose

In the classical secretary problem, an employer tries to hire the best secretary from a line of candidates. The employer considers each candidate in sequence and makes an irreversible decision to accept or reject, being able to make only one hire. A well-known result gives the optimal strategy for this problem with a probability of success of 1/e. We extend this problem by considering a setting in which there are multiple employers, which could be universities, for example, competing for the best faculty candidates. We derive the optimal strategy for this setting and demonstrate that it meets expectations because lower ranked universities tend to make earlier offers. We employ theoretical analysis using game theory and algorithms. The broader implications of this research are greater understanding of optimal stopping problems as well as better information on how employers should hire. Eric's duties include design and analysis of algorithms for solving the problem.


An Actor Library for Rust
Presenter
  • Preston Peter (Preston) Sahabu, Senior, Computer Science UW Honors Program
Mentors
  • Dan Grossman, Computer Science & Engineering
  • Eric Reed, Computer Science & Engineering
Session
  • 3:30 PM to 5:00 PM

An Actor Library for Rustclose

Physical limitations have forced computer hardware designers into providing multiple processors rather than faster ones. To take advantage of this, software engineers must structure their programs in a parallel fashion. Separately, programming languages with commands similar to those of hardware, known as "systems languages", have long been criticized for their lack of safety. This means that programs written in these languages are easily incorrect and difficult to reason about. Rust, a new systems language from Mozilla, seeks to address both parallelism and safety by using modern language concepts. To those ends, Rust’s concurrency primitive is the task, which can be thought of as a lightweight thread that does not share memory with any other task. Message passing is used between these tasks in order to coordinate their work. While this primitive is sophisticated and suited to parallelism, the development community has expressed a desire for an Actor library. At a high level, the Actor model is a concurrent object-oriented programming model, where each Actor maintains state and takes actions based on the messages they receive from other Actors. In this investigation, the suitability of the Rust language for an Actor library is evaluated by writing and refining an implementation. It is expected that the implementation will be backed by the task primitive and its associated structures. Various criteria will be evaluated throughout development, including overall throughput, library overhead, and ease of use. The success of the Actor model within the Rust language would continue its goal of bringing straightforward parallelism and safety to the systems language space.


Portfolios Optimization in Derivatives Market using Stochastic Calculus
Presenter
  • Han Xia, Senior, Mathematics
Mentor
  • Zhen-Qing Chen, Mathematics
Session
  • 3:30 PM to 5:00 PM

Portfolios Optimization in Derivatives Market using Stochastic Calculusclose

Stochastic modeling has been broadly used in the financial market and actuarial industry containing certain derivative investment products. It utilizes past or present information to measure unknown future values. These models are based on Brownian motion, which is the continuous analog of random walk, and takes the randomness of future paths into account. An effective tool to analyze these models is stochastic calculus. I have read and studied some past scholars’ works, which had come up with quite many variations of stochastic models in different financial situations, such as markets involving at least one risky asset (e.g. stock) and a riskless asset (e.g. money market). However, I have noticed that more study needs to be done in incomplete markets where there exists arbitrage opportunities (i.e. riskless profit). Because in real life, when major events such as bankruptcy, financial crisis, and natural disaster happened, original pricing models based on the Black-Scholes model cannot make valuable predictions during a period of time due to the incompleteness of the market. I am trying to estimate an optimal portfolio under those circumstances by utilizing probability theories to modify the existing models. In this model, volatility of assets will be treated as random variable. By utilizing machine learning techniques, synthetic data generated by computer programs will be used to test the fit and efficiency of the model.


The University of Washington is committed to providing access and accommodation in its services, programs, and activities. To make a request connected to a disability or health condition contact the Office of Undergraduate Research at undergradresearch@uw.edu or the Disability Services Office at least ten days in advance.