Unit 1: Programming and Computational Thinking
- Revision of the basics of Python
- Functions: scope, parameter passing, mutable/immutable properties of data objects, pass
- arrays to functions, return values, functions using libraries: mathematical, and string functions.
- File handling: open and close a file, read, write, and append to a file, standard input, output,
- and error streams, relative and absolute paths.
- Using Python libraries: create and import Python libraries
- Recursion: simple algorithms with recursion: factorial, Fibonacci numbers; recursion on
- arrays: binary search
- Idea of efficiency: performance defined as inversely proportional to the wall clock time, count
- the number of operations a piece of code is performing, and measure the time taken by a
- program. Example: take two different programs for the same problem, and understand how
- the efficient one takes less time.
- Data visualization using Pyplot: line chart, pie chart, and bar chart.
- Data-structures: lists, stacks, queues.
- Structure of a network: Types of networks: local area and wide area (web and internet), new technologies such as cloud and IoT, public vs. private cloud, wired and wireless networks; concept of a client and server.
- Network devices such as a NIC, switch, hub, router, and access point.
- Network stack: amplitude and frequency modulation, collision in wireless networks, error checking, and the notion of a MAC address, main idea of routing. IP addresses: (v4 and v6), routing table, router, DNS, and web URLs, TCP: basic idea of retransmission, and rate modulation when there is congestion (analogy to a road network), Protocols: 2G, 3G, 4G, Wi-Fi. What makes a protocol have a higher bandwidth?
- Basic network tools: traceroute, ping, ipconfig, nslookup, whois, speed-test.
- Application layer: HTTP (basic idea), working of email, secure communication: encryption and certificates (HTTPS), network applications: remote desktop, remote login, HTTP, FTP, SCP,SSH, POP/IMAP, SMTP, VoIP, NFC.
- Write a minimal Django based web application that parses a GET and POST request, and
- writes the fields to a file - flat file and CSV file.
- Interface Python with an SQL database
- SQL commands: aggregation functions – having, group by, order by.
- Intellectual property rights, plagiarism, digital rights management, and licensing (Creative
- Commons, GPL and Apache), open source, open data, privacy.
- Privacy laws, fraud; cyber-crime- phishing, illegal downloads, child pornography, scams;
- cyber forensics, IT Act, 2000.
- Technology and society: understanding of societal issues and cultural changes induced by
- technology.
- E-waste management: proper disposal of used electronic gadgets.
- Identity theft, unique ids, and biometrics.
- Gender and disability issues while teaching and using computers.
Practical Excersizes -Programming in Python:
- Recursively find the factorial of a natural number.
- Read a file line by line and print it.
- Remove all the lines that contain the character `a' in a file and write it to another file.
- Write a Python function sin(x, n) to calculate the value of sin(x) using its Taylor series
- expansion up to n terms. Compare the values of sin(x) for different values of n with the correct value.
- Write a random number generator that generates random numbers between 1 and 6
- (simulates a dice).
- Write a recursive code to find the sum of all elements of a list.
- Write a recursive code to compute the nth Fibonacci number.
- Write a Python program to implement a stack and queue using a list data-structure.
- Write a recursive Python program to test if a string is a palindrome or not.
- Write a Python program to plot the function y = x using the pyplot or matplotlib libraries.
- Create a graphical application that accepts user inputs, performs some operation on them, and then writes the output on the screen. For example, write a small calculator. Use the tkinter library.
- Open a webpage using the urllib library.
- Compute EMIs for a loan using the numpy or scipy libraries.
- Take a sample of 10 phishing e-mails and find the most common words.
5.2. Data Management: SQL and web-server
- Find the min, max, sum, and average of the marks in a student marks table.
- Find the total number of customers from each country in the table (customer ID, customer name, country) using group by.
- Write a SQL query to order the (student ID, marks) table in descending order of the marks.
- Integrate SQL with Python by importing the MySQL module
- Write a Django based web server to parse a user request (POST), and write it to a CSV file.
No comments:
Post a Comment