Before starting any course, or course sequence, it is a good idea to have an overview of the goals you are expected to achieve and the topics to be covered in pursuit of those goals, as well as what you are expected to know in preparation for the work to be undertaken. There will not be time to cover all of the topics listed here but a student should expect to see a large subset of them.

Course Goals

The overall goal of the two-course sequence comprised of CSCI 2341 and its sequel CSCI 2342 can be broadly expressed as follows: to help you review, consolidate and extend your ability to solve certain kinds of problems whose solutions may be implemented as computer programs, and to help you learn how to evaluate alternative solutions to such problems. Currently the major tool used in the implementation of these solutions will be the Java programming language (exclusively) in CSCI 2341, while in CSCI 2342 there may be continuation of Java, a switch to C++, or some mixture of the two.

In particular, you will have an opportunity, and you should make it your goal, to:

Required Background

To achieve the above goals, you must begin with a certain level of skill and knowledge, which you are assumed to have obtained in prior courses. A summary of what is assumed is given in Expectations: Presumed Student Background, where you will find descriptions of what you are expected to know in the following areas:

Potential Topics

The topics that appear under the headings in the Potential Topic List given below contain much more material than can be covered even in two complete single-semester courses. Thus many of the listed topics will not be covered, but most of the content of both CSCI 2341 and CSCI 2342 will be taken from the remaining material. The occasional topic may be added to the list later during either course. Just which topics are covered in each of the courses will evolve somewhat as each course proceeds, and will vary from year to year. It is reasonable to assume that pretty much anything covered in either CSCI 2341 or CSCI 2342 will fall under one or another of the eight general headings in this Topic List, but do not be intimidated by the amount of material since not all of it will be covered. One of the reasons for presenting this superset of topics to be covered is to give you a sense of some of the other material of interest in the areas you will be studying.

Potential Topic List

Miscellaneous Mathematical Tools

Back to Topic List

Algorithm Analysis

Back to Topic List

Algorithm Design and Classification

Back to Topic List

Data Types, Abstract Data Types, and Data Structures

Back to Topic List

Important Programming Language Features

Back to Topic List

Important Programming Environment Features

Back to Topic List

Important Program Design and Development Concepts

Back to Topic List