Learning programming languages requires primarily programming. Programming is a subset of problem solving. Programming requires knowledge of the programming language, logic, math (often), and creative problem solving. Concepts are explained clearly if there is a need. Otherwise, practice is the focus. Active learning is best in any subject. The student and I should actively work together to achieve the student's understanding of the language and methods of programming.
I have tutored programming to elementary, middle school, high school, and college students over the past 2 years (C,C++,Java). I have taught, approximately, 1 elementary student, 2 middle school students, 1 high school student, and many college students. My students generally obtain significantly higher grades through my help.
MTA 98-367 Security Certificate 07/19/2016
• Independent contractor with tutor.com (tutoring math, German, Word) (06/17-present) or privately (JC-PD LLC) (06/16-present) tutoring in computer science and statistics.
• Worked for Wyzant.com from (11/14 – 07/17) (5.0 star tutor). (Tutoring CS: C, C++, Java, FORTRAN, bash shell scripting, Win32 shell scripting, Linux system administration, UNIX). Also tutoring these subjects: math through calculus, college physics, university physics, statistics, ACT, SAT, and probability.
• Established a business called JC-PD LLC. JC-PD LLC tutoring (as of 6/17) and app creation for retail sale (as of 8/17). Retail book seller on Amazon.com and half.com (6/16-present).
• Adjunct instructor in math or physics at Cameron U, Lawton, OK (1/15-6/16)
• Adjunct instructor of physics at WOSC, Altus, OK (1/16-6/16)
• Freelance programming for Guru.com. (8/16-present) (Rarely).
03/13-07/14 Models and Simulations Programmer
Fires Battle Lab, 2421 NW Austin Road, Suite 214, Fort Sill, Oklahoma 73503 through Alatec Inc., 650C Pratt Ave NW, Huntsville, AL 35801.
• Using C++ in a RHEL 5.8 64-bit OS, programmed in the modeling and simulations group. Added new behavior to a UAV model with three degrees of freedom.
• Wrote (Graphical User Interface) GUI code using GTK+2.0 with C++ in a Linux OS for a new FIRESIM XXI GUI. Utilized g++, SCRUM, DIS, and HLA.
• Performed unit and system testing. Debugged code using ddd. Merged code forward. Created reports.
05/08-02/13 Software Engineer, Jr.
CGI/CGIFEDERAL, 1224 SW Rex Madeira Rd, Lawton, OK 73501.
• Maintained the Computer Meteorological Data-Profiler (CMDP). Helped to correct code written in Java Swing. Tested a new capability of the CMDP using AFATDS.
• Tested the Meteorological Measuring Set Profiler (MMSP) to determine its range as a function of latitude. Discovered inconsistencies in the measurements. Determined that there was a problem in the model code and solved it. This problem had been present and unsolved for years.
• Placed again into full-time software sustainment of the MMSP profiler.
• Managed the SDF for a new profiler software release, and assisted in the development of that new release. Primarily independently, upgraded the MMSP modeling computer to RHEL 6.0. Set up a Solaris 10 build machine for the new profiler.
• Designed, developed, and tested, primarily independently, the code necessary to allow the MMSP profiler to handle two types of GRIB data, and presented a code walk through. Found seven errors in the profiler code written by the OEM. C++, csh, sh, and Perl were utilized for a Solaris OS computer among a system of three networked computers.
• Helped to set up a Solaris 8 build machine for an older version of the profiler. Assisted with putting the software transition of the profiler (18,000 files) from the OEM to the FSED under CM control.
• Developed algorithms, programs, and shell scripts to analyze radar detection data and debugging output data for the LCMR/Q48. Deduced logical, statistical data analysis issues with mathematical proof in C++ radar code written by the OEM. Assisted with the algorithm to detect rockets with the LCMR.
• Wrote an 87-page document describing how to playback recordings using the process automation programs and shell scripts I independently developed for a Linux OS. By affecting synchronization of the interface computer and radar cylinder computer, more insight was obtained into the various software modules of the entire system. With these methods, a bug manifested by timing discrepancies between the two computers was detected in the LCMR system.
• Successfully completed the Modern Radar Systems and Phased Arrays Radar short courses from Georgia Institute of Technology.
• Was invited to create and program an algorithm to predict the current likelihood of obtaining the correct FY-end planned effort based on the current actual effort for larger contracted projects. My solution was selected over those offered by the section managers. The CGI vice-president came to Lawton to see a presentation of my work, but I was not allowed to attend. The algorithm provides simple, visual evidence of the likelihood of future success obtaining the correct FY-end planned effort every pay period. The original, complex mathematical and statistical algorithm is the primary indicator of the status of each project. This algorithm and several simple, supplemental algorithms provided by several section managers were approved by the government and have been utilized since 2009. Programmed the entire solution for WINXP Pro in C using MSVS C++ express and wrote a 60-page user’s manual for this program. A senior engineer, my former team leader, attempted to program this solution in Java and could not.
• Took the personal software process (PSP) fundamentals and advanced courses of the SEI, Carnegie Mellon University, over a 2-week period in August 2009.
• Wrote a 156-page, single-spaced description of one run through the entire weather prediction algorithm for the laptop profiler. Wrote a document describing the corrections I made to the laptop software.
• Researched the new WRF weather model as compared to the MM5 model. Developed a plan to upgrade the laptop profiler software with a more modern weather model. CGI obtained funding for this task in 2012 for the CMDP.
• Independently, tested and debugged the prototype laptop profiler in conjunction with the currently fielded profiler by comparing numerical output within various identical modules of the systems. These comparisons revealed many issues in both systems. Corrected (Unix/Linux/FORTRAN 77) code for most software modules of the laptop profiler before the project ended.
• Began maintenance of the MMSP. Studied Java several months.
• Computers (OS): x86 (WINXP Pro, Vista Enterprise, and Windows 7 Pro Enterprise); (Dell Dual Core laptop, RHEL 2.6); (VMware, VT Miltope); (RHL Fedora 5, Solaris 7); (RHEL 5.5, Solaris 8); (RHEL 6.0, Solaris 10).
• Programming and scripting languages: C, C++, FORTRAN 77 and 90, in Linux and Solaris; WINXP/MSVS/C++ express C; Linux/Solaris/sh, csh; Linux/bash; Solaris/Perl.
07/05-04/08 Staff Scientist
Washington University School of Medicine, Heart Rate Variability Laboratory, Department of Internal Medicine, Cardiovascular Consultants, Campus Box 8086, 13th floor Northwest Tower, 660 S. Euclid Ave. St. Louis, MO 63110.
• I developed about 80% of the research methods/tools that are still being used in 2014: cf. hrv.wustl.edu; (concealed information)
• Independently, on 01/08/08, repaired the qrsdk.c program of GE-Marquette. The program had intermittently caused misalignment of the detected QRS-complex peaks and the actual ECG-QRS-complex peaks for more than a decade due to unexpected characters in the beginning of the binary QRS file output by the scanner.
• Independently designed and programmed a 48,000-line Heart Rate Variability (HRV) analysis program (UNIX/Cygwin/C)(gcc). HRV is a mathematical time series analysis of annotated cardiac inter-beat intervals. Completed the mathematics for all of the many new algorithms included in the program. Features are: 1) Easy variable selection. 2) Easy analysis period selection. 3) Automatic placement of results in a .csv spreadsheet. 4) HRV analyses methods for sleep and physiological studies. 5) 700 epoch-averaged or total-recording variables. 6) 140 adjustable parameters. 7) HRV analyses of ECG and EEG signals. 8) Automatic concatenation of results while running in batch mode. 9) Computation of time- and frequency-domain, and nonlinear variables. 10) Inclusion of several original methods of analyses, 11) Multithreading option.
• Programmed the Detrended Fluctuation Analysis (DFA) algorithm (UNIX/Cygwin/C). Discovered an error in the code of the original authors’ version posted on (concealed information) The web site acknowledges the discovery in the program’s documentation.
• Independently designed and programmed (UNIX/Cygwin/C) a method to line up R-wave peak times of QRS complexes in RR-interval beat files with the correct R-wave peak times in the ECG. Recorder and scanner errors caused misalignment. The method can align RR-interval beat files with ECG’s of various sampling rates.
• Upgraded the HrvInteractive (MSVS2005Pro/MFC/C++) GUI described below. The lab utilizes HrvInteractive extensively to find in-bed/out-of-bed times from graphically displayed HRV plots over a 24-hour period.
• Wrote shell scripts and programs to prepare and load the text ECG’s for scanning on a GE-Marquette MARS PC (WINXP) Holter (ambulatory ECG recorder) scanner and a Cardioscan Holter scanner.
• Completed the writing of MATLAB code necessary to automate the running of the QT-segment variability index (QTVI) program developed at Johns Hopkins Medical School.
• Collected data from heart transplant patients on my personal time until about 07/2007. Approximately 500 ECG’s were collected.
• Part-time UNIX system administration.
07/03-06/05 Research Associate
Washington University School of Medicine, Heart Rate Variability Laboratory. Job, title, and seniority (since 03/96) transferred to the HRV Lab from Barnes-Jewish Hospital (BJH).
• Independently designed and programmed (UNIX/C) methods to automate the extraction of data for HRV analyses of scanned Holter recordings for the SAGE drug study.
• Independently designed and programmed (UNIX/C) methods to compute HRV data for unusual studies: 1) HRV of mice. 2) HRV of anxiety and consequent work injuries of professional musicians. 3) HRV anxiety studies of subjects during various sleep stages.
• Migrated the HrvInteractive GUI to (MSVS2003Pro/MFC/C++) from MSVC++ 6 standard edition. Designed and programmed additional capabilities in the GUI, independently.
• Collected data from heart transplant patients on my personal time.
• Part-time UNIX system administration.
07/98-06/03 Research Associate
Barnes-Jewish Hospital, Department of Internal Medicine, Division of Cardiology, 1 Barnes Jewish Hospital Plaza, St Louis, MO 63110.
• Independently designed and programmed software (UNIX/Linux/C) to read various commercial binary formats of ECG’s and the EDF format of polysomnograms for conversion to text. Wrote shell scripts and programs to prepare and load the text ECG’s for scanning on a GE-Marquette MARS 8000 Holter scanner (Solaris 6).
• Designed and programmed, independently, (UNIX/Cygwin/C) the automation of the HRV analyses of the TAKEDA drug study. Automation began with the extraction of ECG’s with a Delmar Medical Systems’ Impresario Holter scanner. Automation ended with Holter scanning on the MARS 8000 and then HRV analyses.
• Independently designed and programmed an HRV interactive GUI (MSVC++ 6/MFC/C++), called HrvInteractive, using a 4-pane dynamic splitter window, the single document interface, and the document/view architecture. The GUI currently provides 270 different four-paned views, along with one- and two-paned views. Segments can be quickly viewed for up to 24 hours of data. There are 59 adjustable parameters. HrvInteractive also contains: 1) Time- and frequency-domain HRV. 2) Nonlinear HRV. 3) 720 different segment lengths. 4) An editable sleep apnea detector based on heart rate. 5) An HRV application to determine in-bed/out-of-bed times using 13 different views. Independently designed and programmed the algorithms for sleep apnea detection. Independently designed and programmed all of the graphical representations of HRV data.
• Independently designed and programmed, for short recordings from heart transplant recipients: 1) A fully automated 1000 Hz ECG scanner (UNIX/Linux/DOS/C). 2) Algorithms for QRS signal averaging. 3) Algorithms to detect cardiac allograft rejection directly from the ECG signal.
• Received additional funding by the BJH Foundation for and carried out research in cardiac rejection detection for cardiac transplant recipients using HRV and signal processing analyses. The funding lasted one year. Afterwards, collected data from heart transplant patients on my personal time.
• Independently designed and programmed (UNIX/DOS/C) an ECG scanner that detected R-wave peaks and allowed interactive editing of the R-wave peak locations and beat labels, while using only 64KB of RAM. Applied the scanner to ECG’s obtained from polysomnograms of patients with suspected sleep apnea. Analysis of the output of this scanner was used obtain a $3,000,000 grant by Robert M. Carney, a psychologist. Scanning for some of the unusual HRV projects mentioned above required this ECG scanner.
• Designed and programmed algorithms (UNIX/C) for the analysis of HRV data of various patient populations. Programmed algorithms from original research articles. Enhanced HRV code by including new signal processing, data processing, and numerical algorithms. Designed and programmed shell scripts and C programs to automate data processing. Invented an algorithm to detect exceptionally high HRV (assumed erratic sinus rhythm).
• Independently designed and programmed algorithms for the automatic detection of sleep apnea (DOS/C). Designed and programmed a sleep apnea scanner similar to the previously mentioned ECG scanner that used 64KB of RAM. Designed and programmed a plot of 24-hour heart rate tachograms (UNIX/Cygwin/C). The lab uses the tachogram extensively. Developed an easy method to detect sleep apnea with these tachograms. Cardioscan, owned by Bill Parsons, utilizes the tachogram and easy sleep apnea detection method.
• Part-time UNIX system administration beginning in the year 2000.
01/01-06/01 Remote, Part-time, Temporary Computer Programming Consultant
Itamar Medical Ltd., 9 Halamish Street, PO Box 3579, Caesarea, 38900 Israel.
• Independently designed and programmed the analysis of experimental data obtained from a pulse arterial tonometer (PAT) device placed on the tip of a subject’s finger. The software was written using (DOS/C).
01/97-06/98 Research Technician II
Barnes-Jewish Hospital, Department of Internal Medicine, Division of Cardiology.
• Independently derived the mathematics and programmed univariate Cox and logistic regression statistical algorithms (UNIX/C). Showed that high HRV predicts mortality in post-myocardial infarction patients.
• Independently programmed: 1) Algorithms from nonlinear dynamics. 2) Csh scripts for batch jobs. 3) Algorithms for the statistical analysis and/or manipulation of output data (UNIX/C). All algorithms were utilized for the analysis of clinical data. Programmed in the SAS statistical programming language to analyze data.
• Obtained a grant from the BJH Foundation to detect acute rejection in cardiac transplant patients using heart rate variability analyses.
01/97-04/98 Remote, Part-time, Temporary Computer Programming Consultant
Department of Psychology, University of Missouri in Columbia, 210 McAlester Hall, Columbia, MO 65211
• Independently designed and programmed an HRV analysis package (UNIX/Linux/DOS/C) that included: 1) Five autoregressive spectral analyses algorithms. 2) A smoothed-pseudo-Wigner-Ville time-frequency analysis algorithm. 3) Spectral decomposition for the autoregressive analysis. 4) Statistical algorithms for the validation of the autoregressive models. 5) HRV time-domain algorithms. 6) Algorithms from nonlinear dynamics. 7) Algorithms for statistical analysis and/or further processing of the output data. 8) Utilization of only 64 KB of RAM. Autoregression, FFT, and filtering algorithms were translated from FORTRAN 77. Tested code. Completed the mathematics for the statistical analyses, spectral decomposition, and time-frequency analyses. The National Institutes of Health later purchased the software. Very many publications have been produced with this code.
Author/co-author of 41 articles, 34 abstracts, and 5 presentations.
Good! Yes, he was very helpful, and considering this was our first session - getting to know each other - understanding what I knew (and didn't), it was very useful.
Our first class went well. Ian is very knowledgeable with programming languages. Once I pointed him in the right direction, he may be finished with any need for further help.
basic computer lessons close by? Here's a selection of teacher ads that you can check out.
Superprof can also suggest C lessons to help you.
Learning isn't a problem, computer programming lessons for all!
Taking C++ lessons has never been easier: you're going to learn new skills.
|at his home||at your home||By webcam|
|1 hour||Not available||Not available||$33|