Lecture Slides: Applied Software Engineering with Applications to Space Science
Author: Dr. Christine Corbett Moran, NSF Astronomy & Astrophysics Postdoctoral Fellow, Caltech
Lecture Videos: https://www.youtube.com/playlist?list=PL8_xPU5epJdebSdz1TrJ89vGv__St_EOE
Textbook: +Software Engineering and Science: An Interactive Textbook with Applications to Astronomy
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
- Each week is accompanied by a
- 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 )
- 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.