This course is an introduction to procedural and object-oriented programming methodology. The course allows the student to learn and apply the basic language syntax and principles of object-oriented programming to solve computational problems adhering to the standards and guidelines of documentation using java programming language. Topics include program structure, conditional and iterative programming, procedures, arrays and records, object classes, file I/O, and exceptions. It further discusses the concepts and characteristics of object-oriented technology (on encapsulation, inheritance, polymorphism and abstraction). The student is expected to develop a records management system integrating the concepts and principles of object-oriented programming.
This course is the second sequence of discrete structures with an emphasis on applications to computer science concentrating on sequences and recursion, number theory and graph theory. The topics shall develop mathematical foundations in preparation to a more specialized computer science course.
This course examines the important problems in operating system design and implementation. The course will start with a brief historical perspective of the evolution of operating systems over the last fifty years and then cover the major components of most operating systems. This discussion will cover the tradeoffs that can be made between performance and functionality during the design and implementation of an operating system. Particular emphasis will be given to three major OS subsystems: process management, memory management, and file systems; and on operating system support for distributed systems.
This course is the introduction and overview of basic computer organization. Topics include Computer arithmetic: binary, hexadecimal and decimal number conversions, binary number arithmetic and IEEE binary floating-point number standard. Basic computer logic: gates, combinational circuits, sequential circuits, adders, ALU, SRAM and DRAM. Basic assembly language programming, basic Instruction Set Architecture (ISA), and the design of single cycle CPU. Students are expected to develop a computer program simulating how to solve a particular problem using concepts in basic assembly language programming.
This course provides an in-depth exploration of modeling and simulation techniques using the Python programming language. Through a hands-on approach, students will learn to create and analyze dynamic models of real-world systems, ranging from physical phenomena to complex socio-economic interactions. The course covers fundamental concepts of modeling, discrete and continuous simulations, data analysis, and visualization. Students will gain practical experience in translating real-world scenarios into computational models. By the end of this course, students are expected to possess the skills necessary to develop, simulate, and interpret various models, enabling them to make informed decisions and predictions in diverse fields.
course covers the standard data representation and algorithms to solve
computing problems efficiently (with respect to space requirements and time
complexity of algorithm). This covers the following: Lists, Stacks, Queues,
Trees, Graphs. Thorough discussion of searching, sorting and hashing. At the
end of this course, the students are expected to create a narrative video that
tackles real-life example of data structure and algorithms.
course provides an introduction to algorithms and complexity at the
undergraduate level. The course will cover the most important algorithmic
techniques as well as methods for analyzing algorithm performance. The major
topics will include algorithms such as brute force, greedy, divide-and-conquer,
dynamic programming, and iterative improvement. Algorithm limitations will also
be discussed including NP-completeness, approximation algorithms, and
randomized algorithms. Students are expected to conduct an analysis report as
an evaluation of the algorithms they have chosen to help solve the given
This course is designed to give an introductory knowledge to conduct a systematic investigation of a problem, which focuses on business processes that can be solved using Computing. They will gain overview of research intent and design, methodology and technique, format and presentation, and data management and analysis informed by commonly used statistical methods. The course will develop each student’s ability to use this knowledge to become more effective research and development computing professionals.
This course introduces the underlying concepts behind networking using the Internet and its protocols as examples. The goal of the course are (1) to give an understanding of how networks, especially the Internet, work, (2) to give experience with large scale systems, and (3) to teach network programming. Topics cover the first five chapters of Kurose in detail, down the network stack from the application layer to the data-link layer. Concurrent with the lectures, will be building a functional TCP/IP stack and a small web server that will run on it.