2021 Faculty Courses School of Engineering Undergraduate major in Industrial Engineering and Economics
Advanced Computer Programming
- Academic unit or major
- Undergraduate major in Industrial Engineering and Economics
- Instructor(s)
- Akiyoshi Shioura / Nobutaka Shimizu
- Class Format
- Lecture/Exercise
- Media-enhanced courses
- -
- Day of week/Period
(Classrooms) - 5-8 Mon (西9号館311号室)
- Class
- -
- Course Code
- IEE.A230
- Number of credits
- 110
- Course offered
- 2021
- Offered quarter
- 2Q
- Syllabus updated
- Jul 10, 2025
- Language
- Japanese
Syllabus
Course overview and goals
This course provides an introduction of algorithms and data structures.
This course uses Python programming language to implement algorithms.
By combining lectures and exercises, the course enabls students to understand the fundamentals of programming to solve computational problem.
Course description and aims
At the conclusion of this course students will be able to:
1) learn how to use the Python language.
2) understand basic data structures and algorithms.
3) understand the difference in efficiency of algorithms.
4) implement computing algorithms to solve problems.
Keywords
Python, Programming, Algorithms
Competencies
- Specialist skills
- Intercultural skills
- Communication skills
- Critical thinking skills
- Practical and/or problem-solving skills
Class flow
The first two-thids of each class is lecture and the rest for exercises of programming.
Course schedule/Objectives
Course schedule | Objectives | |
---|---|---|
Class 1 | Review (numbers, strings, list) | Understand the usage of numbers, strings, and lists. |
Class 2 | Review (for statements, if statements) | Understand the usage of for statements and if statements. |
Class 3 | String operations (formatting, pattern match, regex) | Acquire skills in manipulating character strings with basic operations. |
Class 4 | Plane geometry (line segment intersection, ditance of a point to a line, convex hull) | Understand how to calculate convex hull. |
Class 5 | Random number (uniform distribution, normal distribution, generation) | Explain how random number generators work. |
Class 6 | Statistics (data processing, fitting) | Process data using statistical methods. |
Class 7 | Computational complexity (Big O notation) | Explain the computational complexity. |
Class 8 | Stack and Queue (depth first search and breadth first search) | Explain the difference between the depth first search and the breadth first search. |
Class 9 | Sorting algorithms (bubble sort, heap sort, quick sort, merge sort) | Explain the difference between the sorting algorithms. |
Class 10 | Backtracking (N queen problem, Sudoku) | Explain how backtracking works. |
Class 11 | Dynamic programming (Knapsack problem) | Explain how dynamic programming works. |
Class 12 | Shortest path problem (Warshall-Floyd, Bellman-Ford algorithms) | Understand the methods to solve shortest path problem. |
Class 13 | Linear Programming | Solve LP problems with pulp. |
Class 14 | Travelling salesman problem | Understand the methods to solve traveling salesman problem. |
Study advice (preparation and review)
To enhance effective learning, students are encouraged to spend approximately 100 minutes preparing for class and another 100 minutes reviewing class content afterwards (including assignments) for each class.
They should do so by referring to textbooks and other course material.
Textbook(s)
None required.
Reference books, course materials, etc.
Guido van Rossum: Python Tutorial.
Mark Lutz: Learning Python
Evaluation methods and criteria
Learning achievement is evaluated by reports.
Related courses
- IEE.A207 : Computer Programming (Industrial Engineering and Economics)
Prerequisites
Only undergraduate students of Department of Industrial Engineering and Economics can attend the class.
Students must have completed Computer Programming (Industrial Engineering and Economics) or have equivalent knowledge.
Other
Bring your own laptop PC when you attend a lecture in the university.