Management Information Systems Course Descriptions

In addition to courses in the Core Curriculum, students majoring in Management Information Systems take the following courses:

Programming I: Fundamental Ideas in Computer Science

This course will cover the basics of information technology literacy, including hands-on use of microcomputer applications, principles of digital computers and information technology and an introduction to problem-solving through programming. The algorithmic concepts will be illustrated in Visual Basic and will include the concepts of elementary data types and variables; arithmetic expressions and assignments; program control flow; and using prewritten functions.

The goal of this course is to introduce students to common desktop and database applications and to elements of basic programming and of problem solving using the computer.


Programming II: Introduction to Computer Programming

This course gives students an intensive introduction to programming, as well as experience working with (but not designing) larger systems. Concepts will be illustrated using the Java language. In addition to elaborating on all the concepts from Programming I, this course will introduce the object concept; using and declaring functions (methods); data types and variables including arrays; and the use of standard packages. Some techniques for searching and sorting arrays will be introduced. Basic software engineering concepts will also be introduced, such as the software life-cycle; characteristics of good software; documentation, testing; and coding practices which promote correctness and robustness. The course will include at least one team project. At the end of the course, students will be fluent in the basic concepts of modern programming using an object oriented paradigm, and should have the ability to carry out a simple program development process.


Discrete Structures and Theory

This course will introduce students to discrete mathematical objects useful for computer science and engineering. Topics covered include fundamentals of set theory, graph theory, enumeration, and algebraic structures, with applications in computing. The goal of this course is to provide students with the definitions and basic tools for reasoning about discrete mathematical objects useful for computer science and engineering.


Data Structures and Algorithms

This course will cover fundamental abstract data types and their implementations as data structures, such as lists and trees, as well as asymptotic analyses of algorithms involving these data structures. Students will also learn about searching (dictionaries, priority queues, and hashing); sorting (internal and external); graphs and algorithms on graphs (shortest path, minimum spanning trees); and pattern matching. The main goal of this course is to introduce students to the basic data structures needed to efficiently implement common programming problems. Students will also learn to analyze the run-time of the algorithms that manipulate these data structures.


Software Engineering

This course covers the fundamentals of software engineering with a focus on the software life cycle and developing quality software as a team. Topics covered include requirements, specification, design, quality assurance and testing, process, as well as tools and environments. The course will include a programming project in which teams of 4-6 students take a high-level concept provided by the instructor from requirements through implementation.

This course will introduce students to the basics of software engineering, focusing on life cycle, team and technical activities.


Operating Systems and Systems Administration

Topics relating to the principles of operating system design will include process management, memory management, auxiliary storage management, and resource allocation. Topics relating to the administration of operating systems will include installation, configuration, systems management and applications support. The course will include a team project.

The goal of this course is to provide students with an understanding of the issues confronting the design and management of an operating system. Students will also develop skills in concurrent programming.


Database Management

This course provides a comprehensive overview of database systems. Students will learn the fundamentals of data access and file systems, including hierarchical, network, relational and object oriented data models. The course will cover the elements of relational database design, data query languages, services such as data protection and integrity control, and database management. The course will provide a balance of theory and practical application and will culminate in a database implementation project conducted by teams of students.

This course will provide a basic introduction to the concepts of database system design and implementation including data models, query languages and transaction processing.


Human Computer Interaction

This course covers topics in human-computer interaction, including user-centered design, user interface software architecture, rapid prototyping and iterative design, and evaluation techniques. The goal of this course is to introduce students to tools and skills that can be applied to the process of user interface design.


Web Technologies

This course will cover the central concepts and technologies related to the World Wide Web. Topics covered will include basic and advanced HTML, scripting and active pages, design and developing Web-based applications, principles and tools for Web content creation, database fundamentals for the Web, security, and e-commerce basics. The primary goal of this course is to introduce many of the technologies and skills needed to design, develop, and deploy effective Web sites.


Networks and Distributed Computing

This course introduces the underlying principles of computer network design, from the physical layer up through data transport protocols. Methods and mechanisms for constructing distributed computing systems and network services are discussed in the context of common Internet systems such as electronic mail, print and file servers and Web services. The goal of this course is to provide students with an understanding of how to construct large-scale computer networks.



An introduction to e-Commerce principles, technologies and applications. This course also develops understanding of the problems and requirements of Internet security, and the corresponding solutions. Protocols to ensure secure transactions and e-commerce protocols based on encryption techniques will also be studied.


Advanced Database Systems

This course will address the advanced issues in modern database management systems design principles, techniques and applications. Databases underlie most complex computing systems. Major applications include enterprise integration.


Financial Accounting

This course will cover the basic concepts of financial accounting, including the construction of financial statements and the various uses that outsiders, such as investors and creditors, make of them. Material will be presented in lecture form supplemented with examples from the popular press. Lectures will typically be followed by class discussions of one or two accounting problems that focus on the "big picture" and illustrate the uses and misuses of financial reports. Students will become familiar with the various components of financial statements and with basic financial statement analysis skills.


Managerial Accounting

This course introduces students to the concepts, theory and application of the control functions of management with regard to financial management decisions and long term planning. Beginning with the basics of cost accounting, the course will cover alternative costing systems; determining relevant costs, revenues and profits; how to make outsourcing and capital budgeting decisions; and internal and transfer pricing. Students will learn how to use financial information to identify and analyze alternative projects to be to undertaken by the firm or business unit in order to optimize profitability.



This survey course will cover issues related to the philosophy of marketing, developing marketing strategy, and planning marketing tactics. The treatment will be from a practical perspective with emphasis on managerial decision-making. The course consists of lectures, case analyses and participation in a marketing simulation. It is designed to provide students with an understanding of the basic concepts of marketing management, and to give students experience in making marketing decisions.


Operations Management

This course introduces students to concepts and techniques related to the design, planning, control, and improvement of service and manufacturing operations. It covers topics in process analysis, quality program implementation and management, inventory and supply chain management, and operations strategy. The course consists of lectures and case analyses.

The goal of this course is to make students conversant in the language of operations management, provide them with the quantitative and qualitative tools needed to analyze basic operations issues, and enable them to see the role of operations management in the overall strategy of the firm.


Competitive Strategy

Among the critical tasks facing senior managers are the creation, implementation, and evaluation of a business unit's strategy. This course seeks to provide the management student with tools and frameworks essential to carrying out these tasks. Many of these tools and frameworks will be based on recent advances in game theory, industrial organization, and organization theory, although the course will also draw from the older business policy tradition as well. Students who successfully complete this course will be able to analyze industries, identify areas of strategic advantage and disadvantage, and to devise strategies that exploit advantages and remedy disadvantages.



Students must select one of three possible ways to fulfill their thesis requirement.


(1) Entrepreneurship

This course is fundamentally about how to start a scalable business. Scalable businesses are those that can be expected to develop into complex enterprises. By focusing on businesses that have significant growth potential, this course challenges students to think through many aspects of running an enterprise. The unifying framework for this course will be a class project in which students work in teams to write business plans intended to attract support from venture capitalists and other investors. Students will also be required to make oral presentations to potential investors. The course places a heavy emphasis on case studies and discussions with business leaders. Entrepreneurial teams can consist of both business and computer science students.


(2) Applied Project

In this course, students will work individually or in teams on a real-life project at a firm operating in Ghana. Students will be assigned a faculty advisor. Business students will typically be required to write up a case study that adds to the body of knowledge about doing business in Ghana and Africa. Computer Science students may work on specific software or information technology projects for companies operating in Ghana or abroad. In addition to a written report, students will be required to make oral presentations to their peers, faculty advisors, and their host companies. Teams working on applied projects can consist of both business and computer science students.


(3) Research Project

In this course, students will work individually or in teams on original research in their area of interest. Students will be assigned a faculty advisor at Ashesi, but may in addition work with faculty living abroad via electronic correspondence. In addition to a written report, students will be required to make oral presentations to their peers and faculty advisors.