Skip to main content

Programming for Future Scientists and Engineers   

Department: Computer Science and Engineering                            
Instructor: Todd Christopher and Sergio Godinez
Instructor's Email: t1christ@eng.ucsd.edu; segodine@eng.ucsd.edu 


Prerequisites: None

 Schedule: Zoom Mon-Fri 9am-11am PST

Course Description

Scientists and engineers often study large, complex systems with many variables and interactions. Air flow over planes, stresses in skyscrapers, and the spread of infectious diseases are all examples of systems where computers play a pivotal role in predicting what will happen. Programming is therefore an essential skill for scientists and engineers. In this course, you will learn to harness the power of a computer to help solve problems, predict the future, and analyze data.

We will use the programming languages MATLAB and Octave, which are essentially identical in their basic syntax. MATLAB is heavily used in industry and is commonly taught at universities as part of undergraduate engineering curriculums.

Course Goals / Learning Objectives

The main objective of this course is for students to become comfortable with the basics of programming so that they can build on this foundation as they encounter complex problems in their future studies and careers. Specifically,  students will be able to use MATLAB/Octave to:

  • Quickly plot data and functions of interest
  • Solve equations numerically
  • Write simple and concise programs to simulate situations in the real world
  • Perform basic analysis of different types of data sets

Course Outline

  • Basics of programming in MATLAB/Octave
    • Overview of types of programming languages
    • MATLAB/Octave vs. other languages
    • Basic syntax
    • Vectors and arrays
    • If statements, for/while loops
    • Functions
    • Solving equations
    • Plotting
  • Modeling the world
    • Predicting the future with evolution equations
    • Infectious disease spread model
    • Predator/prey ecosystem model
    • Random numbers and Monte Carlo simulations
  • Data analysis
    • Basic statistical measures
    • Correlation and causation
    • Time series and frequency analysis
    • Data visualization

 

*Courses vary by experience and exposure to content. Instructors have the ability to change content and pace to serve the needs of students. Courses have been modified for online teaching.