Algorithms and Computer Programming with Python

FOR14 Algorithms and Computer Programming with Python

Autumn 2024

  • Topics

    In today's business landscape, a fundamental grasp of algorithms and computer programming has become indispensable for professionals. Although closely related, these concepts differ in their scope and application. An algorithm is essentially a systematic set of instructions aimed at solving a specific problem, while a computer program comprises instructions that a computer executes, inherently bounded by its finite capabilities. This course is designed to equip participants with the ability to conceptualize algorithms and employ programming to implement them effectively.

    The intertwining of algorithms and programming within the business realm is evident across various domains. For instance:

    • Mobile applications serve as both commercial platforms and products, highlighting the fusion of business strategies with technological innovation.
    • In finance, the utilization of advanced algorithms has led to the emergence of high-frequency trading, revolutionizing market dynamics.
    • Modern data analysts are tasked with processing vast volumes of data to extract actionable insights crucial for informed decision-making.
    • Blockchain technology facilitates the creation of smart contracts, leveraging computer programs to automate transactions involving digital assets.

    Across these scenarios, a common thread emerges: the identification of a problem, the application of algorithms to address it, and the delivery of solutions through software applications. While a solid business background is essential for defining objectives and customer requirements, a nuanced understanding of programming capabilities and challenges is equally vital during software design.

    This course aims to provide business students with a basic understanding of the technical aspects underlying digital innovation. By bridging the gap between business acumen and technical proficiency, participants will be empowered to collaborate effectively with computer science professionals and engineers, actively contributing to the development of innovative digital products.

    The curriculum unfolds in three main phases:

    1. Defining business problems and outlining the prerequisites for effective solutions.
    2. Exploring the principles and foundational concepts of algorithms.
    3. Utilizing Python to translate abstract algorithms into functional computer programs.

    Through this structured approach, participants will gain practical insights into leveraging algorithms and programming to tackle real-world business challenges.

  • Learning outcome

    Upon completion of this course, students can:

    Knowledge

    • Exhibit a basic understanding of the fundamental concepts underpinning the development of contemporary digital applications.
    • Identify and comprehend the essential principles within the object-oriented programming framework.

    Skills

    • Demonstrate proficiency in utilizing a computer to implement algorithms effectively.
    • Employ problem-solving strategies to dissect complex issues into manageable sub-problems, devising algorithmic solutions accordingly.
    • Apply standard software practices adeptly, including documentation, debugging, and program testing.
    • Determine optimal input and output specifications for computer programs based on given requirements.
    • Articulate algorithmic solutions to address diverse problem sets effectively.
    • Develop intermediate-level computer solutions and analytical tasks proficiently using Python.

    General competence

    • Communicate proficiently with software development teams, facilitating productive collaboration.
    • Play an active and contributory role in the development lifecycle of software applications, leveraging acquired skills and knowledge effectively.

  • Teaching

    This course employs a blend of traditional lectures, hands-on computer workshops, and online resources to enhance the learning experience for students. To effectively meet the course's learning objectives, students are encouraged to engage in intensive individual study and practice.

    The course is designed to be conducted on campus, with students attending in person.

  • Recommended prerequisites

    No prerequisites are required to take this course. It is suggested as a complement to MET3 and SOL17.

    This course is an introduction for students to the fundamental concepts of algorithms and programming, as such it is self-contained and requires no previous knowledge. 

  • Credit reduction due to overlap

    None.

  • Compulsory Activity

    During the semester there will be 3 mandatory practice home assignments.

  • Assessment

    4 hours digital school exam. The exam must be answered in English.

    Retake: compulsory activity from a previous semester is valid for the exam.

    An assessment will not be organised in the the non-teaching semester (spring).

  • Grading Scale

    A - F

  • Computer tools

    The course will use Python, which is open source. Details regarding the installation of different packages and additional tools will be provided at the beginning of the semester.

  • Literature

    Course textbook:

    • Python for everyone, 3rd edition, by Cay Horstmann and Rance Necaise, Wiley.

    Suggested readings:

    • Python tutorial online: https://docs.python.org/3/tutorial/

  • Permitted Support Material

    Calculator 

    One bilingual English-Norwegian dictionary (Category I). 

    All in accordance with Supplementary provisions to the Regulations for Full-time Study Programmes at the Norwegian School of Economics Ch.4 Permitted support material https://www.nhh.no/en/for-students/regulations/https://www.nhh.no/en/for-students/regulations/ and https://www.nhh.no/en/for-students/examinations/examination-support-materials/https://www.nhh.no/en/for-students/examinations/examination-support-materials/  

Overview

ECTS Credits
7.5
Teaching language
English
Semester

Autumn. Offered autumn 2024

Course responsible

Associate Professor Julio C. Góez, Department of Business and Management Science.