Skip to content

artempyanykh/prac-5sem-2016

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Intro to modern programming tools and techniques. Fall ‘16 - Spring ‘17

Grading for Spring 2017 is available on this page.

Grading for Fall 2016 is available on this page.

Goals

The main objective of this course is to get familiar with modern software development tools and techniques including:

  • working with a version control system,
  • collaborative development through Github,
  • working with dynamically types programming languages (R, Python),
  • using Jupyter and RStudio for quick prototyping and visualization,
  • using automated code testing,
  • etc.

Required software

To start working on the course assignments you need to install:

  • git — version control system,
  • Anaconda — a software package that includes Python and all necessary tools for data analysis and visualization,
  • RStudio и R — similar to the above, but for R programming languge.

The sotware is available for all major platforms: Windows, Linux, and Mac OS. However, Windws users may experience weird problems, so it’s recommended to use a Unix-like system to work on the assignments.

Certain assignment may require additional software. Instructions will be provided as part of the assignment.

Submission rules

Each solution must contain:
  • Working code and all other resources required to solve an assignment.
  • File README.md or README.org with:
    1. a short description of the problem and your approach for solving it,
    2. an instruction on how to run the code,
    3. (for group assignments) a list of members and a short description of each member’s contribution.

Zeroeth assignment must be done individually. Other assignments can be done in a group of 2 to 3.

All solutions must be submitted in a Pull Request to this repository. The root directory for N-th assignment submission is submissions/taskN/names-of-participants. Pull Request’s branch should be named taskN-names-of-participants.

Example. Studends Alice and Bob decided to work together on assignment #2. First, they clone the current repository and create a new branch task2-alice-bob off of master. The they create a directory submissions/task2/alice-bob where they put all files related to their solution. When they have finished working on the solution, they commit their changes and send a Pull Request to master with a title Assignment 2. Alice, Bob.

From this moment on, their submissions is under review. The assignment is considered solved after successful review.

Logistics and grading

There are 2 dates for each assignment:

  1. The date by which the code must be read and the Pull Request submitted.
  2. The data by which the review must be done (usually, +1 week after the first date). This extra time is given to students to address review comments and update their submissions.

Late submissions get a 50% penalty.

Questions and discussions

Each repository on GitHub has an Issues section. It is recommended to submit your questions as issues rather than by email because:

  • issues are accessible by all,
  • discussions are easier to follow,
  • students can help each other.

Assignments

Useful resources

Python

  • Codecademy — online platform with introductory courses on many programming languages including Python.
  • SciPy — a library for scientitic computing including numerical integration and optimization.
  • NumPy — a library for matric compotations.
  • Pandas — a library for working with and manipulating structured data.
  • Matplotlib — a charting library.
  • Jupyter — an interactive Python environment.

R

  • Datacamp — online platform with courses on R, starting with the basics or the language, to data manipulation, to analysis and visualization.
  • RStudio — an IDE for R.

MOOCS

About

Intro to modern programming tools and techniques for CMC MSU students. Fall ‘16 - Spring ‘17

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages