Skip to content

mnajjartabar/Spring-2020

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spring-2020

Repository for introductory course in scientific computing for environmental scientists at Kansas State University.

Syllabus

Classroom 1021 Throckmorton Plant Science Center, Kansas State Uniersity.
Semester Spring 2020.
Days Mondays from 2:30 to 4:20 PM and Wednesdays from 2:30 to 3:20 PM.
Instructor: Andres Patrignani - Assistant Professor – TH1011A – andrespatrignani@ksu.edu
Office hours: Open door. Send me an email if you prefer to schedule a meeting.

Course description

A hands-on introductory course on the fundamentals of modern high level programming languages for solving problems and generating reproducible research in plant and soil sciences.

Resource materials

  1. GitHub repository: https://github.com/andres-patrignani/spring-2020
  2. Python official documentation: https://docs.python.org/3/
  3. Class notes and ipython notebooks.
  4. Anaconda package: https://www.anaconda.com/download
  5. Git version control system: https://git-scm.com/

Objectives

Students who successfully complete this course should be able to:

  • construct effective, well documented, and error free scripts and functions.
  • use programming to their graduate thesis project.
  • find information independently for self-teaching and problem solving.

Topics

  • Installing Anaconda and review of included libraries and tools.
  • What is reproducible research? and why does it matter?
  • Writing first IPython notebook (Python, Markdown, and LaTeX)
  • Learning how to use Github
  • Import tabular data and deal with missing values using Pandas library
  • Create publication quality figures using Matplotlib and Bokeh
  • Descriptive statistics
  • Data structures
  • Array slicing and indexing
  • Element-wise operations using Numpy library
  • Control flow (if statements)
  • Iterations (for and while loops)
  • Create, use, and document functions
  • Handle strings
  • Objects and classes
  • Debugging
  • Curve fitting and optimization of function parameters
  • Image analysis
  • Mapping
  • Find analytical solutions using symbolic mathemetics module

Your responsibilities

Preparation: Read class notes, review class problems, and practice coding at home.

Classroom: I expect you to be punctual and to bring a laptop to follow coding exercises during class.

Lecture attendance: Attendance is not mandatory, but it's expected. Missing two or more classes will likely lead to poor performance in the course since many classes are linked to each other.

Teaching methods

I will include short lectures, live coding sessions, and puzzles. My objective is to present programming in a friendly way using a variety of methods so you can understand the logic to develop your own code.

Grades and policies

Assignments (100 points): There will be a total of about 10 assignments (I might slightly change this number based on the pace and performance of the class). Each assignment will consist of coding challenges that will reinforce concepts discussed in class. Assignments will typically consist of finding mistakes in functions and scripts or solving a particular problem. The assignment with the lowest score will be dropped. There will be no make-up assignments. THe total for all the assignments will be scaled on a 0 to 100 scale.

Most projects will be assigned on Wednesdays and will de due next Monday. Assignments need to be submitted through Canvas. Please, add to the filename your first and last name separated by an underscore: "assignment_1_john_smith.ipynb"

Assignments must consist of a single Jupyter Lab notebook containing Markdown and Python 3 code.

Assignments that contain code copied from online sources will automatically receive a score of zero points.

Semester project (200 points): Each student will need to draft and implement a project using the Python language. Projects are individual. A one-page project description needs to be turned in during the first two weeks of class. Projects need to be discussed with, and be approved by, the instructor. For detailed information about semester projects visit the semester project folder in the Github repository. Grading of the semester project will be based on a specific rubric that includes creativity, project documentation, quality of figures/tables, and code syntax.

Final exam: A take-home exam that will consist of finding the solution to a specific problem set by the instructor.

Grade assignment will be on the basis of total points and will follow the usual integer scale of A (90-100%), B (80-89%), C (70-79%), D (60-69%), and F (< 60%).

Important dates

  • Deadline draft project description: Wednesday, January 29, 2020 at 2:30 PM
  • Deadline revised project description: Wednesday, February 5, 2020 at 2:30 PM.
  • Deadline project files: Wednesday, May 6, 2020 at 5 PM
  • Final project presentation: Friday, May 15 2020 from 11:40 to 13:40 in room 1021

Tardy work

Assignments turned in after the deadline will not be considered for an "A" grade.

Academic Integrity

The instructor recognizes the fact that you have learned the benefits and rewards of independent work, especially during examinations. In the unfortunate circumstances that the academic honesty policies of Kansas State University are broken and appropriate action is needed, it will be handled by stated procedures of the university without delay. Academic dishonesty will not be tolerated.

Statement Regarding Academic Honesty

Kansas State University has an Honor System based on personal integrity, which is presumed to be sufficient assurance that, in academic matters, one’s work is performed honestly and without unauthorized assistance. Undergraduate and graduate students, by registration, acknowledge the jurisdiction of the Honor System. The policies and procedures of the Honor System apply to all full and part-time students enrolled in undergraduate and graduate courses on-campus, off-campus, and via distance learning. The honor system website can be reached via the following URL: www.ksu.edu/honor. A component vital to the Honor System is the inclusion of the Honor Pledge which applies to all assignments, examinations, or other course work undertaken by students. The Honor Pledge is implied, whether or not it is stated: “On my honor, as a student, I have neither given nor received unauthorized aid on this academic work.” A grade of XF can result from a breach of academic honesty. The F indicates failure in the course; the X indicates the reason is an Honor Pledge violation.

Statement Regarding Students with Disabilities

Students with disabilities who need classroom accommodations, access to technology, or information about emergency building/campus evacuation processes should contact the Student Access Center (532-6441, accesscenter@k-state.edu) and/or their instructor. Services are available to students with a wide range of disabilities including, but not limited to, physical disabilities, medical conditions, learning disabilities, attention deficit disorder, depression, and anxiety. Statement Defining Expectations for Classroom Conduct: All student activities in the University, including this course, are governed by the Student Judicial Conduct Code as outlined in the Student Governing Association By Laws, Article V, Section 3, number 2. Students who engage in behavior that disrupts the learning environment may be asked to leave the class.

About

Repository for introductory course in scientific computing for environmental scientists at Kansas State University.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors