3 Cr. (Hrs.:2 Lec., 3 Lab)
An introduction to problem-solving methods and algorithm development. Stresses programming in a high level programming language with techniques of good programming style. Co-requisite: M 151 (1st)
Course generally offered fall (1st) semester.
E1. The student should have basic computer and Internet literacy. The student should be able to use a GUI desktop environment and common applications, such as word processors, web browsers, and e-mail clients.
E2. The student should be calculus-ready, have a firm grasp of high school algebra, and have the ability to solve word problems. Alternatively, the student should have some programming experience and an adequate score on an instructor administered programming aptitude test.
R1. Students will have an understanding of the components of a computer and how they interact to execute programs. (CS: 6)
R2. Students will be able to use an editor and a compiler/interpreter to write and execute programs in a programming language that implement given requirements. (CS: 2, 6)
R3. Students will understand and be able to use data types, variables and constants, and use assignment, arithmetic and boolean expressions in writing programs. (CS: 2, 6)
R4. Students will understand and be able to use basic selection and repetition control structures. CS: 2, 6)
R5. Students will understand and be able to use one and two-dimensional arrays and structures. (CS: 2, 6)
R6. Students will understand and be able to use basic object oriented techniques in program development. (CS: 2, 6)
R7. Students will understand basic GUI design and be able to write event driven GUI programs that implement given specification. (CS: 1, 2)
R8. Students will learn techniques for locating compiler errors including those that are not line specific, and for creating programs that compile without errors or warnings. (CS: 2, 6)
R9. Students will learn basic program failure analysis, fault isolation techniques, and run-time exception handling. (CS: 2, 6)
R10. Students will write programs using structured programming techniques and principles. (CS: 1, 2, 6)
R11. Students will understand and be able to do unit testing. (CS: 1, 2; SE: 2, 6)
5-2-1 - Techniques, skills, and tools necessary for computing practice
5-a-2 - Substantial coverage of at least one general-purpose programming language
5-a-4 - The study of computing-based systems at varying levels of abstraction
III-1-2-1 - Computing fundamentals, software design and construction, requirements analysis, security, verification, and validation