Introduction to Computer Science
Week 1: Fundamentals of Programming
Lecture 1: Introduction to Programming
o Overview of programming languages.
o Basics of algorithmic thinking.
o Writing and running simple programs.
Lecture 2: Variables and Data Types
o Understanding variables and their role.
o Data types and their significance.
o Basic input and output operations.
Lecture 3: Control Flow
o Conditional statements (if, else, elif).
o Loop structures (while, for).
o Handling user input and error messages.
Week 2: Object-Oriented Programming (OOP)
Lecture 4: Introduction to OOP
o Principles of encapsulation, inheritance, and polymorphism.
o Classes and objects in programming.
o Benefits of OOP in software development.
Lecture 5: Classes and Objects
o Defining classes and creating objects.
o Constructors and destructors.
o Class methods and attributes.
Lecture 6: Inheritance and Polymorphism
o Extending classes through inheritance.
o Method overriding.
o Polymorphism and its types.
Week 3: Data Structures
Lecture 7: Arrays and Lists
o Understanding arrays and lists.
o Operations on arrays and lists.
o Multidimensional arrays.
Lecture 8: Stacks and Queues
o Implementing stacks and queues.
o Applications of stacks and queues.
o Linked lists.
Lecture 9: Dictionaries and Sets
o Key-value pairs and dictionaries.
o Set operations.
o Hashing and its applications.
Week 4: Algorithms and Problem Solving
Lecture 10: Algorithm Design
o Basic algorithmic strategies (greedy, divide and conquer).
o Algorithm analysis (time and space complexity).
o Sorting algorithms.
Lecture 11: Searching Algorithms
o Linear search and binary search.
o Hashing for efficient searching.
o Graph search algorithms (BFS and DFS).
Lecture 12: Problem Solving Techniques
o Breaking down problems.
o Pseudocode and flowcharting.
o Debugging and testing strategies.
Week 5: Introduction to Software Development
Lecture 13: Software Development Life Cycle (SDLC)
o Phases of SDLC.
o Importance of documentation.
o Collaboration and version control.
Lecture 14: Introduction to Databases
o Basics of databases.
o Relational databases and SQL.
o Database design principles.
Lecture 15: Introduction to Web Development
o Frontend vs. backend development.
o HTML, CSS, and JavaScript.
o Basics of client-server architecture.