Lecture Slides: Applied Software Engineering with Applications to Space Science
Author: Dr. Christine Corbett Moran, NSF Astronomy & Astrophysics Postdoctoral Fellow, Caltech
Acknowledgements:  Dr. Christine Corbett Moran’s work on this book was supported by the NSF Astronomy and Astrophysics Postdoctoral Fellowship under award AST-1501208. 

Week 1: Software Engineering and Earth 🌎🛰🌍 

About This Course

  • We’re going to learn software engineering while learning space science all at once. 
  • hope it will be more rewarding than learning either on their own, in an isolated world
  • Most of the learning is by doing not by reading or listening
  • Everything in the lecture is also written in the course textbook

NotebookProblems and Chapter Exercises

  • The lecture follows the textbook exactly
  • the lecture and textbook contains some chapter exercises which can generally be solved in a few minutes
  • Anytime you see a NotebookProblem referenced in the textbook or lecture, you have the knowledge to attempt it.
  • These problems will generally take longer than the exercises
  • We will attempt these problems in our lab sessions

What is Software Engineering?

  • Software engineers build and design ways of using computers to help them solve real world problems. 
  • work in teams and interact with other software engineers, with users, and with entrepreneurs 
  • work in medicine, biology, ecology, music, art, consumer products, finance, and more. 
  • To learn software engineering, we need to become familiar with computer programming, with collaborating with teams, with reading other people's code, as well as brainstorming solutions. 

Languages and tools

  • software engineering skills aren't dependent upon a specific computer language nor are they dependent on using a particular set of tools
  • in this course we will learn the fundamentals of one particular set to work on our collaborative projects and learning process. 
  • most of the time we’ll be working with Python and we’ll just give a small taste of other tools 

Picking up a large number of tools

  • software engineers get to learn on the job
  • each  new tool learned, whether it is a computer language, and operating system, or a development environment, is largely familiar given their basic skills. 
  • for this course we're picking a few tools to get familiar with all the basics of software engineering. 
  • Don’t get overwhelmed. If you have learned how to speak a natural language you can learn these tools with time and practice.

Summer App Space Specific Schedule

  • Mondays and Fridays:
  • 8am-9am Lecture
  • 9am-12pm Lab (solving Exercises and NotebookProblems or projects)
  • 12pm-1pm Lunch together in Caltech Cafeteria
  • 1pm-2pm Lecture
  • 2pm-5pm Lab (solving Exercises and NotebookProblems )
  • Thursdays:
  • 8am-9:30am Innovation Speakers Series
  • 9:30am-12pm Lab review, breakout sessions, and science lectures.
  • Last 2 weeks of program: Labs will be replaced by project work.

What is Space?

  • Astronomy and astrophysics studies celestial objects and phenomena and incorporate knowledge of physics, chemistry, mathematics and in recent years computer science and programming to try to understand them
  • Space sciences includes studying galaxies, our own Earth, the origins of the universe, planets, stars, asteroids, man-made satellites, human space exploration, and more 

What is a project based approach?

  • we’ll work on a small project to illustrate the concepts in lecture/the textbook with real world code.