San Jose State University : Site Name

Navigation

Main Content

Working in Mars Mission Control, JPL

Ronald Mak

Department of Computer Science
Department of Applied Data Science
Engineering Extended Studies
Fall Semester 2024

Office hours: Tu 6:00 – 7:00 PM
Office location: Clark Hall CL 325
E-mail: ron.mak@sjsu.edu
 
Click for:
Open student internships
at the NASA Ames Research Center

Check regularly. Positions open sporadically.
Mission Control, Jet Propulsion Laboratory (JPL)
NASA Mars Exploration Rover Mission

Click on the classes I'm teaching this semester:

⇨  

CS 153

Concepts of Compiler Design (Java)

⇨  

DATA 201

Database Technologies for Data Analytics (SQL + Python)


Look below to access classes I've recently taught and to see books I've recently examined.


Who am I?

Despite having done work that involved the relative motions of planets and calculations involving Einstein's Theory of Relativity, I'm still amazed that the sun comes up each morning and that bicycles don't tip over. I find designing and developing software such as compilers and enterprise systems to be fun and challenging. I buy books on advanced math and then actually read them. So I'm the kind of geek nobody wants to talk to at parties. My one redeeming feature is that I am owned by cute cats.

Student internships at NASA Ames. I am the Principal Investigator (P.I.) for a subcontracting agreement between KBR/NASA and the San Jose State University Research Foundation to hire student interns for NASA Ames. I post open internship and fulltime positions.

Academics. I have taught software classes at Stanford University and at Santa Clara University, and I had a research faculty appointment at the University of California at Santa Cruz. I started to teach part time at San José State University in 2008, then full time 2013 2021, and now part time again as an emeritus senior lecturer. I teach a variety of graduate and undergraduate courses in several departments. I have degrees in the Mathematical Sciences and in Computer Science from Stanford, where two of my physics professors each had a Nobel Prize. I am a Stanford Computing Pioneer.

History of Computing speaker series. I organized a weekly history of computing speaker series at SJSU where I invited and hosted pioneers in computer science and in the computer industry, including several Turing Award winners.

Books. My latest book is Object-Oriented Software Design in C++.
Earlier books include:

I coauthored the chapter "Compilers and Interpreters" in Computing Handbook, 3rd ed. and the invited paper, "Middleware and Web Services for the Collaborative Information Portal of NASA's Mars Exploration Mission" in Middleware 2004. I wrote the chapter "A Highly Reliable Enterprise System for NASA's Mars Rover Mission" in Beautiful Code: Leading Programmers Explain How They Think which won a Jolt Award in 2007.

Mars rovers. Working as a Senior Scientist in the Research Institute for Advanced Computer Science (RIACS) at the NASA Ames Research Center and the Jet Propulsion Laboratory (JPL), I designed and led the development of the middleware for a key information management system for NASA's Mars Exploration Rover (MER) mission (IEEE articles "The Collaborative Information Portal and NASA’s Mars Rover Mission" and A Reliable Service–Oriented Architecture for NASA’s Mars Exploration Rover Mission" I received several key NASA awards, including Space Act Board and Turning Goals into Reality. A documentary about the Opportunity rover: "Good Night Oppy".

Orion spacecraft. As a Senior Computer Scientist at the NASA Ames Research Center, I wrote software for the new Orion spacecraft that recently successfully launched, orbited the moon, and returned safely to Earth. It will soon take astronauts back to the moon and later to Mars.

CubeSats. I designed and managed the building of the Spacecraft System Integration Laboratory (SSIL) at the NASA Ames Research Center for the simulation of CubeSats orbiting in cluster formations and performing scatter-gather maneuvers. We installed Emulab locally in order to dynamically provision users with advanced graphics servers and up to 400 virtual machines in arbitrary user-specified network configurations.

Fusion energy research. The National Ignition Facility (NIF) at the Lawrence Livermore National Laboratory recently made a major scientific breakthrough -- more energy output from the system than energy put into it! I was the Enterprise Software Strategist for the project, where I helped design and develop a workflow system to consolidate and manage the scientific data generated by the laser firings.

Silicon Valley. I was a consulting Data Scientist at Mediar, a data analytics startup. As a Research Staff Member at the IBM Almaden Research Center in San Jose, I helped implement the Splash software platform that integrated multiple heterogeneous simulation, statistical, and data models in order to research the nation's obesity problem. I've been a software developer, project lead, and engineering manager at high-tech companies such as Hewlett-Packard (the HP 300 system; HP 1000 Pascal compiler; HP 9000 FORTRAN compiler), Sun Microsystems (Sun Common Lisp; the NeWS Toolkit), and Apple Computer Company (the Newton PDA).

U.S. patents. I am an inventor on seven U.S. patents.
The first two are for innovative web techniques at an early Internet startup:
6446098    6569208
The most recent five are for advanced data analytics at IBM Research:
9524326    9607067    9805145    9805143    10296519

Erdős number. My Erdős number is 5.

"Internet Era" interview. I was interviewed for the CCTV documentary "Internet Era" .


Classes I've recently taught at SJSU

DATA 200: Computational Programming for Data Analytics (Python)
DATA 220: Mathematical Models for Data Analytics (Python)
CS 46B: Introduction to Data Structures (Java)
CS 144: Advanced C++ Programming
CS 146: Data Structures and Algorithms (Java)
CS 149: Operating Systems (C)
CS 151: Object-Oriented Design (Java)
CS 152: Programming Language Paradigms
CS 154: Formal Languages and Computability
CS 160: Software Engineering (Java)
CS 174: Server-Side Web Programming (HTML + JavaScript + PHP)
CS 185C/CS 286: The History of Computing
CS 235: User Interface Design (JavaScript)
Please visit: CS 235 Data Visualization Projects
The History of Computing Speaker Series
Please visit: Recorded talks online
MISA Workshop: Relational Databases and SQL Programming (SQL)
Please visit: Introduction to SQL Queries
CMPE 131: Software Engineering I (Ruby on Rails)
CMPE 135: Object-Oriented Analysis and Design (C++)
CMPE 142: Operating Systems (C)
CMPE 152: Compiler Design (C++)
CMPE 180A: Data Structures and Algorithms in C++
CMPE 202: Software Systems Engineering (C++)
CMPE 226: Database Systems (SQL + HTML + PHP)
CMPE 280: Web UI Design and Development (HTML + JavaScript)

DATAApplied Data Science
CSComputer Science
MISAManagement Information Systems Association
CMPEComputer Engineering

Books I've recently examined

Modern C, 3rd edition by Jens Gustedt (ISBN 978-1617295812)
I teach classes that use Java, C++, and Python. But for my operating systems class, I use the venerable C language. This book covers the latest C23 standard with a modern perspective on how to use the language whenever compact, high performing code is needed. It's for programmers who must get closer to the hardware and understand more clearly what their programs are doing at run time.
Simple Object-Oriented Design: Create clean, maintainable applications by Mauricio Aniche (ISBN 978-1633437999)
You can't be a successful novelist if you only know English grammar and vocabulary. Similarly, you can't be an ace programmer if you only know syntax and semantics. This book takes your programming skills to the next level by teaching you how to manage complexity, write consistent objects, use good abstractions, handle dependencies, modularize -- and just be pragmatic in writing your code. The lessons in this well-written book apply to any modern object-oriented programming language.