This course serves as an introduction to programming and gives demonstarations on engineering applications . It aims to help students with little or no programming experience to gain necessary skills to work with abstract notions for solving computational problems. The course is structured around basic topics such as control flow, functions, lists, input and output, simple data structures (sets, dictionaries), testing and debugging, recursion and data plotting. The class will use the Python programming language as a medium to provide a basic understanding of basic concepts and the students will gain hand-on experience via a set of programming assignments through lab sections.
- Lectures
- Laboratory demonstrations and practice
- Homeworks
Principle Sources
- Introduction to Computation and Programming Using Python with Application to Understanding Data, John V. Guttag, The MIT Press (2016)
- https://docs.python.org/3/tutorial/index.html
- https://pythont-textbok.readthedocs.io/en/1.0/Object_Oriented_Programming.html
Other Sources
- https://docs.anaconda.com/anaconda/install/
Course Schedules
Week
Contents
Learning Methods
1. Week
Introduction to Course and Python. Variables: Numbers, strings and lists
Adequate knowledge in mathematics, science and engineering subjects pertaining to the relevant discipline; ability to use theoretical and applied information in these areas to model and solve engineering problems.
PO-2
Ability to identify, formulate, and solve complex engineering problems; ability to select and apply proper analysis and modeling methods for this purpose.
PO-3
Ability to design a complex system, process, device or product under realistic constraints and conditions, in such a way so as to meet the desired result; ability to apply modern design methods for this purpose. (Realistic constraints and conditions may include factors such as economic and environmental issues, sustainability, manufacturability, ethics, health, safety issues, and social and political issues according to the nature of the design.)
PO-4
Ability to devise, select, and use modern techniques and tools needed for engineering practice; ability to employ information technologies effectively.
PO-5
Ability to design and conduct experiments, gather data, analyze and interpret results for investigating engineering problems.
PO-6
Ability to work efficiently in intra-disciplinary and multi-disciplinary teams; ability to work individually.
PO-7
Ability to communicate effectively, both orally and in writing; knowledge of a minimum of one foreign language.
PO-8
Recognition of the need for lifelong learning; ability to access information, to follow developments in science and technology, and to continue to educate him/herself.
PO-9
Awareness of professional and ethical responsibility.
PO-10
Information about business life practices such as project management, risk management, and change management; awareness of entrepreneurship, innovation, and sustainable development.
PO-11
Knowledge about contemporary issues and the global and societal effects of engineering practices on health, environment, and safety; awareness of the legal consequences of engineering solutions.
Learning Outcomes
LO-1
Identify data types and variables
LO-2
Identify arithmetic,logical, conditional operators, if-else statements and compose Python code using them.
LO-3
identify and device FOR and WHILE loops in Python code
LO-4
identify and develop Python functions
LO-5
explain Python objects
LO-6
manage and manipulate data arrays using Numpy
LO-7
interpret and generate data visualizations using matplotlib library
LO-8
identify and compose Python code to read and write data files
LO-9
compose Python code to solve engineering/real life problems