CSE 240 comes after CSE 205. It is a bit difficult course and introduces the student to what programming actually is. The main and the most used concept in CSE 240 is C/C++. Following are the objectives in CSE 240 :
1) To provide computer science students with an exposure to different programming paradigms
The imperative programming paradigm assumes that the computer can maintain through environments of variables any changes in a computation process. Computations are performed through guided sequence of steps, in which these variables are referred to or changed. The order of the steps is crucial because a given step will have different consequences depending on the current values of variables when the step is executed.
- Students will understand strong vs. weak computer programming languages
- Students will understand the control structures of functional, logic, and imperative programming languages.
- Students will understand the execution of functional, logic, and imperative programming languages.
- Students will understand the recursion mechanism of functional, logic, and imperative programming languages.
2) Introduction to procedural programming languages (C and C++)
C evolved from two previous languages, BCPL (Basic Combined Programming Language) and B. BCPL was developed in 1967 by Martin Richards as a language for writing operating systems software and compilers. Ken Thompson modeled many features in his language, B, after their counterparts in BCPL and used B to create early versions of UNIX operating system at Bell Laboratories in 1970 on a DEC PDP-7 computer. Both BCPL and B were typeless languages, that means the only data type is machine word and access to other kinds of objects is by special operators or function calls. In C, the fundamental data type includes characters (char), integers of several sizes (int) and floating point (float) numbers. The derived data types were created with pointers, arrays, structures, unions, functions, and classes. The C language was evolved from B by Dennis Ritchie at Bell Laboratories and was originally implemented on a DEC PDP-11 computer in 1972. It was named C for a new language.
- Students will work with the Scheme interpreter to evaluate simple functions.
- Students will write and execute simple Scheme functions.
- Students will write and execute Scheme programs requiring multiple functions.
3) To develop an introductory understanding of a declarative programming language
In computer science, declarative programming is a programming paradigm—a style of building the structure and elements of computer programs—that expresses the logic of a computation without describing its control flow. This is in contrast with imperative programming, which implements algorithms in explicit steps.
- Students will create a simple Prolog fact base and provide queries to obtain information from the fact base.
- Students will create Prolog programs that use recursive rules to provide a problem solution.
- Students will create Prolog programs that use multiple rules to solve a problem.
4) To develop an introductory understanding of a procedural programming language (C/C++)
A procedural language is a type of computer programming language that specifies a series of well-structured steps and procedures within its programming context to compose a program. It contains a systematic order of statements, functions, and commands to complete a computational task or program.
- Students will write C/C++ programs using pointers.
- Students will write C/C++ programs using multiple functions/procedures.
- Students will write C/C++ programs using dynamic memory allocation.
- Students will write C/C++ programs that allocate and de-allocate static, stack and heap memory.
- Students will design C/C++ programs applying object-oriented features such as inheritance, polymorphism and class hierarchy.
CSE 240 is a difficult course which is a little bit complex and hard to understand. Students who are really interested in programming and want to opt for the programme as their career should register for this course. With an open mind, and a bit of dedication you’ll find yourself in one of the more informative and interesting classes of programming.