ICS 140 Computational Thinking with Programming
This course introduces fundamental concepts in computer programming and the development of computer programs to solve problems across various application domains. Topics include number systems, Boolean algebra, variables, decision-making and iterative structures, lists, file manipulation, and problem deconstruction via modular design approaches. Lab work and homework assignments involving programming using a language such as Python form an integral part of the course.
First day attendance is mandatory.
Note: Students must be proficient in using a computer. Required skills include the ability to create directories (folders) and files of different types (plain text files, zip files, etc.) using a graphical user interface as well as a command line interface. Students are responsible to both be aware of and abide by prerequisites for ICS courses for which they enroll, and will be administratively dropped from a course if they have not met prerequisites.
Prerequisites
Special information
Note: Students must be proficient in using a computer. Required skills include the ability to create directories (folders) and files of different types (plain text files, zip files, etc.) using a graphical user interface as well as a command line interface. Students are responsible to both be aware of and abide by prerequisites for ICS courses for which they enroll, and will be administratively dropped from a course if they have not met prerequisites.
4 Undergraduate credits
Effective August 15, 2017 to present
Learning outcomes
General
- Describe algorithms and their role in solving problems.
- Explain the role of the operating system in a digital system.
- Describe emerging technologies such as cloud computing, artificial intelligence, data analytics and others.
- Describe different types of application software including database, internet, and games.
- Explain security and privacy threats and describe measures to prevent them.
- Describe the evolution of digital systems and their past, present, and potential future impact on human society.
- Develop algorithmic solutions using appropriate programming structures and express algorithms using pseudocode, flow-charts or other design notation.
- Demonstrate knowledge of common algorithms, such as binary search, finding the minimum/maximum value in a list, and quadratic sort.
- Demonstrate the ability to select an appropriate algorithm for solving a problem.
- Implement algorithms with a high-level programming language and provide simple documentation.
- Express numbers in binary format.
- Express and simplify Boolean expressions.
- Describe the Von Neumann architecture and interaction between the processor and memory.
- Explain how data communication works and give examples of networks.
- Describe computer algorithms and their role in solving problems from various application domains.
- Develop algorithmic solutions using appropriate programming structures.
- Express algorithms using pseudocode and flowcharts.
- Use appropriate terminology to identify elements of a program (e.g., identifier, operator, operand).
- Express and simplify Boolean expressions.
- Develop solutions using programing structures such as conditionals and iterations.
- Develop programs that effectively use the different structured data types provided in the language such as arrays and lists.
- Develop programs using modules and functions.
Spring 2024
Section | Title | Instructor | books | eservices |
---|---|---|---|---|
01 | Computational Thinking with Programming | Absar, Rafa | Books for ICS-140-01 Spring 2024 | Course details for ICS-140-01 Spring 2024 |
02 | Computational Thinking with Programming | Absar, Rafa | Books for ICS-140-02 Spring 2024 | Course details for ICS-140-02 Spring 2024 |
03 | Computational Thinking with Programming | Lawrence, Aaron Richard James | Books for ICS-140-03 Spring 2024 | Course details for ICS-140-03 Spring 2024 |
04 | Computational Thinking with Programming | Hassan, Farris Adam | Books for ICS-140-04 Spring 2024 | Course details for ICS-140-04 Spring 2024 |
Summer 2024
Section | Title | Instructor | books | eservices |
---|---|---|---|---|
01 | Computational Thinking with Programming | Munmun, Mousumi | Books for ICS-140-01 Summer 2024 | Course details for ICS-140-01 Summer 2024 |
02 | Computational Thinking with Programming | Lawrence, Aaron Richard James | Books for ICS-140-02 Summer 2024 | Course details for ICS-140-02 Summer 2024 |
Fall 2024
Section | Title | Instructor | books | eservices |
---|---|---|---|---|
01 | Computational Thinking with Programming | Absar, Rafa | Books for ICS-140-01 Fall 2024 | Course details for ICS-140-01 Fall 2024 |
02 | Computational Thinking with Programming | Absar, Rafa | Books for ICS-140-02 Fall 2024 | Course details for ICS-140-02 Fall 2024 |
03 | Computational Thinking with Programming | Staff, Staff | Books for ICS-140-03 Fall 2024 | Course details for ICS-140-03 Fall 2024 |
04 | Computational Thinking with Programming | Lawrence, Aaron Richard James | Books for ICS-140-04 Fall 2024 | Course details for ICS-140-04 Fall 2024 |