0% found this document useful (0 votes)
25 views10 pages

Python and R

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views10 pages

Python and R

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

ACTS, Pune

Suggested Teaching Guidelines for


Python & R Programming PG-DBDA
August 2024

Duration: 44 classroom hours + 36 lab hours

Objective: To introduce the student to Python programming & R programming


concepts.

Prerequisites: Knowledge of programming in any language like C, C++ and some


basic statistical knowledge.

Evaluation method: Theory exam– 40% weightage


Lab exam – 40% weightage
Internal exam– 20% weightage

List of Books / Other training material

Text Book:
1. Python for Everybody Exploring Data using Python, Charles R. Severance, Shroff
Publishers & Distributors, 1st Edition.

Reference Book:
1. Introduction to Computer Science using Python, Charles/ Wiley
2. Python Power!: The Comprehensive Guide
3. Python Crash Course: A Hands-on, Project-Based Introduction to Programming
4. Beginning Programming with Python For DummiesLearning Python by: Fabrizio
Romano
5. Python Projects by Laura Cassell , Alan Gauld / Wiley
6. Python Cookbook by David B. Brain K. Jones / Shroff / O'reilly Publisher
7. Head First Python by Paul Barry / Shroff / O'reilly Publisher
8. Professional Iron Python by John Paul Muller / Wiley India Pvt Ltd
9. Beginning Programming with Python for Dummies by John Paul Muller / Wiley
India Pvt Ltd

Note: Each session mentioned is for theory and of 2 hours duration. Lab
assignments are indicatives, faculty need to assign more assignments for better
practice.
Session 1:
o Installing Python
o Introduction to Python
o Basic Syntax, Data Types, Variables, Operators, Input/Output
o Declaring Variables, Data Types in Programs
o Your First Python Program
o Flow of Control (Modules, Branching)
o If, If-else, Nested if-else
o Looping, For, While, Nested Loops
o Control Structure
o Uses of Break, Continue, and Pass
PG-DBDA Page 1 of 10
ACTS, Pune
Suggested Teaching Guidelines for
Python & R Programming PG-DBDA
August 2024

Lab Assignments:
Q.1. Using for loop, write and run a Python program for this algorithm.
Here is an algorithm to print out n! (n factorial) from 0! to 10! :
1. Set f = 1
2. Set n = 0
3. Repeat the following 10 times:
a. Output n, "! = ", f
b. Add 1 to n
c. Multiply f by n

Q.2. Modify the program above using a while loop so it prints out all of the factorial
values that are less than 2 billion. (You should be able to do this without looking at the
output of the previous exercise.)

Session 2:
o Strings and Tuples
o Accessing Strings
o Basic Operations
o Assigning Multiple Values at Once
o Formatting Strings
o String Slices

Lab Assignments:
Q.1. Write a program that asks the user how many days are in a particular month, and
what day of the week the month begins on (0 for Monday, 1 for Tuesday, etc), and then
prints a calendar for that month. For example, here is the output for a 30-day month that
begins on day 4 (Thursday):
S M T W T F S
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

Q. 2. Define a procedure histogram() that takes a list of integers and prints a histogram
to the screen. For example, histogram([4, 9, 7]) should print the following:

****
*********
*******

Q. 3. Write a version of a palindrome recognizer that also accepts phrase palindromes


such as "Go hang a salami I'm a lasagna hog.", "Was it a rat I saw?", "Step on no pets",
"Sit on a potato pan, Otis", "Lisa Bonet ate no basil", "Satan, oscillate my metallic
PG-DBDA Page 2 of 10
ACTS, Pune
Suggested Teaching Guidelines for
Python & R Programming PG-DBDA
August 2024

sonatas", "I roamed under it as a tired nude Maori", "Rise to vote sir", or the exclamation
"Dammit, I'm mad!". Note that punctuation, capitalization, and spacing are usually
ignored.

Q. 4. A pangram is a sentence that contains all the letters of the English alphabet at
least once, for example: The quick brown fox jumps over the lazy dog. Your task here is
to write a function to check a sentence to see if it is a pangram or not.

Session 3:
o Dictionaries
o Introducing Dictionaries
o Defining Dictionaries
o Modifying Dictionaries
o Deleting Items from Dictionaries
o Dictionary Comprehension

Lab Assignments:
Q. 1. In cryptography, a Caesar cipher is a very simple encryption techniques in which
each letter in the plain text is replaced by a letter some fixed number of positions down
the alphabet. For example, with a shift of 3, A would be replaced by D, B would become
E, and so on. The method is named after Julius Caesar, who used it to communicate
with his generals. ROT-13 ("rotate by 13 places") is a widely used example of a Caesar
cipher where the shift is 13. In Python, the key for ROT-13 may be represented by
means of the following dictionary:

key = {'a':'n', 'b':'o', 'c':'p', 'd':'q', 'e':'r', 'f':'s', 'g':'t', 'h':'u', 'i':'v', 'j':'w', 'k':'x', 'l':'y', 'm':'z', 'n':'a',
'o':'b', 'p':'c', 'q':'d', 'r':'e', 's':'f', 't':'g', 'u':'h', 'v':'i', 'w':'j', 'x':'k', 'y':'l', 'z':'m', 'A':'N', 'B':'O',
'C':'P', 'D':'Q', 'E':'R', 'F':'S', 'G':'T', 'H':'U', 'I':'V', 'J':'W', 'K':'X', 'L':'Y', 'M':'Z', 'N':'A',
'O':'B', 'P':'C', 'Q':'D', 'R':'E', 'S':'F', 'T':'G', 'U':'H', 'V':'I', 'W':'J', 'X':'K', 'Y':'L', 'Z':'M'}

Your task in this exercise is to implement an encoder/decoder of ROT-13. Once you're


done, you will be able to read the following secret message:

Pnrfne pvcure? V zhpu cersre Pnrfne fnynq!

Note that since English has 26 characters, your ROT-13 program will be able to both
encode and decode texts written in English.

Session 4:
o Working with Lists
o Introducing Lists
o Defining Lists
o Declaring, Assigning, and Retrieving Values from Lists
o Accessing Lists
PG-DBDA Page 3 of 10
ACTS, Pune
Suggested Teaching Guidelines for
Python & R Programming PG-DBDA
August 2024

o Operations on Lists
o Adding Elements to Lists
o Searching Lists
o Deleting List Elements
o Using List Operators
o Mapping Lists
o Joining Lists and Splitting Strings
o Historical Note on String Methods

Lab Assignments:
1. Find the largest and smallest number in the list which taken as input from user
using list operations.
2. Write a Python program to create multiple lists

Session 5 & 6:
o Function and Methods
o Defining and Calling Functions
o Types of Functions
o Function Arguments
o Anonymous Functions (Lambda, Map, List Comprehension)
o Global and Local Variables
o Using Optional and Named Arguments
o Using type, str, dir, and Other Built-In Functions
o Concepts of Modules
o Pickling

Lab Assignments:
Q. 1. Given a dictionary of students and their favourite colours:
people={'Arham':'Blue','Lisa':'Yellow',''Vinod:'Purple','Jenny':'Pink'}
1. Find out how many students are in the list
2. Change Lisa’s favourite colour
3. Remove 'Jenny' and her favourite colour
4. Sort and print students and their favourite colours alphabetically by name

Write a function translate() that will translate a text into "rövarspråket" (Swedish for
"robber's language"). That is, double every consonant and place an occurrence of "o" in
between. For example, translate("this is fun") should return the string "tothohisos isos
fofunon".

Q. 2. Write a program that contains a function that has one parameter, n, representing
an integer greater than 0. The function should return n! (n factorial). Then write a main
function that calls this function with the values 1 through 20, one at a time, printing the
returned results. This is what your output should look like:
PG-DBDA Page 4 of 10
ACTS, Pune
Suggested Teaching Guidelines for
Python & R Programming PG-DBDA
August 2024

1 1
2 2
3 6
4 24
5 120
6 720
7 5040
8 40320
9 362880
10 3628800

Q. 3.We can define sum from 1 to x (i.e. 1 + 2 + ... + x) recursively as follows for integer
x ≥ 1:
1, if x = 1
x + sum from 1 to x-1 if x > 1
Complete the following Python program to compute the sum 1 + 2 + 3 + 4 + 5 + 6 + 7 +
8 + 9 + 10 recursively:
def main():
# compute and print 1 + 2 + ... + 10
print sum(10)
def sum(x):
# you complete this function recursively main ()

Q. 4. Define a function overlapping () that takes two lists and returns True if they have at
least one member in common, False otherwise.

Q. 5.Write a function find_longest_word() that takes a list of words and returns the
length of the longest one.

Q. 6.Write a function filter_long_words() that takes a list of words and an integer n and
returns the list of words that are longer than n

Q. 7.Define a simple "spelling correction" function correct () that takes a string and sees
to it that
1)two or more occurrences of the space character is compressed into one, and
2)inserts an extra space after a period if the period is directly followed by a letter.
e.g. correct ("This is very funny and cool.Indeed!") should return "This is very funny
and cool. Indeed!"

Q. 8.In English, present participle is formed by adding suffix -ing to infinite form: go ->
going. A simple set of heuristic rules can be given as follows:

 If the verb ends in e, drop the e and add ing (if not exception be, see, flee, knee,
etc.)
 If the verb ends in ie, change ie to y and add ing
PG-DBDA Page 5 of 10
ACTS, Pune
Suggested Teaching Guidelines for
Python & R Programming PG-DBDA
August 2024

 For words consisting of consonant-vowel-consonant, double the final letter before


adding ing
 By default, just add ing

Your task in this exercise is to define a function make_ing_form() which given a verb in
infinitive form returns its present participle form. Test your function with words such as
lie, see, move and hug. However, you must not expect such simple rules to work for all
cases.

Session 7:
o Working with Tuples
o Introducing Tuples
o Accessing tuples
o Operation

Lab Assignments:
1. Write a Python program to find the repeated items of a tuple.
2. Write a Python program to sort a tuple by its float element.
Sample data: [('item1', '12.20'), ('item2', '15.10'), ('item3', '24.5')]
Expected Output: [('item3', '24.5'), ('item2', '15.10'), ('item1', '12.20')]
3. Write a Python program to count the elements in a list until an element is a tuple.
Sample input : list = [10, 20, 30, (40,50), 60]
Sample output = 3
4. Write a Python program to compute element-wise sum of given tuples, using
“zip()” function
Original tuples:
(1, 2, 3, 4)
(3, 5, 2, 1)
(2, 2, 3, 1)
Element-wise sum of the said tuples:
(6, 9, 8, 6)

Session 8 & 9:
Advanced Python:
o Object Oriented Python
o OOPs Concept
o Object
o Indenting Code
o Native Data Types
o Declaring Variables
o Referencing Variables
o Object References
o Class and Object
o Attributes, Inheritance
o Overloading & Overriding
PG-DBDA Page 6 of 10
ACTS, Pune
Suggested Teaching Guidelines for
Python & R Programming PG-DBDA
August 2024

o Data Hiding
o Regular Expressions Using Python
o Object Oriented Linux Environment
o Generators
o Decorators

Lab Assignments:

1. Create a class 'Student' with rollno, studentName, course ,dictionary of


marks(subjectName -> marks [5]). Provide following functionalities
A. initializer
B. override __str__ method
C. accept student data
D. Print student data for given id.
E. Print Student who has failed in any subject. Write menu driven program to test
above functionalities.( accept records of 5 students and store those in list )
2. Write a menu driven program to maintain student information. for every student
store studetid, sname, and m1,m2,m3 marks for 3 subject. also store gpa in
student class, add a function in student class to return GPA of a student
 Calculate GPA()
 gpa=(1/3)*m1+(1/2)*m2+(1/4)*m3
 Create an array to store Multiple students.
1. Display All Student
2. Search by id
3. Search by name
4. calculate GPA of a student
5. Exit

3. Generators:
Create a class NumberSeries that includes a generator method to generate a
series of even numbers up to a given limit. Write a script to create an instance of
this class and print all the even numbers generated.

Decorators:
Create a decorator log_method_call that logs the method name and arguments
whenever a method is called. Apply this decorator to methods in the Student
class to log the calls to display student information and calculate GPA. Write a
script to test this functionality by creating instances of the Student class and
calling these methods.

Session 10 & 11:


o Operations Exception
o Exception Handling
o Except Clause
o Try-Finally Clause
PG-DBDA Page 7 of 10
ACTS, Pune
Suggested Teaching Guidelines for
Python & R Programming PG-DBDA
August 2024

o User Defined Exceptions


o Logging in Python

Session 12, 13 & 14:


o Working with Pandas
o Data Wrangling with Pandas
o Working with NumPy
o Data Cleaning with Python
Lab Assignments:
1. Write a NumPy program to read a CSV data file and store records in an array.
2. Write a NumPy program to convert a PIL Image into a NumPy array. Also convert
a NumPy array to an image. Display the image.
Sample Output:
[[[255 255 255 0]
.......
[255 255 255 0]]]
3. Write a NumPy program to convert Pandas dataframe to Numpy array with
headers.
4. Write a Pandas program to read a dataset from diamonds
 DataFrame and modify the default columns values and print the first 6
rows
 calculate the mean of each numeric column of diamonds DataFrame.
 calculate count, minimum, maximum price for each cut of diamonds
DataFrame
 print a concise summary of diamonds DataFrame.
 count the duplicate rows of diamonds DataFrame.

Session 15 & 16:


o Working with beautiful soup
o Visualizing Using Matplotlib, Seaborn
o Working with ggplot, Plotly

Lab Assignments:
1. Extract any website data using Beautiful Soup.
2. Import csv file using pandas, find correlation and plot heatmap of correlation
using seaborn, plot the scatter plot for any two highest correlated columns using
matplotlib and plotly.

Session 17:
o Load Images using Pillow
o Load Audio Files using Scikit-learn (scipy.io)
o Creation of Python Virtual Environment

PG-DBDA Page 8 of 10
ACTS, Pune
Suggested Teaching Guidelines for
Python & R Programming PG-DBDA
August 2024

Session 18:
o Connecting Databases with Python
o Working with Databases using Python
o Accessing and Manipulating Databases

R-Programming: (16 Hours = 8T + 8L)


Session 19:
o The R project for Statistical Computing
o Why R
o Introduction & Installation of R
o R Basics, Finding Help,
o Code Editors for R,
o Exploring R Gui
o Exploring RStudio
o Basic Mathematical & Arithmetic operations in R

Lab Assignments:
1. Read Introduction to R, R basics and Scope of R.
2. Explore R GUI and Rstudio

Session 20:
o Data Objects- Data Types & Data Structures (e.g. lists. Arrays, matrices, data
frames)
o Packages in R
o Working with Packages
o Handling Data in R Workspace
o Reading & Importing data from Text files, Excel files, Multiple databases
o Exporting Data from R

Lab Assignments:
1. Write R program to compute sum, mean and product of a given vector elements.
2. Write R program to call the (built-in) dataset airquality.
3. Write R program to create a list of dataframes and access each of those data
frames from the list.
4. Write R Program to create dataframe,
 Get the statistical Summary and nature of the data of dataframe
 Add new column in dataframe.
 Sort dataframe using multiple columns.
 Export Dataframe to excel file using writexl package.

Session 21:
o Introduction to tidy verse (group of packages)
o Manipulating and Processing Data in R
o Creating, Accessing and Sorting data frames
o Extracting, Combining, Merging, reshaping data frames
PG-DBDA Page 9 of 10
ACTS, Pune
Suggested Teaching Guidelines for
Python & R Programming PG-DBDA
August 2024

Lab Assignments:
1. Load one XML file and one Json file in R studio, Print the data in both files one
by one and get statistical summary of data.
2. Extract Data from any website using R packages.
3. Call the built in dataset “diamonds” in R and plot Pie chart and Bar graph

Session 22:
o Functions
o Built in functions in R (numeric, character, statistical)
o Interactive reporting with R markdown
o Case study

Lab Assignments:
1. Examine the built in ChickWeight data (the help gives background about the
data). The function split will prove useful to do the following (as will a script).
o Construct a plot of weight against time for chick number 34.
o For chicks in diet group 4, display box plots for each time point.
o Compute the mean weight for chicks in group 4, for each time point. Plot
this mean value against time.
o Repeat the previous computation for group 2. Add the mean for group 2
to the existing plot.
o Add a legend and a title.
o Copy and paste the graph into Word.

PG-DBDA Page 10 of 10

You might also like