1st Year Weekly Task 1
Welcome to the Cognizance Weekly Task, Solve the given set of problems to earn XP Points
Note: You are not compelled to do all the questions from all the domains, But the more you do the more you learn and gain XP Points.
Open Source
Authors - Rohith Prasanna and Jahnavi
Todo-list
Objective:
- To design and develop a Web Application for Task Management that enhances productivity and helps users to stay organized.
- Your goal is to create a responsive and interactive system that incorporates essential functionalities for task management while offering a seamless user experience.
Instructions:
- Understand the Requirements: Analyze the core functionalities described below and ensure your web application fulfills these requirements.
- Plan Your Implementation: Strategize the structure of your web application, including UI/UX design, backend logic, and database management.
- Develop the Application: Use suitable web technologies (e.g., HTML, CSS, JavaScript, React, Node.js, or Django) to build the application.
- Test Your Application: Ensure the application is bug-free, user-friendly, and meets the expected outcomes across different devices.
Core Functionalities:
- Add tasks with descriptive titles using a user-friendly input form.
- Include details such as due dates and time.
- Your can add additional features too.
- Display tasks in a structured list or grid format.
- Implement a feature to view the remaining task [apart from completed task] .
- Mark tasks as completed.
- Edit or delete tasks directly from the interface.
- Ensure that the web application is responsive and works seamlessly.
Example Workflow :
Todo list
Add a Task : A user will have to fill the inputs like topic, due date and due time , then clicks the add task button.
View Tasks : The user sees all tasks displayed in a visually appealing layout, sorted by priority, with “Complete project report” at the top.
Mark as Completed : Once the task is done, the user clicks a checkbox to mark it as completed , remaining tasks will be decremented by 1.
Edit or Delete : The user can easily modify the due date or remove unnecessary tasks via edit or a delete button.
Evaluation Criteria :
Functionality : Does the web application implement all the core features effectively?
Usability : Is the application intuitive and easy to navigate?
Design & Responsiveness : Does the application provide an aesthetically pleasing and responsive interface?
Inovation : Innovation (additional features or UI) plays a major role in this task.
Submission Guidelines:
- Hosting in github: Your website should be hosted in github page .
- Person’s name: Person’s name should be mentioned somewhere in the website .
- Implementation: Your github repository link and website page link should be submitted in the submission form .
- Pull Request: Create a pull request from your
submission
branch to themain
branch of the original repository. - Final Check: Ensure that your github repository is made public .
References:
AI
Authors - Shalini D and Jeba Rachel
Task 1: Model Selection for Regression with Scikit-learn
Objective:
Build a regression model to predict diabetes progression using Scikit-learn. This task will help you understand the fundamentals of selecting and evaluating regression models.
Dataset:
Diabetes Dataset (available in Scikit-learn).
Steps
Load the Dataset
- Use Scikit-learn to load the Diabetes dataset.
- Convert it into a Pandas DataFrame for preprocessing.
Code:
from sklearn.datasets import load_diabetes
import pandas as pd
data = load_diabetes()
df = pd.DataFrame(data.data, columns=data.feature_names)
df['progression'] = data.target
df.to_csv("diabetes.csv", index=False)Preprocess the Data
- Load the CSV file using Pandas.
- Check for missing values and handle them if present.
- Standardize numerical features using
StandardScaler
.
Model Selection
- Compare multiple regression models, such as Linear Regression, Ridge Regression, and Random Forest Regressor.
- Use cross-validation to evaluate model performance using Mean Squared Error (MSE).
Train and Test the Best Model
- Split the data into training and testing sets (80-20 split).
- Train the selected model on the training set.
- Evaluate its performance on the test set.
Deliverables
- A Google Colab Notebook containing:
- Code for data preprocessing, model comparison, and evaluation.
- Comments explaining each step.
- A summary of the best model and its MSE on the test set.
Task 2: Model Selection for Classification with Scikit-learn
Objective:
Build a classification model to predict iris species using Scikit-learn. This task focuses on understanding the process of selecting the best classification model.
Dataset:
Iris Dataset (available in Scikit-learn).
Steps
Load the Dataset
- Use Scikit-learn to load the Iris dataset.
- Convert it into a Pandas DataFrame for preprocessing.
Code:
from sklearn.datasets import load_iris
import pandas as pd
data = load_iris()
df = pd.DataFrame(data.data, columns=data.feature_names)
df['species'] = data.target
df.to_csv("iris.csv", index=False)Preprocess the Data
- Load the CSV file in Pandas.
- Handle missing values if present.
- Standardize numerical features using
StandardScaler
. - Encode the target variable using label encoding.
Model Selection
- Compare multiple classification models, such as Logistic Regression, Decision Trees, and Support Vector Machines (SVM).
- Use cross-validation to evaluate model performance using accuracy and F1-score.
Train and Test the Best Model
- Split the data into training and testing sets (80-20 split).
- Train the selected model on the training set.
- Evaluate its performance on the test set.
Deliverables
- A Google Colab Notebook containing:
- Code for data preprocessing, model comparison, and evaluation.
- Comments explaining each step.
- A summary of the best model and its accuracy and F1-score on the test set.
References
General References:
Regression:
Classification:
Specific Techniques:
- Data Splitting: Train-Test Split
- Handling Missing Values: Pandas Documentation
- Model Selection: GridSearchCV
Note: Complete each task in Google Colab and upload your notebooks to your GitHub profile.
Cyber Security
Authors - Sreeram Rohith and Keerthi Rohan
Question 1
Image Steganography
Objective:
Create a Python GUI using Tkinter to perform image steganography with the following objectives:
- Allow the user to upload an image.
- Use a steganography algorithm to embed text into the image.
- Provide functionality in the GUI to decode the hidden text from the image.
Submission Guidelines:
- Include your name and the task name in the file.
- Provide an explanation of how the algorithm works (Many Algorithms are there . Mention the name of Algorithm)
- Include input and output images.
- Mention your Learning Outcomes(what modules and libraries you have learnt. List out those)
- Create a GitHub repository and upload both the PDF file and the code.
- Submit the Github repository link in the forms
(PDF Should contain Submission guidelines 1,2,3,4)
References:
Competitive Programming
Authors - Adithiyan PV and Shyam
Objective:
This task focuses on solving 5 problems related to arrays in a HackerRank contest. It’s designed to help you build your problem-solving and coding skills while exploring competitive programming.
Contest Link:
Weekly Task 1 for First Year
Reference Links:
Hints for the Problems
Problem 1: Climbing the Leaderboard
- Use reverse traversal or binary search for efficient score comparison.
- Maintain a dynamic rank list to adjust rankings as you process player scores.
Problem 2: Forming a Magic Square
- Precompute all 8 unique 3x3 magic squares.
- Calculate the minimal cost of converting the input matrix into one of these magic squares.
Problem 3: Picking Numbers
- Use a frequency array or dictionary to count occurrences of numbers.
- Check adjacent pairs in the frequency array to find the largest subset where the difference between numbers is at most 1.
Important Note:
Kindly refrain from using AI tools to generate your solutions. This exercise is tailored to boost your logical reasoning and enhance your coding expertise.
Reach out to your mentors for any doubts—they’re here to support you!
Submission
Deadline - 1st January 2025, 23:59
NOTE: Create a GitHub Repository named “Cognizance_1st_Year_T1”. For each domain create a separate directory namely “OS”, “AI”, “CYS”, and “CP”. For each domain question, create a sub-directory, “Q1”, and “Q2”. Finally, update the relevant files in these directories and fill out the submission form by providing the links to these repos
└── Cognizance_1st_Year_T1 |