Application of Computers to Meteorology

METEO 473: Application of Computers to Meteorology (Spring 2019) 

Course instructor: Chris E. Forest (

Teaching Assistant: Shawn Murdzak (

Office hours:   
Sunday 4-6 PM (Room 607 Walker; Room 126 if Room 607 is occupied)
Tuesday 8-10 PM (Room 607 Walker; Room 126 if Room 607 is occupied) 

Class meeting times: Monday and Friday, 03:35 PM – 05:30 PM

Class meeting location: 607 Walker 

Support Services Available: None

Course Designation in Curriculum: Choice of 1 of 2 Courses Required for the Major 

Brief Course Description from University Bulletin:


Application of statistical and numerical methods to practical problems in meteorology.”

Prerequisites and Concurrent Courses:

CMPSC 101, CMPSC 201, CMPSC 202 or METEO 297a is the pre-requisite for this course. 

Students who do not meet these prerequisites after being informed in writing by the instructor may be disenrolled during the first 10-day free add-drop period: http:/ If you have not completed the listed prerequisites, then promptly consult with the instructor if you have not done so already.  Students who re-enroll after being dis-enrolled according to this policy are in violation of Item 15 on the Student Code of Conduct: 

Required Textbooks: None 

Internet Materials and Links: See word document with this material. 

Course Objectives/Outcomes:

Meteorology Courses Objectives and Outcomes printable document contains a link to the Course objectives and outcomes listed below.

Course Objectives:

  1. Students can demonstrate skills in using computers to develop and apply numerical algorithms for the solution of atmospheric problems (relate to program objectives 1 and 3)
  2. Students can demonstrate the ability to use new programming knowledge as needed for solving problems (relate to program objectives 1 and 3)
  3. Students can demonstrate the ability to work in a team to produce a final product (relate to program objective 3) 

Course Outcomes:

  1. Students can demonstrate a working knowledge of relevant computer languages and how they may be applied to the analysis and display of atmospheric data (relate to program outcomes a and d)
  2. Students can demonstrate the ability to locate and develop programming methods for application to atmospheric problems (relate to program outcome d)
  3. Students can demonstrate the ability to work in teams and to meet deadlines (relate to program outcome d)
  4. Students can demonstrate the ability to document their methodology within a computer code (relate to program outcomes d and e)
  5. Students can demonstrate the ability to use the Worldwide Web for dissemination of results (relate to program outcome e) 

Course Approach and Expectations:

Building a career in Meteorology requires finding a customer for your meteorological knowledge. To succeed, you must be able to BOTH produce information the customer needs AND deliver that information to the customer when and where they need it. In the pre-Internet era, the information delivery bottleneck of television/radio/newspapers limited the market for weather forecasts to those customers who needed only a small amount of general information. As statistical weather forecasts improved to the point where they could fill those limited needs, the market for weather forecasters shrank. The advent of the Internet, with its ability to deliver large amounts of tailored information to individual customers, has reopened the market for weather forecasts and related services. The result has been a boom in forecasting jobs and a parallel boom in openings for Meteorologists with skills in the automated creation and distribution of weather products. This course exists to acquaint you with this second career track and prepare you to face its challenges.

The same communications revolution that is revitalizing weather forecasting is enhancing the productivity of Meteorological researchers. The savvy researcher of today uses Internet-based communications, search, and data distribution skills to speed the analysis of large data sets. In Meteorological research, as in weather forecasting, speed is life.

The skills needed to harness this computer-based communications revolution change with startling speed. The cutting-edge tools of today are apt to be all but obsolete 18 months from now. This course is, therefore, designed to teach you how to learn and maintain computer expertise via a rapidly changing skill set. Thus, rather than focus on a fixed set of tools, we will be striving to master the most efficient ways of learning new tools on the fly. It's going to be a wild ride, one that will last for the rest of your life.

Many of the skills needed to ride the "wave of change" involve dealing with teams of coworkers and searching for the tools needed to do your work efficiently. The best way to learn them is by teaming up and tackling a real project. This approach matches the day-to-day routine in a weather products corporation, so the course is organized along those lines. Our class corporation will be a student owned, faculty managed organization and VERY unofficial. You are the ones who will do the development work on our product and field it on the web for the whole world to use. The faculty (a professor and teaching assistants) are here to teach you the teamwork, tool learning, and data manipulation skills required to prosper in this environment. There is no guarantee that there will be an expert available on every tool you need. There will, however, always be someone who can guide you in discovering how to use the tools.

For this section of Meteo 473 students will first work individually, then in pairs, then in teams of four and finally individually once again on the last milestone. Students can choose their partners when working in pairs but pairs will be assigned to teams of four based either on the time at which they complete their paired assignments or by random drawing. All teams, whether as individuals, pairs or teams of four, will work towards development of their own product. All teams will work from the same set of atmospheric observations, but will arrive at their own methodologies to solve the problems at hand. Collaboration both within teams and between teams is encouraged and may be essential for some teams to complete a viable product. That said, every individual, pair and team of four must write every character, word, line, block, function, etc.., of the codes they turn in for credit.

Each individual, pair and team of 4 will have access to LINUX/Windows workstations in the classroom. Based on previous experiences, a four-person team naturally splits into two two-person sub-teams. One way of using this split to one's advantage is to have one sub-team search for the best way to do a task while the other sub-team implements it. Or one sub-team can focus on one sub-task while the other sub-team works on a different sub-task. Because the Internet allows access to computers from anywhere within town, teams can work together anywhere and anytime, not just when lab is in session. More LINUX/Windows workstations are available in the sixth floor weather station terminal room (Room 608), which is adjacent to the classroom in Room 607 with its own LINUX/Windows workstations, for times when a group wishes to have access to other LINUX/Windows systems outside of class.

The lecture component of the course -- BootCamp -- exists to support team projects. Most of it will take the form of hands-on demonstration sessions with both the students and instructor using the same software to practice new skills. Tools relevant to your projects will be covered in BootCamp as a means of illustrating how to learn new tools. As you acquire new tools be sure to bookmark those sites that provide relevant information on them in a style with which you are most comfortable. 

Assessment Tools: 

Grading and Examination Policy

There will be no grade curving and the grading scale is as follows: A: 92.5-100.0; A-:90.0-92.5; B+: 87.5-90.0; B: 82.5-87.5; B-:80.0-82.5; C+: 77.5-80.0: C: 70.0-77.5; D: 60.0-70.0; F: < 60.0.

There will be several in class computer programming quizzes, though the bulk of one's time in this class will be spent on the semester programming projects. There will not be any pencil and paper tests, mid-terms or final in this class. One's final course grade will be the sum of one's quiz grades and grades on the semester programming projects.

The first four weeks of class are composed of BootCamp, a period during which students will learn some basics of Python. Toward the end of BootCamp, three in-class programming quizzes will be given that are composed of four programming tasks (call them Tasks 1, 2, 3 and 4). To successfully deal with a task a student must perform the correct sequence of LINUX commands and/or write and compile a Python program that outputs to the terminal exactly what is requested in the task. Each task is graded all or nothing: every bit of the output to the terminal is either correct or not. During each programming quiz class period, a student can try time and again to get a task's output correct. Once a student passes a task, the student will not have to deal with this task again during subsequent programming quiz periods. By the end of the third programming quiz, students will have passed anywhere from zero to four tasks. By the end of the third programming quiz, each student must pass all four tasks to earn complete BootCamp credit. The value of each completed task within BootCamp is 5% and the overall value of BootCamp to a student's final course grade is 20%.

At any point during BootCamp two students can form a pair of their own choosing. By the end of BootCamp each and every student should belong to one pair. If there are an odd number of students in class, we will solve this problem by having either one student form a "pair" or one "pair" contain three students. Student pairs will be responsible for MileStone 1. MileStone 1 is worth 30% each of the final course grade.

Teams of four will be formed from pairs in one of three ways. If pairs finish MileStone 1 ahead of the day of the MileStone 1 deadline, they will be grouped (as they finish) into teams of four to start work upon MileStone 2. All pairs that finish MileStone 1 on the day of the deadline will be grouped into teams of four by a random drawing. All other pairs will be grouped into teams of four as they finish at some point beyond the deadline. As necessary (i.e., the total number of students in a section is not an even multiple of four), "a team of four" may actually be a pair or a team of five. MileStone 2 is worth 30% of the course grade.

MileStone 3 must be done individually. It is composed of a project very similar to those contained in the previous MileStones. A student can use the codes from their own previous MileStones to help complete this MileStone. A student can also use whatever resources they can find on their own. That said, a student cannot talk with anyone else regarding MileStone 3. Communication of any sort in regards to MileStone 3 with any person other than the Instructor or TA is expressly forbidden for MileStone 3. MileStone 3 is worth 20% of the course grade. 

Grades for each project are obtained as follows: 

  • 100% = Program compiles, runs and accomplishes all tasks. Documentation is clear on all topics.
  • -10% = Documentation is not clear in some places. This is partly subjective in nature, so always err on the side of putting in too much documentation, especially if it is well-written.
  • -20% = Documentation is not clear in lots of places. This is partly subjective in nature, so always err on the side of putting in too much documentation, especially if it is well-written.
  • -30% = Documentation is poor. This is partly subjective in nature, so always err on the side of putting in too much documentation, especially if it is well-written.
  • -10% = Program does not accomplish all tasks.
  • -20% = Program does not accomplish some tasks.
  • -50% = Program does not accomplish much of anything useful though there are many correct lines of code within it.
  • -100% = Program is empty.
  • -20% = Program contains syntax errors at runtime and does not, therefore, execute.
  • -20% = Program crashes and/or does not make it to the end.

Here are some examples of the grading scheme in play.

  • Scenario: Program has runtime syntax errors (-20%). After a reasonable amount (~<= 15 minutes) of fiddling it is made to run but does not run to the end (-20%). Yet, the documentation is perfect (-0%) and all parts of the program look pretty good though this is not conclusive because the program does not run to the end (-10% to -20%). Grade: 40%-50%
  • Scenario: Program runs (-0%), but crashes (-20%). The documentation is perfect (-0%). Note that the program may indeed perform many tasks correctly, but this is inconclusive because the program crashes (-10% to -20%). Grade: 60%-70%
  • Scenario: Program compiles (-0%) and runs to the end (-0%), but the program does not accomplish much of anything useful though there are many correct lines of code within it (-50%). The documentation is not clear in some places (-10%). Grade: 40% 

As you can see above, at a minimum your programs must always compile, they must always run without crashing and they must do something useful in order to receive the majority of credit possible. DO NO FORGET THIS! 

Lateness Penalties: Late work will be penalized at a rate of 15% of the project credits per seven day period beyond the due date, with the first seven day deduction period starting immediately after the due date at midnight. 

Course policies

This course abides by the Penn State Class Attendance Policy 42-27:, Attendance Policy E-11:, and Conflict Exam Policy 44-35:  Please also see Illness Verification Policy:, and Religious Observance Policy:  Students who miss class for legitimate reasons will be given a reasonable opportunity to make up missed work, including exams and quizzes.  Students are not required to secure the signature of medical personnel in the case of illness or injury and should use their best judgment on whether they are well enough to attend class or not; the University Health Center will not provide medical verification for minor illnesses or injuries. Other legitimate reasons for missing class include religious observance, family emergencies, and regularly scheduled university-approved curricular or extracurricular activities.  Students who encounter serious family, health, or personal situations that result in extended absences should contact the Office of Student and Family Services for help:  Whenever possible, students participating in University-approved activities should submit to the instructor a Class Absence Form available from the Registrar's Office:, at least one week prior to the activity. 

Academic Integrity

This is an important issue. It is not only ethically wrong, but also dangerous, to take the work of other people and attempt to pass it off as your own. Plagiarism and cheating in this class are offenses that can, and will, result in either the failing of a project milestone or the entire class, depending on the offense. This can become an especially touchy subject when it comes to using code that you have taken from the web or other sources. First and foremost, to guarantee that you stay out of inadvertent trouble, always reference the source of any contributions to your project, coding or writing efforts. Moreover, if you borrow code from the Web that is not overtly in the public domain, attempt time and again to obtain permission to use the code from the person who owns the code. Notwithstanding any permissions that you may or may not have received, reference, reference, reference, acknowledge, acknowledge, acknowledge, other's contributions to your work at visible places in your own Web pages and codes. You can check out Penn State's official position on intellectual integrity at the following site: PennState and .

In this class you are required to turn in your own team's work for each assignment. While it is expected that you, your pair and your group will freely exchange advice and assistance with other individuals, pairs and teams of four, the work you turn in must ALWAYS be your own. Programs copied from others, including persons not taking this course, will be given a grade of zero and the individual(s) involved will participate in the completion of an EMS Academic Integrity Form and the Instructor will submit the form to the College of EMS. If, however, you find a public domain utility on the web that you feel would be to your advantage to use, you may ask for permission from the Instructor to incorporate it (with appropriate credit) into your project. The Instructor will decide whether to grant such advance permission on a case-by-case basis, based on whether or not the code in question is a general purpose utility freely available to the global public.

As you borrow ideas and code, always let the Instructor know that you have done so via comments in your milestone codes. While the Instructor might make you do something over if it is not sufficiently your own, as long as you clearly document where you have borrowed from others you simply cannot get into academic trouble, at least not in this class. 

Course Copyright

All course materials students receive or to which students have online access are protected by copyright laws. Students may use course materials and make copies for their own use as needed, but unauthorized distribution and/or uploading of materials without the instructor’s express permission is strictly prohibited. University Policy AD 40, the University Policy Recording of Classroom Activities and Note Taking Services addresses this issue. Students who engage in the unauthorized distribution of copyrighted materials may be held in violation of the University’s Code of Conduct, and/or liable under Federal and State laws.

For example, uploading completed labs, homework, or other assignments to any study site constitutes a violation of this policy. 

Accommodations for students with disabilities

Penn State welcomes students with disabilities into the University's educational programs. Every Penn State campus has an office for students with disabilities. The Student Disability Resources (SDR) website provides contact information for every Penn State campus: ( For further information, please visit the Student Disability Resources website ( 

In order to receive consideration for reasonable accommodations, you must contact the appropriate disability services office at the campus where you are officially enrolled, participate in an intake interview, and provide documentation: If the documentation supports your request for reasonable accommodations, your campus’s disability services office will provide you with an accommodation letter. Please share this letter with your instructors and discuss the accommodations with them as early in your courses as possible. You must follow this process for every semester that you request accommodations. 

Statements on Campus Emergencies

Campus emergencies, including weather delays, are announced on Penn State News: http:/ and communicated to cellphones, email, the Penn State Facebook page, and Twitter via PSUAlert (Sign up at:  


This course abides by the Penn State Attendance Policy E-11:, and Conflict Exam Policy 44-35: Please also see Illness Verification Policy:, and Religious Observance Policy: Students who miss class for legitimate reasons will be given a reasonable opportunity to make up missed work, including exams and quizzes.  Students are not required to secure the signature of medical personnel in the case of illness or injury and should use their best judgment on whether they are well enough to attend class or not; the University Health Center will not provide medical verification for minor illnesses or injuries. Other legitimate reasons for missing class include religious observance, military service, family emergencies, regularly scheduled university-approved curricular or extracurricular activities, and post-graduate, career-related interviews when there is no opportunity for students to re-schedule these opportunities (such as employment and graduate school final interviews).  Students who encounter serious family, health, or personal situations that result in extended absences should contact the Office of the Assistant Vice President for Student Affairs (AVPSA) and Student Care and Advocacy for help:  Whenever possible, students participating in University-approved activities should submit to the instructor a Class Absence Form:, at least one week prior to the activity. 

Course Sick Days Policy

The bottom line is very simple: Please never come to a class when running a fever! Contact the Instructor via email letting the Instructor know that you will miss class because of illness. When you are feeling better and return to class, meet with the Instructor in order to develop a plan of action for making up all missed assignments. 

Reporting Bias-Motivated Incidents

Penn State takes great pride to foster a diverse and inclusive environment for students, faculty, and staff.  Acts of intolerance, discrimination, or harassment due to age, ancestry, color, disability, gender, gender identity, national origin, race, religious belief, sexual orientation, or veteran status are not tolerated ( and can be reported through Educational Equity via the Report Bias webpage. 

Counseling and Psychological Services

Many students at Penn State face personal challenges or have psychological needs that may interfere with their academic progress, social development, or emotional wellbeing.  The university offers a variety of confidential services to help you through difficult times, including individual and group counseling, crisis intervention, consultations, online chats, and mental health screenings.  These services are provided by staff who welcome all students and embrace a philosophy respectful of clients’ cultural and religious backgrounds, and sensitive to differences in race, ability, gender identity and sexual orientation.  Services include the following: 

Counseling and Psychological Services at University Park  (CAPS): 814-863-0395 Counseling and Psychological Services at Commonwealth Campuses Penn State Crisis Line (24 hours/7 days/week): 877-229-6400 Crisis Text Line (24 hours/7 days/week): Text LIONS to 741741 

Penn State E-mail Accounts

All official communications from Penn State are sent to students' Penn State e-mail accounts. Be sure to check your Penn State account regularly, or forward your Penn State e-mail (see to your preferred e-mail account, so you don't miss any important information. 

Deferred Grades

If you are prevented from completing this course within the prescribed amount of time for reasons that are beyond your control, it is possible to have the grade deferred with the concurrence of the instructor, following Penn State Deferred Grade Policy 48-40 ( To seek a deferred grade, you must submit a written request (by e-mail or U.S. post) to the instructor describing the reason(s) for the request. Non-emergency permission for filing a deferred grade must be requested before the beginning of the final examination period. It is up to the instructor to determine whether or not you will be permitted to receive a deferred grade. If permission is granted, you will work with the instructor to establish a communication plan and a clear schedule for completion.  If, for any reason, the course work for the deferred grade is not complete by the assigned time, a grade of "F" will be automatically entered on your transcript. 

Military Personnel

Veterans and currently serving military personnel and/or spouses with unique circumstances (e.g., upcoming deployments, drill/duty requirements, disabilities, VA appointments, etc.) are welcome and encouraged to communicate these, in advance if possible, to the instructor in the case that special arrangements need to be made. 

Technical Requirements

For this course, we recommend the minimum technical requirements outlined on the Dutton Institute Technical Requirements page (, including the requirements listed for same-time, synchronous communications. If you need technical assistance at any point during the course, please contact the ITS Help Desk ( 


The term "Netiquette" refers to the etiquette guidelines for electronic communications, such as e-mail and bulletin board postings. Netiquette covers not only rules to maintain civility in discussions, but also special guidelines unique to the electronic nature of forum messages. Please review some general Netiquette guidelines that should be followed when communicating in this course. 

Disruptive Behavior

Behavior that disrupts normal classroom activities will not be tolerated, in accordance with Items 9 and 14 in the Student Code of Conduct


In the case of an emergency, we will follow the College of Earth and Mineral Sciences Critical Incident Plan (  In the event of an evacuation, we will follow posted evacuation routes and gather at the Designated Meeting Site.  Evacuation routes for all EMS buildings are available at  For more information regarding actions to take during particular emergencies, please see the Penn State Emergency Action Guides

Mandated Reporting Statement

Penn State’s policies require me, as a faculty member, to share information about incidents of sex-based discrimination and harassment (discrimination, harassment, sexual harassment, sexual misconduct, dating violence, domestic violence, stalking, and retaliation) with Penn State’s Title IX coordinator or deputy coordinators, regardless of whether the incidents are stated to me in person or shared by students as part of their coursework.  For more information regarding the University's policies and procedures for responding to reports of sexual or gender-based harassment or misconduct, please visit Penn State's Office of Sexual Misconduct Prevention & Response website. 

Additionally, I am required to make a report on any reasonable suspicion of child abuse in accordance with the Pennsylvania Child Protective Services Law

Diversity, Inclusion, and Respect

Penn State is “committed to creating an educational environment which is free from intolerance directed toward individuals or groups and strives to create and maintain an environment that fosters respect for others” as stated in Policy AD29 Statement on Intolerance. All members of this class are expected to contribute to a respectful, welcoming and inclusive environment and to interact with civility. For additional information, see:

Accessible Syllabus

Notes: Any syllabus posted online (e.g. a Word/PDF file or an online syllabus) should make destinations clickable links such as is done throughout this page. Also, in order to comply with Penn State Policy AD69(Accessibility of Penn State Web Pages,, PDF documents cannot be the sole source of presenting online information. Such documents include syllabi, homework assignments, and scanned notes.  

Disclaimer Statement

Please note that the specifics of this Course Syllabus can be changed at any time, and you will be responsible for abiding by any such changes. Changes to the syllabus shall also be given to the student in written (paper or electronic) form. 

Technical Requirements

One must have access to email in order to receive course information. Also, setting up a laptop at home in order to access the METEO LINUX network is probably not a bad idea as well. This way, you can work on METEO 473 projects from the comfort of your home.