20000

CSC 21000 Computers and Assembly Language Programming

Computer structure, machine representation of data, addressing and indexing, computation and control instructions, assembly language and assemblers; procedures (subroutines) and data segments, linkages and subroutine calling conventions, loaders; practical use of an assembly language for computer implementation of illustrative examples.

Credits

3

Prerequisites

CSC 10300.

Contact Hours

3 hr/wk.

CSC 21100 Fundamentals of Computer Systems

Fundamentals of computer organization and digital logic. Boolean algebra, number systems and codes, combinational logic design principles, basic gates and components, flipflops and latches, counters and state machines. Assembly language and assemblers; procedures and data segments, linkages and subroutine calling conventions, loaders; practical use of an assembly language.

Credits

3

Prerequisites

CSC 10300 or department permission.

Contact Hours

3 lect. 2 lab. Hrs/week

Notes

Computer Engineering students who have completed CSC 21000 and EE 21000 are considered to have met the requirements of equivalency to CSC 21100.CSC 21100: Fundamentals of Computer Systems

CSC 21200 Data Structures

Extension of the knowledge of algorithm design and programming gained in CSC 10300 with continuedemphasis on the logic underlying the transition from specification to program. Particular attention is paid to issues arising in the implementation of larger programs: introduction of data structures and data abstraction; the basics of object-oriented programming. Introduction of recursion as a design tool. Introduction of complexity analysis.

Credits

3

Prerequisites

CSC 10300 and CSC 10400.

Contact Hours

2 class, 2 rec. hr./wk.

CSC 21700 Probability and Statistics for Computer Science

Overview of applicable discrete and stochastic foundations: combinatorics, probability, and Monte Carlo methods. Descriptive statistics for data analysis. Random variables, mathematical expectation. Study of the constant density and random number generator, normal, exponential, as well as Bernoulli, Binomial and Poisson distributions. Limit theorems and sample statistics. Foundations of discrete event simulation, computational examples.

Credits

3

Prerequisites

CSC 10300, CSC 10400, and MATH 20100 (min. C grade).

Contact Hours

3 hr./wk.

CSC 22000 Algorithms

Measuring algorithmic complexity (O-Notation); searching and sorting algorithms and their complexity; tree and graph algorithms and their complexity; classes of algorithms, such as divide-and-conquer, backtracking, greedy, probabilistic, etc. Computational complexity; the classes P and NP.

Credits

3

Prerequisites

CSC 21200.

Contact Hours

3 hr./wk.

CSC 22100 Software Design Laboratory

Accelerated introduction to Java programming language and its standard library usage. The course covers coding principles, graphic user interface, event-driven programming, design patterns, security issues, and network and mobile computing capabilities. This course also introduces application development under the Android mobile operating system. A small-scale, team-based application development including software specifications and unit and user testing is required.

Credits

3

Prerequisites

CSC 21200 and ENGL 21007, or ENGL 21001 or ENGL 21002 or ENGL 21003.

Contact Hours

3 hr./wk.