Computer Science (CS)
This course teaches introductory skills in computer programming using a high-level computer programming language. There is an emphasis on both the principles and practice of computer programming. Covers principles of problem solving by computer and requires completion of a number of programming assignments. Lecture: 3.0 credits (45 contact hours).
The course covers introductory object-oriented problem solving, design, and programming engineering. Fundamentals elements of data structures and algorithm design will be addressed. An equally balanced effort will be devoted to the three main threads in the course: concepts, programming language skills, and rudiments of object-oriented programming and software engineering. Lecture: 4.0 credits (60 contact hours).
Software engineering topics include: life cycles, metrics, requirements specifications, design methodologies, validation and verification, testing, reliability and project planning. Implementation of large programming projects using object-oriented design techniques and software tools in a modern development environment will be stressed. Lecture: 3.0 credits (45 contact hours).
Characteristics of a procedure-oriented language; description of a computer as to internal structure and the representation of information; introduction to algorithms. Emphasis will be placed on the solution of characteristic problems arising in engineering. Lecture: 2.0 credits (30 contact hours).
This course provides an introduction to computer systems and explores computer architecture, operating systems, and networks from a programmer's perspective. The course also introduces advanced programming and debugging tools. Topics include hardware instruction sets, machine language and C language program representations, linking/loading, operating systems (process management, scheduling, memory management, interprocess communication, and file systems), network programming (socket programming and web protocols), and common security attacks and solutions. Lecture: 3.0 credits (45 contact hours)
Topics in discrete math aimed at applications in Computer Science. Fundamental principles: set theory, induction, relations, functions, Boolean algebra. Techniques of counting: permutations, combinations, recurrences, algorithms to generate them. Introduction to graphs and trees.