Course Objectives:

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)

Students can demonstrate the ability to use new programming knowledge as needed for solving problems (relate to program objectives 1 and 3)

Students can demonstrate the ability to work in a team to produce a final product (relate to program objective 3)

Course Outcomes:

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)

Students can demonstrate the ability to locate and develop programming methods for application to atmospheric problems (relate to program outcome d)

Students can demonstrate the ability to work in teams and to meet deadlines (relate to program outcome d)

Students can demonstrate the ability to document their methodology within a computer code (relate to program outcomes d and e)

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.

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.

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.

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 http://www.ems.psu.edu/current_undergrad_students/academics/integrity_policy .

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 address 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.

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 Office for Disability Services (ODS) website provides contact information for every Penn State campus: (http://equity.psu.edu/ods/dcl). For further information, please visit the Office for Disability Services website (http://equity.psu.edu/ods).

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 based on the documentation guidelines (http://equity.psu.edu/ods/guidelines). 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.

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 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, it is possible to have the grade deferred with the concurrence of the instructor. To seek a deferred grade, you must submit a written request (by e-mail or U.S. post) to your instructor describing the reason(s) for the request. It is up to your instructor to determine whether or not you will be permitted to receive a deferred grade. 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

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.

Netiquette

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 Virginia Shea's "The Core Rules of Netiquette" (http://www.albion.com/netiquette/corerules.html) for general guidelines that should be followed when communicating in this course.