Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mirsazzathossain/csc101-introduction-to-computer-science
This repository 📚 holds the tutorial content for "Introduction to Computer Science" course at Independent University, Bangladesh. Dive into 💻 coding fundamentals & enhance ✨ your skills with hands-on exercises! 🔥
https://github.com/mirsazzathossain/csc101-introduction-to-computer-science
computer-science introduction-to-programming introduction-to-python programming python python-programming tutorial
Last synced: 2 months ago
JSON representation
This repository 📚 holds the tutorial content for "Introduction to Computer Science" course at Independent University, Bangladesh. Dive into 💻 coding fundamentals & enhance ✨ your skills with hands-on exercises! 🔥
- Host: GitHub
- URL: https://github.com/mirsazzathossain/csc101-introduction-to-computer-science
- Owner: mirsazzathossain
- License: mit
- Created: 2022-09-27T13:48:32.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-05-30T20:15:53.000Z (over 1 year ago)
- Last Synced: 2024-10-11T12:10:19.255Z (3 months ago)
- Topics: computer-science, introduction-to-programming, introduction-to-python, programming, python, python-programming, tutorial
- Language: HTML
- Homepage:
- Size: 2.84 MB
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Introduction to Computer Science
The **"Introduction to Computer Science"** course at [Independent University, Bangladesh](http://iub.edu.bd) has been designed to provide students with a comprehensive understanding of the basics of programming using Python. The course covers a wide range of topics, including fundamental programming concepts like variables, loops, conditional statements, and functions, as well as more advanced topics like data structures and file handling. The tutorial sessions are hands-on, allowing students to practice what they've learned and solve problems independently. The course has been designed to equip students with the skills necessary to write programs that solve real-world problems and to provide them with a solid foundation in the use of Python for problem-solving.
# Course Objectives
- Provide a comprehensive introduction to the basics of problem-solving using Python.
- Familiarize students with the broad range of applications of programming in solving real-world problems.
- Develop students' understanding of the fundamental building blocks of programming through hands-on programming exercises.
- Help students build confidence in applying programming concepts to solve real-world problems.
- Enhance students' critical thinking and problem-solving skills through practical exercises and projects.
- Foster an understanding of good programming practices, such as code readability, maintainability, and efficiency.
- Provide opportunities for students to practice and apply the skills and knowledge acquired through the course.# Course Outline
The course **"Introduction to Computer Science"** at Independent University, Bangladesh, provides students with a comprehensive introduction to programming using Python. The course consists of 11 weeks of tutorial sessions, each focusing on different aspects of programming and problem-solving. The course objectives are to introduce students to the basics of problem-solving using Python, understand the scope of programming in solving real-world problems, and to help students grow in confidence to solve real-world problems using programming concepts.
- ## Week 1: Operators, Variables, and Data Types
This session focuses on the basic building blocks of programming. Students will learn about console I/O, variables, data types, and operators. They will also learn how to use Google Colaboratory to write and run Python programs and solve problems using these concepts.
- ## Week 2: Boolean and Arithmetic Operators
This session covers boolean and arithmetic operators. Students will learn how to use boolean operators to make decisions in their programs, as well as how to perform mathematical operations using arithmetic operators. They will solve problems to better understand these concepts.
- ## Week 3: Conditional Statements
This week, students will learn about conditional statements, including if, elif, and else. They will learn how to make decisions in their programs using conditional statements and understand how to trace alternative conditional paths in a given program. As always, they will solve a number of problems to solidify their understanding.
- ## Week 4: More on Conditional Statements
In this session, students will delve into more advanced conditional statements, including nested conditional statements and the ternary operator. They will learn how to use these statements to make decisions in their programs and solve problems to better understand the concepts.
- ## Week 5: Loops
This week, students will learn about loops, including different types of loops and how to use them to repeat a block of code in their programs. They will also learn when and where to use loops in their programs and solve problems to gain a deeper understanding.
- ## Week 6: More on Loops
In this session, students will dive deeper into loops, learning about nested loops and the break and continue statements. They will solve problems to better understand these concepts and how to use them in their programs.
- ## Week 7: Lists and Tuples
Students will learn about lists and tuples, including different operations that can be performed on them and the methods that can be used. They will solve problems to better understand these concepts.
- ## Week 8: Functions
This week, students will learn about functions, including the advantages of using functions in their programs, arguments and return values, and how to solve problems using functions.
- ## Week 9: More on Functions
In this session, students will learn about more advanced concepts of functions, including combining lists, tuples, and functions to solve problems. They will gain a better understanding of how to use these concepts in their programs.
- ## Week 10: Dictionaries and Sets
In this session, students will learn about dictionaries and sets, including different operations that can be performed and the methods that can be used. They will solve problems to better understand these concepts.
- ## Week 11: Files
The final session will focus on files, including how to read and write files in programs, and the different modes of opening files. Students will solve problems to better understand these concepts and be ready to apply what they have learned to real-world problems.# Prerequisites
The "Introduction to Computer Science" course is suitable for students with no prior programming experience, but a basic understanding of mathematics is essential for success in the course. The following mathematical concepts are necessary to fully comprehend the programming material covered:
- Basic arithmetic operations, such as addition, subtraction, multiplication, and division
- Algebraic principles, including the ability to solve equations and manipulate variables
- Geometry, including an understanding of points, lines, and shapes
- Trigonometry, including fundamental trigonometric functions and their applications
- Boolean Algebra, including a good understanding of Boolean operators (AND, OR, NOT, etc.), truth tables, and logic gates.Having a solid foundation in these mathematical concepts, especially in Boolean Algebra, will greatly enhance students' ability to understand and apply the programming concepts covered in the course.
# Evaluation
Evaluation for the course will be based on the following criteria:
- Class Attendance (50%): Attendance is mandatory for all classes and students are expected to be present for every session.
- Active Participation in Class (20%): Students are expected to actively participate in class discussions, ask questions, and engage in group activities.
- Quizzes and Assignments (30%): Students will be tested on their understanding of the course material through various quizzes and assignments.
It is worth mentioning that the grade from this session will contribute 10% to the overall final grade of the course.
> **Note:** Attendance is mandatory for all classes and students are expected to attend every session. If a student needs to miss a class, they must inform the instructor beforehand. If a student misses a class without prior notification, they will be marked absent for that session. Plagiarism is strictly prohibited. If found copying from others, no marks will be given for that specific assignment, class, or quiz.
# Programming Environment
In this course, we will utilize [Google Colaboratory](https://colab.research.google.com/) for writing and executing Python programs. Google Colaboratory is a cloud-based Jupyter notebook platform that is free and does not require any setup. It is an excellent resource for learning and teaching programming, as well as for data science and machine learning. You can find more information about Google Colaboratory [here](https://colab.research.google.com/notebooks/welcome.ipynb).
# Books
Here are some recommended books for further learning:
- [Automate the Boring Stuff with Python, 2nd Edition](https://automatetheboringstuff.com/) by Al Sweigart
- [Head First Python](https://www.oreilly.com/library/view/head-first-python/9781491919521/) by Paul Barry
- [Python tutorial](https://python-course.eu/python-tutorial/) by Bernd Klein
- [Python tutorial](https://www.tutorialspoint.com/python3/python3_tutorial.pdf) by tutorialspoint# Taught By
- [Mir Sazzat Hossain](https://mirsazzathossain.me), Research Assistant at the [Center for Computational and Data Sciences (CCDS)](https://ccds.ai) at [Independent University, Bangladesh (IUB)](http://iub.edu.bd)