Compiler and Algorithm Design

ESOF3251
Closed
Lakehead University
Thunder Bay, Ontario, Canada
Ayman Diyab
Assistant Professor
(3)
4
General
  • Undergraduate; 3rd year
  • 15 learners; teams of 2
  • 40 hours per learner
  • Dates set by experience
  • Learners self-assign
Preferred companies
  • 1 projects wanted
  • Thunder Bay, Ontario, Canada
  • Academic experience
  • Any
  • Any
Categories
General Software development Databases Hardware
Skills
algorithms parsing automata theory regular expressions search algorithms algorithm design online communication sorting algorithm dynamic programming np hard
Project timeline
  • October 25, 2022
    Experience start
  • November 19, 2022
    Project Scope Meeting
  • December 7, 2022
    Experience end
Overview
Details

Looking to elevate your organization, and bring it to the next level? Bring on students from Lakehead University to be your student-consultants, in a project-based experience. Students will work on one main project over the course of the semester, connecting with you as needed with virtual communication tools.

Students in this program focus on major concepts of compiler and algorithm design. Topics include: regular expressions, automata theory, syntactical analyzers, context free grammars and parsers, algorithms complexity, asymptotic analysis, summations, recurrences, intractability and NP-hard problems, sorting algorithms, searching algorithms, dynamic programming and greedy algorithms.

Learner skills
Algorithms, Parsing, Automata theory, Regular expressions, Search algorithms, Algorithm design, Online communication, Sorting algorithm, Dynamic programming, Np hard
Deliverables

Deliverables are negotiable, and will seek to align the needs of the students and the organization.

Some final project deliverables might include:

  1. A 10-15 minute presentation on key findings and recommendations
  2. A detailed report including their research, analysis, insights and recommendations
Project Examples

Students in groups of 3-5 will work with your company to identify your needs and provide actionable recommendations, based on their in-depth research and analysis.

Project activities that students can complete may include, but are not limited to:

  • Demonstrate a good understanding of the fundamental of parsing theory (regular expressions, deterministic finite automata, grammars, and grammar transformation techniques).
  • Algorithm complexity theory and the ability to carry out simple asymptotic analysis of algorithms, Polynomial/Non-Polynomial time/space complexity, tractable/intractable algorithms
  • Discuss the design of a compiler including its phases and components.
  • Design, implement and test a simple compiler (scanner, parser and code generator).
  • The use of front-end and back-end CASE tools.
  • The use of software development platforms.
  • Ability to develop and present a technical presentation with good use of audio-visual aids and clear logical language.
  • Ability to keeps the audience engaged throughout the presentation and to answer questions with confidence.
Additional company criteria

Companies must answer the following questions to submit a match request to this experience:

A representative of the company will be available to answer questions from students in a timely manner for the duration of the project.

A representative of the company will be available for a pre-selection discussion with the administrator of the course to review the project scope.