CS 202-4
Introduction to Computer Science
Catalog Description
An introduction to computers and programming using a high-level structured language including a discussion of programming constructs and data representation. Primary emphasis will be given to problem solving, algorithm design, and program development. Three one-hour lectures and one two-hour lab per week.
Prerequisite:
Mathematics 111 or equivalent with a grade of C or better.
Objectives
1. To introduce the students to computer hardware and software.
2. To teach a high-level structured programming language.
3. To introduce object-oriented design and programming.
4. To teach a disciplined and structured approach to the development of computerized solutions to problems (problem analysis, algorithm design, program development, programming style, documentation, testing and verification).
5. To lay the foundation for further study in computer science.
Organization
The course meets for three lecture hours and one two-hour lab session per week. Topic coverage is given in terms of lecture hours.
Course Outline
| Lectures | ||
| The following is not necessarily intended as a sequential ordering. | ||
| 1. | Basic Concepts of Computer Systems
Computer organization and hardware: CPU, memory unit, I/O devices Software: Programs, operating systems, editors, compilers Interacting with the operating system Using a screen editor The file system Invoking the compiler Computer systems: Batch systems, interactive systems, mainframes, minicomputers, micros, networks Programming languages: Machine language, assembler language, high-level languages Program translation: Source program, object program, compiler |
2 |
| 2. | Problem Solving
Algorithms Strategies: Divide and conquer, special cases, generalization Analysis: Understanding the problem, specifying inputs and outputs Pseudocode Verification: Hand checking, test data Case studies Note: Various case studies are woven into the lectures throughout the course and are presented in conjunction with major topics (e.g., with loops, with strings, with arrays, with methods, and in particular with classes and objects) |
3 |
| 3. | Program Design and Development
Design methodologies: Top-down, bottom-up, and combinations of the two, procedural abstraction, data abstraction, information hiding, object-oriented design Structured programming techniques: Use of appropriate control structures Programming style: Appropriate indentation, good identifier names Documentation: Appropriate commenting, self-documenting code Testing and verification: Bottom-up, top-down, debugging techniques (i.e., well placed output statements, stubs and drivers, end cases, loop invariants, use of a symbolic debugger) Note: Various case studies are woven into the lectures throughout the course and are presented in conjunction with major topics (e.g., with loops, with strings, with arrays, with methods, and in particular with classes and objects) |
3 |
| 4. | The Basics
Primitive data types Constants, variables and identifiers Named constants Arithmetic expressions Assignment statements |
3 |
| 5. | Input and Output
Console input and output Screen input and output File Input and output |
3 |
| 6. | Flow of Control
Conditions and logical expressions, relational operators, precedence rules Conditional execution structures: if, if-else, switch Iterative control structures: while, do-while, for Nesting of control structures |
6 |
| 6. | Flow of Control
Conditions and logical expressions, relational operators, precedence rules Conditional execution structures: if, if-else, switch Iterative control structures: while, do-while, for Nesting of control structures |
6 |
| 7. | Methods
Defining and calling methods Parameters Local variables Value returning methods and void methods Pre and post conditions |
4 |
| 8. | Arrays
Definition, processing, one-dimensional, two dimensional Elementary searching and sorting |
6 |
| 9. | Strings | 2 |
| 10. | Classes and Objects
Constructors Instance variables and instance methods Static variables and static methods Overloading Instantiation of objects using the new operator Private and public Polymorphism and dynamic binding Inheritance and interfaces Encapsulation |
8 |
| Total | 40 | |
| Lab Assignments | ||
| There should be a minimum of five lab assignments. Design considerations and efficiency of the algorithms is to be stressed on all the lab assignments. | ||