• Gold M - Skip to Main Content.
  • University of Minnesota
  • Search U of M
  • CSE Home
  • IT Home
  • Directories
  • One Stop
  • myU
Computer Science & Engineering
Prospective Students
Current Students
Alumni
Industry

Computer Science & Engineering

  • Department Info
    • About Us
    • Contact Info
    • Department News
    • Giving
  •  
  • Admissions
    • Undergraduate
    • Graduate
  •  
  • Academics
    • Undergraduate
    • Graduate
  •  
  • People
    • Faculty
    • Graduate Students
  •  
  • Research
    • Research Areas
    • Tech Reports
    • Related Centers
  •  
  • Resources
    • Forms
    • Systems Help
    • Faculty Portal locked external link
    • Computing Facilities
    • Department Wiki locked external link
    • Employment
  •  
  • Site Map
  •  
  •  
Institute of Technology Logo
Home > Academics > Undergraduate > Required Courses > CSci 1113

CSCI 1113: Introduction to C/C++ Programming for Scientists and Engineers

Overall Description

1113 is the main computer programming service course for IT 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.

Catalog Description

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.

Content

(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

Why This Class is Important and its Role in the Curriculum

1113 is the main CSE service course. A number of other IT departments require their students to take this course as an introduction to computing and computer programming.

Prerequisites and Rationale

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.

Classes Having 1113 as a Prerequisite and Rationale

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 CSE courses. Students planning on taking advanced CSE 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.

Class Format

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.

Probable Text, If Any

There are a number of possible texts for the class. Here are two which have been used recently:

  • Walter Savitch, Absolute C++, 3rd ed., Addison Wesley, 2008.
  • Walter Savitch, Problem Solving with C++, 6th ed., Addison Wesley, 2007.

Outcomes

Upon successful completion of the course students should have the following skills and proficiencies:

  1. Be able to program in C++ at a moderate (although not necessarily an advanced) level.
  2. Be able to use good problem analysis techniques in designing and implementing programs to solve science and engineering problems.
  3. Be able to use good programming style and program development techniques.
  4. Be able to use numerical techniques, such as numerical root finding and numerical integration, in solving scientific and engineering problems.

Additional Comments

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.

Related Links

  • UMN Academics Page
  • CS Undergraduate Catalog

Advising Related Sites

  • CLA Lower Division advising
  • IT Lower Division advising
  • CLA Upper Division Application Requirements
  • IT Upper Division Application Requirements
  • Transferring credit
  • CLA Career and Community Learning Center
  • IT Career Services
  • Job Resource Center (AfterCollege)
  • University Counseling and Consulting Services
  • CSE Graduate Admissions

Other Programs

  • Info. Technology Infrastructure BAS
  • IT Minor
  • CS Minor
  • CCE Networking Courses

Other Opportunities

  • Student Organizations
  • The UROP program
  • Research Opportunities
  • Learning Abroad Center
  • Other IT Student Groups

Other Sites of Interest

  • Transfer Course Equivalencies
  • IT Labs Home Page
  • Open Your IT Labs Account
  • Computing Degrees and Careers
  • Free Computer Books

 

  • ©2006 - 2008 Regents of the University of Minnesota. All rights reserved.
  • Privacy
  • Contact U of M
  • Contact CSE
  • CSE Employment
  • Site Map
  • The University of Minnesota is an equal opportunity educator and employer.
  • Last modified on August 15, 2008