CS 120 Data Structures using Java
An introduction to program design, fundamental data structures, and analysis of algorithms. Includes contiguous and linked lists (stacks, queues, and general lists), search and sort techniques, binary trees, tables, hashing, recursion, and graphs. Three (3) one-hour lectures and one two-hour laboratory per week. Prerequisite: A grade of "C" or better in CS 110. Spring semester.
An examination of logic, sets, functions, and methods of proof as a foundation for the study of mathematics. Other topics covered include mathematical induction, recursive definitions, relations (equivalence relations), elementary number theory, transformational geometry, and some history of mathematics. Prerequisite: Grade of "C" or better in MA 233. Spring semester.
An introduction to computer design and implementation by viewing the modern computer as a hierarchy of levels. The digital logic level, the microarchitecture level, the instruction set architecture level, the operating system machine level, and the assembly language level are all discussed. An integrated labroarory applies the concepts studied through the use of an actual assembler or simulation software. Three one-hour lectures and one two-hour laboratory per week. Spring semester.
Various topics not covered in other computer science courses are researched and discussed. Students consider selected readings, and each makes a presentation and leads a discussion on a chosen topic. Normally taken in the last year of residence. Spring semester.
An introduction to the fundamentals of programming and software development using the object oriented programming language Java and the 3-D modeling program Alice. An integrated laboratory provides experience in programming and algorithmic problem-solving. Topics include computing and object-oriented design methodology, Java fundamentals, modifying objects, control constructs, function usage basics and libraries, programmer-defined functions, parameter passing, arrays, the class construct and object-oriented design, event-based programming, and implementing abstract data types. Three (3) one-hour lectures and one two-hour laboratory per week. Fall semester.
Tthis is the first of a two-semester, six-credit calculus sequence. We begin the first semester by reviewing functions from several perspectives (symbolic, numeric, and graphic). For most of the course we study differential calculus, empahsizing how we can use calculus to understand real-world problems such as police radar detection, laying an oil pipeline around a swamp, and understaning motion. We use computers and calculators extensively, and we also focus on learning how to explain mathematics verbally and in writing. The sequence MA 121-MA 122 is considered to be equivaline to MA 131. Prerequisites: Four years of high school mathematics including precalculus.
A look at some actual applications of discrete mathematics that emphasize such unifying themes as mathematical reasoning, algorithmic thinking, modeling, combinatorial analysis, the kinds of structures used in discrete mathematics, and the use of technology. Possible topics include cryptography, primes and factoring, computer passwords, networking problems, shortest paths, scheduling problems, building circuits, modeling computation, and correctness of algorithms. Three (3) one-hour class periods with a substantial computing component illustrating the technology and the ideas studied. Prerequisite: Grades of ÒCÓ of better in MA 131-232. Fall semester.
This course is intended to be an introduction to the essential core areas of modern cryptography. We begin with a look at historical cryptography and then move into more modern concepts. Mathematical background is provided as needed and informal descriptions of the cryptosystems along with more precise pseudo-code descriptions are given. Algorithms and systems will be illustrated with many examples, and their mathematical underpinnings carefully explained. Because of the heavy use of mathematics made in this course (number theory, discrete mathematics, probability, linear algebra and probably some calculus), this course is cross-listed and may be taken for either mathematics or computer science credit.