Syllabus for Algorithmic Thinking with Python

UCEST105 · 5 pages · Your place is saved in this browser

Contents · Module 1: Problem-solving and Python fundamentals
Text size18

Module 1: Problem-solving and Python fundamentals

Contact hours: 7

  1. Problem-solving strategies

    • Trial and error
    • Heuristics
    • Means–ends analysis
    • Backtracking (working backward)
  2. Problem-solving process

    • Computer as a model of computation
    • Understand the problem and formulate a model
    • Develop an algorithm and write a program
    • Test the program and evaluate the solution
  3. Python essentials

    • Variables and numeric/string data types
    • Math module and standard-library basics
    • Input and output with input and print
    • Operators and precedence

Module 2: Algorithms, flowcharts and control flow

Contact hours: 9

  1. Algorithms and pseudocode

    • Meaning and purpose of pseudocode
    • Sequence, selection (if–else, case) and repetition (for, while, repeat–until)
    • Practice problems: expressions, interest, comparisons, grades, loops, factorial and largest value
  2. Flowcharts

    • Start/end, calculation, input/output and decision symbols
    • Module calls, loops, flow lines and page connectors
    • Use flowcharts to visualize algorithm control flow
  3. Selection, iteration and collections

    • if, elif, for, range and while
    • Lists, tuples, sets, strings and dictionaries
    • Arrays using NumPy

Module 3: Decomposition, functions and recursion

Contact hours: 10

  1. Decomposition and modularization

    • Break complex problems into smaller parts
    • Motivation for modular design
    • Demonstrations using merge sort and finding the top three values
  2. Functions

    • Define and use functions
    • Functions with multiple return values
  3. Recursion

    • Recursive calls and the call stack
    • Avoid circularity
    • Examples: Fibonacci numbers, GCD, factorial, addition and sum of digits

Module 4: Computational approaches to problem-solving

Contact hours: 10

  1. Brute force

    • Examples: padlocks and password guessing
  2. Divide and conquer

    • Merge sort
    • Advantages and disadvantages
  3. Dynamic programming

    • Fibonacci series
    • Recursion compared with dynamic programming
  4. Greedy algorithms

    • Task scheduling by completion time
    • Motivation and characteristics
    • Greedy methods compared with dynamic programming
  5. Randomized algorithms

    • Coupon-collector example
    • Random hat-check example
    • Motivation for randomized approaches

Course objectives

  1. Develop algorithmic thinking and apply it to practical problems.
  2. Explore problem-solving strategies and algorithmic approaches.

Course outcomes

  1. Use computing as a model for real-world problems.
  2. Describe a problem and form a clear model.
  3. Develop algorithms and implement them as programs.
  4. Apply problem-solving strategies and essential Python skills.

Assessment

Continuous Internal Evaluation (CIE)

  • Attendance — 5 marks

  • Programming-task continuous assessment — 5 marks

  • Two written internal examinations — 10 marks each

  • Laboratory examination — 10 marks

End-Semester Examination (ESE): 60 marks

  • Part A: Eight questions, two from each module, carrying 3 marks each (24 marks). Answer all.

  • Part B: Two questions from each module; answer one full question from each module. Each carries 9 marks (36 marks).

  • Examination duration: 2 hours 30 minutes.

You’ve reached the end of EEE S1 UCEST105 · Algorithmic Thinking with Python syllabus.

Source: KTU 2024 Scheme syllabus. The topics are reorganized into a clearer outline from the source syllabus. Check the original material if a step looks unclear.

Algorithmic Thinking with Python navigation

Explore all modules and official syllabus

View Algorithmic Thinking with Python overview