| SIUC Home | Campus Index A-Z | Apply Now | People Finder | Jobs | Webmail |

Department
Home, Overview, Contact, Facilities...

People
Faculty, Staff

Programs
Undergraduate, Graduate, Courses, Course Schedules, Course Materials...

Research
Activities, Grants

Scholarships

Opportunities

Utilities
Webmail, Downloads

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

Lab Assignments
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.

Webmaster - EOE Link - Privacy Policy     Last Update: May 2008