-
Department Info
-
-
Admissions
-
-
Academics
-
-
-
Research
-
-
-
Main navigation | Main content
1113 is the main computer programming service course for CSE students. 1113 stresses programming, problem solving, and fundamental numerical methods. Upon successfully completing the course students should be able to program in C++ using good programming and software development techniques, and should be able to use numerical techniques, such as root-finding or least squares, in solving problems. In general, CSci majors should not take this course.
Programming course for scientists and engineers. C and C++ programming constructs, object-oriented programming, the software development process, and fundamental numerical techniques. Programming exercises and examples from a variety of different scientific fields.
(This outline provides examples of probable topics, rather than a strict outline of what topic are guaranteed to be included):
| WEEK 1: | INTRODUCTION TO COMPUTERS AND C++ PROGRAMMING: Overview of computer system, C and C++, programming and problem solving strategies, the C and C++ compilation process, program structure. |
|---|---|
| WEEK 2: | C++ BASICS: VARIABLES, DATA TYPES, I/0, ARITHMETIC OPERATORS: types of operators, order of precedence, logical expressions. |
| WEEK 3: | PROGRAM FLOW CONTROL: Conditions, if-else, switch, loops; |
| WEEK 4: | GOOD PROGRAMMING STYLE: Top-down design, modularity formatting, use of descriptive variable names, comments, etc. |
| WEEK 5: | FUNCTIONS: When to use, declarations, arguments and return values. |
| WEEK 6: | NUMERIC METHODS: Simulation using random numbers, root finding, numeric integration. |
| WEEK 7: | STREAMS AND FILE I/O: Standard input and output; file I/O; formatted I/O. |
| WEEK 8: | ARRAYS: Declaration and initialization; simple matrix operations; passing arrays to functions. |
| WEEK 9: | STRUCTURES AND CLASS BASICS: Structures; object-oriented philosophy, concept of a class, public and private data and methods, constructors, class use and functions. |
| WEEK 10: | CLASSES: Operator overloading, friend functions. |
| WEEK 11: | STRINGS: Basics of string use; C++ String class. |
| WEEK 12: | DYNAMIC MEMORY ALLOCATION: Pointer declaration and use; dynamic memory use; linked lists. |
| WEEK 13: | STANDARD TEMPLATE LIBRARY: Vector and List classes; Iterators. |
| WEEK 14: | MORE ON CLASSES: Inheritance and polymorphism. |
| WEEK 15: | REVIEW OR ADDITIONAL TOPICS |
1113 is the main CS&E service course. A number of other CSE departments require their students to take this course as an introduction to computing and computer programming.
Calculus I. A main concern of 1113 is the numerical techniques which are fundamental to many engineering and scientific fields. These techniques presume familiarity with mathematics such as elementary differential calculus.
Although 1113 does not require any previous computing experience, computing experience is an asset, and students without it should allot additional time for the course, and should watch for department or college-sponsored "computing familiarization" or "Introduction to UNIX" workshops.
No CSci classes have 1113 as a prerequisite. Since 1113 is a service course, we expect that students will not use it as a stepping stone to advanced CS&E courses. Students planning on taking advanced CS&E courses should check into taking CSCI 1901, 1902 and any other needed prerequisites instead. Very good students from other departments may be able to take advanced CS courses with only 1113; however, these students should realize that they will not have all the expected background, and should expect to spend more time than usual on any advanced CS course.
4 credits, 3 in a large class + 4 in lab per week. The lab assignments will blend programming, numerical methods, and examples from different scientific and engineering fields.
There are a number of possible texts for the class. Here are two which have been used recently:
Upon successful completion of the course students should have the following skills and proficiencies:
Some department allow students the option of taking either this course or CSCI 1103 (Java). Both courses provide an introduction to computer programming. Other than the difference in languages, the main difference in the class is that 1113 is focused on scientific and engineering programming, while 1103 is a more general programming class.