Saturday, April 17, 2010

computer language concepts

Computer science concepts
linux tutorial
Unix tutorial
CS 1101. Introduction to Program Design.

Cat. I
This course introduces principles of computation and programming with an emphasis on program design. Topics include design and implementation of programs that use a variety of data structures (such as records, lists, and trees), functions, conditionals, and recursion. Students will be expected to design, implement, and debug programs in a functional programming language.
Intended audience: students desiring an introduction to programming and program design.
Recommended background: none. Either CS 1101 or CS 1102 provide sufficient background for further courses in the CS department. Undergraduate credit may not be earned for both this course and CS 1102.
Undergraduate credit may not be earned both for this course and for CS 2135.

CS 1102. Accelerated Introduction to Program Design.

Cat. I
This course provides an accelerated introduction to design and implementation of functional programs. The course presents the material from CS 1101 at a fast pace (so students can migrate their programming experience to functional languages), then covers several advanced topics in functional programming (potential topics include macros, lazy programming with streams, and programming with higher-order functions). Students will be expected to design, implement, and debug programs in a functional programming language.
Intended audience: students starting with substantial previous programming background.
Recommended background: prior programming background covering lists, trees, functions, and recursion.
Undergraduate credit may not be earned for both this course and CS 1101. Undergraduate credit may not be earned both for this course and for CS 2135.

CS 2011. Introduction to Machine Organization and Assembly Language.

Cat. I
This course introduces students to the structure and behavior of digital computers at several levels of abstraction. Using a bottom-up approach, the course starts by examining logic gates and digital circuits. The student is then introduced to virtual machines at successively higher levels of abstraction, beginning with the Von Neumann model of execution, and progressing through machine language, assembly language, and high-level languages. Topics include the functional organization of computer hardware, the functions of assemblers, linkers, and loaders, representations of numbers in computers, basic assembly language instruction sets, addressing modes, stacks and procedures, low-level I/O, concepts and examples of microprogramming, and logic circuits.
Students will be expected to design, implement, and debug programs in an assembly language.
Intended audience: computer science students, and those desiring a deeper understanding of the low-level functionality of a computer.
Recommended background: CS 2303 or CS 2301.

CS 2022/MA 2201. Discrete Mathematics.

Cat. I
This course serves as an introduction to some of the more important concepts, techniques, and structures of discrete mathematics, providing a bridge between computer science and mathematics.
Topics include functions and relations, sets, countability, groups, graphs, propositional and predicate calculus, and permutations and combinations.
Students will be expected to develop simple proofs for problems drawn primarily from computer science and applied mathematics.
Intended audience: computer science and mathematical sciences majors.
Undergraduate credit may not be earned both for this course and for CS 501.
Recommended background: none.

CS 2102. Object-Oriented Design Concepts.

Cat. I
This course introduces students to an object-oriented model of programming. Building from the design methodology covered in CS 1101/CS 1102, this course shows how programs can be decomposed into classes and objects. By emphasizing design, this course shows how to implement small defect-free programs and evaluate design decisions to select an optimal design under specific assumptions. Topics include inheritance, exceptions, interface, design by contract, basic design patterns, and reuse. Students will be expected to design, implement, and debug object-oriented programs composed of multiple classes and over a variety of data structures.
Intended audience: students with prior program design experience who desire to learn object-oriented design.
Recommended background: CS 1101 or CS 1102.
Undergraduate credit may not be earned both for this course and for CS 2136.

CS 2118. Object-Oriented Design Concepts for Business Applications.

Cat. I
This course introduces students to an object-oriented model of programming, with an emphasis on the programming approaches useful in creating business applications. Building from the design methodology covered in CS 1101/ CS 1102, this course shows how programs can be decomposed into classes and objects.
Students will be expected to design, implement, and debug object-oriented programs in Visual Basic.
Topics include inheritance, building user interfaces, and database access. Intended audience: non-CS majors with an interest in building business applications who have prior program design experience.
Recommended background: CS 1101 or CS 1102.
Students may receive credit for only one of the following: MG 2720, MIS 2720, or CS 2118.

CS 2223. Algorithms.

Cat. I
Building on a fundamental knowledge of data structures, data abstraction techniques, and mathematical tools, a number of examples of algorithm design and analysis, worst case and average case, will be developed.
Topics include greedy algorithms, divide-and-conquer, dynamic programming, heuristics, and probabilistic algorithms. Problems will be drawn from areas such as sorting, graph theory, and string processing. The influence of the computational model on algorithm design will be discussed.
Students will be expected to perform analysis on a variety of algorithms.
Intended audience: computer science and computer engineering students, and those desiring a deeper understanding of algorithm design and analysis.
Undergraduate credit may not be earned both for this course and for CS 507.
Recommended background: CS 2102 and CS 2022.

CS 2301. Systems Programming for Non-Majors.

Cat. I
This course helps students with prior program design experience migrate their skills to a model of programming where the programming language exposes details of how the hardware stores and executes software. Building from the design concepts covered in CS 1101/CS 1102, this course covers manual memory management, pointers, the machine stack, and input/output mechanisms. Students will be expected to design, implement, and debug programs in C.
Intended audience: non-computer science majors who wish to take upper-level courses in the systems area of the computer science curriculum.
Recommended background: CS 1101 or CS 1102. CS majors and other students wishing to prepare for upper-level CS courses in both systems and software engineering should take CS 2303 instead of CS 2301. Students who have credit for CS 2303 may not receive subsequent credit for CS 2301.
Undergraduate credit may not be earned both for this course and for CS 2005.

No comments:

Post a Comment