News |  Highlights  |  Media  |  Calendar  |  Search

CS Course Descriptions

COURSE DESCRIPTIONS

ENGL 101: (3) English I

The goal of the course is to develop college skills of reading, writing and critical thinking, to know how to select a topic, explore and organize ideas, use vocabulary efficiently, use correct grammatical structures and write an essay ranging between three to five paragraphs.  

ENGL 102: (3) English II

PR: ENGL 101

The goals of the course include: Locating materials through observation, analysis and critical reading, developing a focused thesis statement, developing well-structured paragraphs composed of an introduction, a body and a conclusion. Use of summarizing and paraphrasing skills.

ENGL 201: (3) Writing Skills

PR: ENGL 102

The goals of the course include: Locating materials for a research topic, using library and internet resources, summarizing articles and books, using quotation and source citation for professional papers, using inductive and deductive reasoning, developing the skills of scientific argumentation, persuasion, evaluation and criticism needed for a research paper.

ENGL 202: (3) Communication & Presentation Skills

PR: ENGL 201

This course helps students learn and practice the skills of interpersonal and professional communication. Psychological, social, cultural and linguistic aspects of communication are considered. Attention is given to human perceptions, interpersonal dynamics, patterns of inference, the arts of listening and convincing, as well as to the value of verbal and visual symbols. The course also helps students improve their skills in oratory, argumentation and public presentation.

CSCI 101: (3) Computer & Information Skills

The goal of the course is to help the student develop the basic research and information technology skills needed to succeed in their academic and later professional careers. These skills include defining information needs, efficient use of web resources, managing data, basics of data bases, effective research methodologies, and evaluation of research results and communicating these results in electronic form –via programs such as, but not limited to, WORD, POWERPOINT, EXCEL and ACCESS.

MATH 111: (4) Analytical Geometry & Calculus I

The course starts with a review of the basics of Analytical Geometry: the Cartesian coordinate system, distance, slope, equation and graph of a line and curve sketching. The calculus part covers functions, limits, derivatives, polynomials, rate of change, L'Hospital's Rule, higher derivatives, Mean Value Theorem, related rates, maximum and minimum, differentiation formulas, the differential and related applications.

MATH 201: (3) Introduction to Probability & Statistics

PR: MATH 111

This course takes a non-calculus approach to probability and statistics; topics include permutations and combinations, independence, random variables, events, measures of location and variability, joint and conditional probability. The course also introduces descriptive and inferential statistics, including graphical methods and data description.

HUMA 101: (2) Introduction to Logic, Critical Thinking

The course is a study of the processes by which the intellect conceptualizes, applies, analyzes, synthesizes, and evaluates the information it gathers from observation, experience, reflection, reasoning and communication. The course also examines the elements of thought implicit in reasoning, such as assumptions; concepts, conclusions, implications, consequences and frame of reference. Problems of moral philosophy and moral judgments, such as cultural relativism and subjectivism are also addressed. Theoretical approaches for answering questions about right and wrong are considered.

HUMA 102: (1) Introduction to Ethics

The emphasis of the course is on ethical issues and problems that arise in professional and business environments, such as integrity, civic responsibility, ethical conduct and misconduct, employee and corporate rights and responsibilities, and on issues concerning social and economic justice in a global economy.

NSCI 102: (3) Selected Topics in Natural Sciences

A course in any of the fields of physics, chemistry, biology, geology, or environmental science.

SSCI 103: (3) Selected Topics in Social Sciences

A course in any of the fields of sociology, economics, education, history, anthropology, psychology, or geography.

HUMA 103: (3) Selected Topics in Humanities and Arts

A course in any of the fields of Literature, Philosophy, Art, Music, or Sports.

NSCI ***, SSCI *** or HUMA ***: (3) General Knowledge Elective

An additional course to be chosen from one of the above three General Knowledge categories: Natural Sciences, Social Sciences and Humanities & Arts.

SSCI 101: (3) Selected Topics in Egyptian and Arab Heritage

A course highlighting aspects of the extraordinarily rich Ancient Egyptian, Coptic and Islamic heritage of Egypt.

SSCI 102: (3) Selected Topics in World Cultures and Diversity

This course exposes students to World Cultures both from a historical and a contemporary point of view. The course focuses on issues of globalization such as nationalism, struggle for identity and the conflicts caused by migration, racism, religious fundamentalism and terrorism. The course also emphasizes the positive aspects of multicultural societies, such as the sharing of resources and information and the increased understanding among the peoples of the world.

COMM 401: (3) Internship & Service Learning

Student internships provide on-the-job training opportunities to students that help them gain experience in their fields, develop an interest in a particular career, and create a network of contacts. Service-learning enriches learning by engaging students in meaningful service to their communities. Students apply academic skills to solving real-world problems and linking their learning with genuine needs. They also learn to apply critical thinking and problem-solving skills to global concerns such as hunger, pollution, and diversity. Students spend a full month of non-lecture time on their internship/service learning activity and submit a report at the end.

 

COMPUTER sCIENCE CORE REQUIREMENTS

MATH 112: (4) Calculus II

PR: MATH 111

Translation and rotation of axes, conic sections (properties of conic sections- parabola, ellipse, hyperbola), Cartesian, cylindrical and polar spherical coordinates.

Integral calculus: definite and indefinite integrals, integration methods and applications of integration, integration by substitution and by parts, Integration by trigonometric substitution and partial fractions; arc length; improper integrals; Simpson's and Trapezoidal Rules for numerical integration. Functions of several variables and multiple integrals.

MATH 210: (3) Calculus III

PR: MATH 112

Sequences and series (including power series). Vectors and planes. Surfaces. Partial differentiation. Introduction to double integrals (including double integrals in polar coordinates).

MATH 211: (3) Discrete Mathematics

PR: MATH 111

Sets, sequences, integers. Basic propositional and predicate logic. Methods of proof (including mathematical induction). Combinatorics, functions, relations and digraphs. Matrices and boolean matrices. Graphs and trees.

MATH 203: (4) Differential Equations

PR: MATH 112

Separable differential equations, first order linear differential equations, homogeneous second order linear differential equations with constant coefficients, series solution, Newton's method, Taylor's Theorem. First-Order, Second-Order and Higher-Order Linear Differential Equations, partial differential equations, and Laplace transforms.

MATH 301: (4) Linear Algebra

PR: MATH 203

Matrices and Gaussian elimination, Vector Spaces, Vector calculus, Orthogonality, Determinants, Eigenvalues and Eigenvectors, Positive definite matrices, Computations with matrices, Linear programming and Game theory.

PHYS 101: (4) Physics I

PR: MATH 111

Measurements: Standards of length, mass, and time, dimensional analysis, the International system of units SI, conversion of units. Mechanics: Newton’s laws and applications, potential and kinetic energy, satellite motion and Kepler’s laws. Electrostatics: electric charge and Coulomb’s law: insulators and conductors, electrostatic field, Gauss’ law, potential, potential energy, dielectrics and capacitances, displacement vector, energy stored in the electrostatic field. Electrodynamics: electromotive force, voltage, electric current, resistance, Ohm’s law, electric power, direct current circuits, Kirchhoff’s laws, multi loop circuits. Magnetism: magnets, magnetic field, force on a current-carrying conductor, Ampere’s law and applications, induction, Faraday’s law, Lenz’s law, inductors, energy stored in a magnetic field, mutual induction, magnetism of matter. Relevant lab experiments will be conducted.

ECEN 101: (3) Electric Circuits

PR: PHYS 101 or Concurrent

Basic electrical concepts and network theorems, circuit laws, resistance, capacitance, inductance; response of RC, RL and RLC circuits to initial conditions and constant forcing functions; AC steady-state analysis and AC power. Computer applications (using SPICE or similar tools).

CSCI 201: (3) Introduction to Programming

Introduction to the process of program design and analysis using the C ++ and the Java programming languages. The course provides basic understanding of programming concepts; constructs, data types, looping, nesting, functions, arrays, objects and classes. The topics also include good programming practices, modularity, reusability and ease on maintenance.

CSCI 205: (3) Introduction to Computer Systems and Assembly Language Programming

PR: CSCI 201 or Concurrent

This course provides a programmer's view of how computer systems execute programs, store information, and communicate. It enables students to become more effective programmers, especially in dealing with issues of performance, portability and robustness. It also serves as a foundation for courses on compilers, networks, operating systems, and computer architecture, where a deeper understanding of systems-level issues is required. Topics covered include: machine-level code and its generation by optimizing compilers, performance evaluation and optimization, computer arithmetic, memory organization and management, networking technology and protocols, and supporting concurrent computation.

CSCI 207: (3) Fundamentals of Data Structures & Algorithms

PR: CSCI 201

Fundamental concepts of data structures and algorithms for representing and processing information; including the use of linked lists, stacks, queues, directed graphs and trees, analysis of algorithms, sorting, searching and hashing techniques.

CSCI 217: (3) Advanced Computer Programming and Concepts

PR: CSCI 201

This course presents an advanced view of computer programming, mainly using C++. The key goal of this course is to introduce and study key concepts related to computer programming for scientific and engineering applications. The use of current operating systems (e.g. Linux and UNIX) and compilers (e.g. gcc) will also be presented. Object Oriented Programming will also be discussed in detail. The differences and similarities between Java and C++ will also be discussed. Hands-on programming will be a key part of the course. Comparative study of abstraction, syntax, semantics, binding times, data and sequence control, run-time resources, translators, and storage of programming languages.

CSCI 221: (4) Logic Design (incl. Lab)

This course will include the following topics: Review on number systems: Binary number systems, Number base conversion, Octal and hexadecimal, Negative numbers, Coded number systems; Boolean Algebra: Main operators, Postulates and theorems, Analysis and reduction; Design and implementation of circuits using NAND and NOR gates; Design and implementation of combinational circuits: Adders, Subtractors, Decoders, Encoders, Multiplexers/demultiplexers; Sequential circuits: State table and transition diagram, Flip-flops; Design of sequential circuits: Counters, Shift registers, Memories (ROM, PLA, RAM); Introduction to microprocessors.

CSCI 304: (3) Analysis and Design of Algorithms

PR: CSCI 207 and MATH 211 (discrete mathematics) or Concurrent

Techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics include dynamic programming greedy algorithms, amortized analysis, graph algorithms, graph and tree traversal, and shortest paths. Advanced topics may include network flow, computational geometry, and number-theoretic algorithms.

CSCI 311: (3) Computer Architecture

PR: CSCI 201

This course introduces the basic hardware structure of a programmable computer and the basic laws underlying performance evaluation. The student learns how to design the control and data path hardware for a processor, how to make machine instructions execute simultaneously through pipelining and simple superscalar execution, and how to design fast memory and storage systems. The principles presented in lecture are reinforced in the laboratory through design and simulation of a register transfer (RT) implementations in Verilog.

CSCI 313: (3) Software Engineering

PR: CSCI 207 and CSCI 217 (Advanced Computer Programming and Concepts)

The course covers concepts of software processes, implantation techniques, and project management. It focuses on several aspects of the software lifecycle that have significant influence on the overall quality of the software system including techniques and approaches to requirement engineering, software architecture, software design, quantitative measurement and assessment of the system during implementation, testing, and maintenance, and the role of verification and validation in assuring software quality.

CSCI 315: (3) Operating Systems

PR: CSCI 311 and CSCI 304 (Analysis and Design of Algorithms)

This course provides an overview of fundamental operating system principles, complemented with discussions of concrete modern systems to help you understand how these principles are applied in real OSs. Topics covered include an overview of the components of an operating system, mutual exclusion and synchronization, implementation of processes, scheduling algorithms, memory management and file systems. The course has a strong project component intended to provide essential experience in designing and implementing complex systems and working as part of a team.

CSCI 322: (4) Statistical Analysis

PR: MATH 201 and MATH 203

The probability part of the course covers conditional independence, discrete and continuous distribution functions, and conditional distributions, and the Central Limit theorem. The statistics course covers descriptive and inferential statistics, including graphing data, distributions, estimation and hypotheses testing and correlation analysis.

CSCI 404: (3) Database Systems

PR: CSCI 304 (Analysis and Design of Algorithms)

Data models and database design. Modeling the real world: structures, constraints, and operations. The entity relationship to data modeling (including network hierarchical and object-oriented), emphasis on the relational model. Use of existing database systems for the implementation of information systems.

CSCI 415: (3) Compiler Design and Construction

PR: CSCI 311 and CSCI 304 (Analysis and Design of Algorithms)

Overview of compilers and context-free languages, top-down parsing, LL(1) parser construction, translation grammars, implementation of lexical analyzer, parser and translator, compiler optimization, error handling, and recovery.

CSCI 417: (3) Machine Intelligence

PR: CSCI 304 (Analysis and Design of Algorithms)

The course covers techniques and applications of artificial intelligence and machine learning; representation retrieving and application of knowledge for problem solving. Topics typically include hypothesis exploration, theorem proving, vision, Bayesian learning, decision trees, genetic algorithms, neural networks.

CSCI 419: (3) Theory of Computing

PR: CSCI 304 (Analysis and Design of Algorithms)

Finite automata and regular expressions, context-free grammars and push-down automata, non-determinism. Context-sensitive grammars and the Chomsky hierarchy of grammars. Turing machine and the halting problem. Undecidable problems. Church’s Conjecture and its implications.

CSCI 490: (1) Industrial/Research Training

CS major senior students are expected to get involved in industrial / research training for period of eight weeks minimum in computer science related training in Egypt or abroad. A detailed report followed by discussion is submitted to a departmental committee for evaluation.

CSCI 495: (1) Senior Project I

PR: Completion of 8 Core Courses or concurrent

Group project conducted by students who select project topic according to their subject of interest and the availability of facilities and advisors. Each group carry out necessary research and development work and submit a detailed report. The report is submitted to a departmental committee for evaluation and discussion.

CSCI 496: (2) Senior Project II

PR: CSCI 495 (Senior Project I)

Group project conducted by students who continue work on what is developed in CSCI 4XX (Senior Project I). Each group should develop an integrated, complete and functional computing system or package for evaluation by a departmental technical review committee. Each team is also required to give a public presentation on their project.

COMPUTER SCIENCE ELECTIVE Courses

CSCI 451: (3) Digital Image Processing

PR: CSCI 304 (Analysis and Design of Algorithms) and All CORE MATHS

The course covers image sampling and quantization, color, point operations, segmentation, morphological image processing, linear image filtering and correlation, image transforms, multi-resolution image processing, image compression, noise reduction and image restoration. Emphasis is on the general principles of image processing and practical projects.

CSCI 452: (3) 3D Computer Graphics and Visualization

PR: CSCI 304 (Analysis and Design of Algorithms) and All CORE MATHS

The course provides introduction to the key principles of computer graphics in two and three dimensions. Topics include digital images, geometric transformations, perspective and 3-D viewing, the graphics pipeline, filtering and antialiasing, ray tracing, spline curves and surfaces, and basics of scientific visualization. Emphasis is on the general principles of three-dimensional computer graphics and practical projects.

CSCI 455: (3) Computer Vision Systems

PR: CSCI 417 and CSCI 451 (Image Processing) and CSCI 452 (3D Computer Graphics) and All CORE MATHS and PHYS

The course topics include image processing; segmentation, grouping, and boundary detection; recognition and detection; motion estimation and structure from motion. Emphasis will be on the core vision tasks of scene comprehension and object recognition with practical projects.

CSCI 456: (3) Interactive Multimedia Systems

PR: CSCI 451 (Image Processing) OR CSCI 452 (3D Computer Graphics)

Multimedia data has become an indispensable part of our daily life and modern research projects. It's also one of the critical links in. In this course, students will be introduced to principles and current technologies of multimedia systems, multimedia standards, and gain hands-on experience in this area. Topics to be covered include audio, image, and video acquisition and compression standards (JPEG, MPEG, and ITU families); and networking for multimedia

CSCI 457: (3) Mixed and Augmented Reality

PR: CSCI 456 (Interactive Multimedia Systems) and CSCI 452 (3D Computer Graphics) or Concurrent

Augmented Reality is the concept of overlaying computer-generated information on top of the physical world whereas Mixed Reality is a broader field that includes Augmented Reality, Augmented Virtuality, and Virtual Reality. The course provides an introduction to these novel interface technologies for interacting with computers, with an emphasis on methods for designing and developing effective 3D user interfaces.

CSCI 458: (3) Serious Computer Games

PR: CSCI 452 Computer Graphics and CSCI 451 Image Processing

This course keeps students with the state of the art in the new gamification world. The course introduces the basic concepts of game design, game elements, game development, game evaluation, challenges, complexities, as well as game economics. The students have to bridge the gap between the interdisciplinary areas of engineering, computer sciences and arts. Students have to examine the power of serious games to deliver transformational learning experience in various applications. This is in addition to exploring the social, cultural and emotional effects in the gamification industry.

CSCI 461: (3) Introduction to Big Data

PR: CSCI 304 (Analysis and Design of Algorithms)

The capability of collecting and storing huge amounts of versatile data necessitate the development and use of new techniques and methodologies for processing and analyzing big data. This course provides a comprehensive coverage of a number of technologies that are at the foundation of the Big Data movement. The Hadoop architecture and ecosystem of tools will be of special focus to this course.

CSCI 462: (3) Computational Intelligence

PR: CSCI 417 and All CORE MATHS and PHYS

Computational Intelligence (CI) an artificial intelligence domain focusing on heuristic algorithms such as neural networks, fuzzy systems and evolutionary computation. Furthermore, Computational Intelligence encompasses elements of learning, adaptation, heuristic and meta-heuristic optimization techniques. Computational Intelligence have been successfully employed in a wide range of application areas including decision support and classification, consumer electronic devices, and stock market among others. The course will focus on providing the core foundation of computational intelligence to prepare students for a career in computing/engineering, or pursue further research in computational intelligence.

CSCI 463: (3) Introduction to Computer Networks

PR: CSCI 304

This course introduces the fundamental concepts of data networks. Underlying engineering principles of computer networks and integrated digital networks are discussed. Topics include: data networks overview; OSI layers; data link protocol; flow control, congestion control, routing; local area networks (Ethernet, Token Ring and FDDI); transport layer; Introduction to high-speed networks and performance evaluation techniques.

CSCI 464: (3) Numerical Methods and Math Precision

PR: CSCI 207

Introduction to numerical methods; numerical differentiation, numerical integration, solution of ordinary and partial differential equations. Consequences of limited precision computing. Students write programs in C++, C, or MATLAB using methods presented in class.

CSCI 465: (3) Introduction to Parallel Computing

PR: CSCI 207

Introduction to parallel computing for scientists and engineers. Shared memory parallel architectures and programming, distributed memory, message-passing data-parallel architectures, and programming.

CSCI 467: (3) Big Data Analytics

PR: MATH 301 and CSCI 417

Proper management and analysis of huge amounts of data from different sources has become crucial for appropriate decision making within any organization. Nevertheless, the task is challenging and requires special knowledge and skills to be accomplished. This has put data mining and data analytics as key study fields that give the students the required skills for extracting meaningful information from massive datasets. This course presents a number of techniques, methods and tools that can be used for mining and analysis of large datasets. The course will introduce the core concepts of data mining and its techniques and implementation. Feature extraction, dimensionality reduction, clustering techniques such as k-means and support vector machines will be also presented. Special focus will be given in this course to practical business problems and solutions.

CSCI 471: (3) Introduction to Bioinformatics

PR: CSCI 304 (Analysis and Design of Algorithms) and All CORE MATHS and PHYS

In this course, students learn fundamental concepts and methods in bioinformatics, a field that combines computer science and mathematics, supported by information technology, to solve previously intractable problems in the life sciences. The course covers a wide range of topics including DNA sequencing and assembly, sequence alignment, gene prediction, functional genomics, phylogenetics, and network/systems biology.

CSCI 472: (3) Signal Processing

PR: ECEN 101

The course addresses the mathematics, implementation, design and application of the digital signal processing algorithms used in areas such as multimedia telecommunications and speech and image processing. Topics include discrete-time signals and systems, discrete-time Fourier transforms, Z- transforms and fast Fourier transform, digital filter design and implementation, and multi-rate signal processing. The course also includes introductory discussions of 2-dimensional signal processing, linear prediction, adaptive filtering, and selected application areas. Lectures are supplemented with exercises using MATLAB.

CSCI 475: (3) Embedded Real-Time Systems

PR: CSCI 207

This practical hands-on course introduces the various building blocks and principles behind embedded real-time systems. The course covers the integrated hardware and software aspects of embedded processor architectures, along with topics such as real-time, resource/device and memory management, interaction with devices (buses, memory architectures, memory management, device drivers), concurrency (software and hardware interrupts, timers), real-time principles (multi-tasking, scheduling, synchronization), implementation trade-offs, profiling and code optimization (for performance and memory), embedded software (exception handling, loading, mode-switching, programming embedded systems). Through a series of laboratory exercises with state-of-the art embedded processors and industry-strength development tools, students will acquire skills in the design/implementation/debugging of core embedded real-time functionality.

CSCI 469: (3) Selected Topics in Big Data and Data Science

This course is tailored to introduce students to the latest advances in the various fields in Big Data and Data Science, and/or to focus on a specific area of particular interest to the discipline.

CSCI 459: (3) Selected Topics in Media Informatics

This course is tailored to introduce students to the latest advances in the various fields in Media Informatics, and/or to focus on a specific area of particular interest to the discipline.

CSCI 479: (3) Selected Topics in Computer Science

This course is tailored to introduce students to the latest advances in the various fields in computer science, and/or to focus on a specific area of particular interest to the discipline.