Code Monkey home page Code Monkey logo

buie201-spring2023-lectures's Introduction

DEPARTMENT OF INDUSTRIAL ENGINEERING

IE 201 Intermediate Programming Spring 2023

Class schedule: Wednesday 9:00-11:00 Thursday 9:00-11:00

Instructor: A. Tamer Ünal ([email protected]) TA: Burak Nur Erdem ([email protected])

Prerequisite(s): CMPE 150 (Introduction to Programming) or equivalent.

Course Description

The main purpose of this course is to present intermediate programming techniques including basic data structures (arrays, lists, trees, etc.) and fundamental algorithms (sorting, searching, etc.). A major emphasis will be given to object-oriented (O-O) programming in Python language, in relation to O-O Design and O-O Analysis.

Textbook(s) / other required material: There is no required textbook for the class. A compilation of lecture notes will be made available via Moodle.

Course objectives (and program outcomes)

By the completion of the course, the students will be able to;

  • Implement algorithms in Python
  • Use debugging tools such as breakpoints, watch windows, call stack
  • Understand commonly used data structures such as arrays, linked lists, trees
  • Analyze worst-case complexity of algorithms
  • Analyze and design complex systems using O-O Analysis and Design concepts
  • Understand and draw class, sequence, collaboration and use case diagrams in UML

Considering these objectives, this course mainly addresses the following student outcomes of the industrial engineering undergraduate program;

  • Student Outcome (c): An ability to design diverse systems including manufacturing, service, logistics, financial and information, to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability
  • Student Outcome (e): An ability to identify, model, formulate and solve industrial engineering problems
  • Student Outcome (k): An ability to use the techniques, skills, and modern engineering tools necessary for industrial engineering practice.

Outline

  1. Introduction, data types, flow control, program structure
  2. Functions, parameters, default parameters, recursion
  3. Class, data hiding, constructors
  4. Object-oriented analysis I: concepts, UML, class diagrams
  5. References, dynamic memory, garbage collection
  6. Inheritance, function overrides
  7. Object-oriented analysis II: use case, sequence, collaboration diagrams
  8. Algorithm analysis, arrays, strings
  9. Linked lists, iterative and recursive algorithms on lists
  10. Binary search trees
  11. B-Trees, Hash Tables, Binary search
  12. List, set, dictionary comprehensions, generator expressions
  13. Some commonly used packages (e.g. Pandas, NumPy)

Grading

  • Homework / Quiz: 15%
  • Midterm (in-class): 20%
  • Project: 40%
  • Final (in-class): 25%

Project

Preparing a term project will constitute a major portion of the expected course work. Teams of 2-3 students will be responsible of

  • writing a proposal to develop a software in Python,
  • writing an analysis report,
  • writing a design report,
  • and finally, developing the software and the appropriate user documentation.

Each team is required to work independently and create an original software product. Students that do not satisfy this requirement or get excessive help during the project will receive zero as the project grade and will not be allowed in the final exam.

buie201-spring2023-lectures's People

Contributors

asinkilec avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.