SOFTWARE ENGINEERING I
Course covers process models, agile methods, requirement analysis,
design,
testing, usability, configuration management and project management.
SOFTWARE ENGINEERING II
Course covers advanced agile methods, advanced testing concepts,
deployment
and maintenance. Includes significant senior collaborative design experience.
DATA STRUCTURES AND ALGORITHMS | C++
Abstract data types and fundamental data structures including stacks,
queues, and trees; algorithms to search, sort, and manipulate data using such structures; and
introduction to runtime analysis.
OBJECT-ORIENTED PROGRAMMING AND DESIGN | JAVA
Theory and practice of object-oriented programming and design.
Encapsulation, inheritance, dynamic binding, and polymorphism; and introduction to UML and design
patterns.
DESIGN OF ALGORITHMS | C++
Advanced data structures and applications, problem solving
strategies,
heuristics, and complexity of algorithms.
DATABASE MANAGEMENT SYSTEMS
Organization and management of large data files; data definition;
database
models; query languages; crash recovery; concurrency control; and case studies.
PROFESSIONALISM, COMMUNICATION AND RESEARCH IN COMPUTING
Social, ethical, and career aspects of computing. Written, oral, and
audio-visual communication in computer science; presentation techniques, report preparation, and
technical correspondence. Introduction to research in computing.
COMPUTER ORGANIZATION AND ASSEMBLY LANGUAGE PROGRAMMING | x86 ASSEMBLY
Computer organization and architecture; machine language; and assembly
language programming techniques.
FOUNDATIONS OF COMPUTER SCIENCE
Application of discrete structures to model computational processes;
techniques for analysis of algorithms; and automata and concepts of language theory.
COMPUTER NETWORKS | C, C++, PYTHON
Data communications and computer networks; network models and
protocols;
local area networks; and data security.
OPERATING SYSTEMS
A historical perspective of operating systems; overview of modern
systems;
processor, storage, and process management; virtual memory; deadlocks; concurrent processing and
programming; protection; and case studies.
COMPUTER ARCHITECTURE
Computer Systems, the CPU, the control unit, microprogramming,
parallel
organization, and RISC architectures.
WEB PROGRAMMING | JS, HTML, CSS, CRUD
Development of web applications with client and server-side technologies. HTML, CSS, javascript, Bootstrap, jquery, REST APIs.
SOFTWARE & SYSTEMS SECURITY | C
Introduction to the characteristics and practices of secure programming, approaches used in the development and deployment of secure web applications, and security assessment of software systems.