Academics
  /  
Courses
  /  
Descriptions
COMP_SCI 230: Programming for Engineers

Quarter Offered

Winter : 2 -3:20 TuTh ; Hu

Prerequisites

Freshman programming requirement (Gen_Eng 205-1, 2).

Description

This course teaches foundational programming skills with an emphasis on professionalism. In order to learn to program, we need a language; our language will be Python, but our focus will be on design and pragmatics, not the language itself. Topics include expressions, functions, conditionals and iteration, modeling information as data, object-oriented programming, and useful programming practice like source control, and testing.

Not for Computer Engineering majors. Not for Computer Science Major Requirements. Cannot be taken as a substitute for COMP_SCI 211 and cannot be used where COMP_SCI 211 is a prerequisite.

REQUIRED TEXT: None

RECOMMENDED TEXT(s): None

COURSE INSTRUCTOR: Huiling Hu (Winter)

COURSE COORDINATOR: Jesse A. Tov

COURSE GOALS: To teach object-oriented programming with applications to engineering. To teach the concept of classes, inheritance, and libraries and teach issues related to good programming, reuse, and problem solving in general.

GRADES:

  • Programming and Written Homework Assignments - 70%
  • Midterm - 15%
  • Final - 15%

DETAILED COURSE TOPICS:

Week 1: Introduction to software engineering and the software life cycle; top-down vs. bottom-up design; basic data types, operations and expressions.

Week 2: general program structure, include files; simple I/O; basic control statements (conditional statements, loops and loop statements)

Week 3: More on I/O; arrays, strings and string processing.

Week 4: Functions, value/reference parameters, simple parameters vs. array parameters; scope; activation stack.

Week 5: Introduction to class, data hiding via private, member functions and public interface, introduction to initializing constructors.

Week 6: Derived classes and inheritance.

Week 7: Introduction to simple data structures –dictionaries, and sets

Week 8: Recursion; introduction to testing.

Week 9: Introduction to software development process.

COMPUTER USAGE: Students learn to use a programming environment using a PC or a workstation.

COURSE OBJECTIVES: When a student completes this course, s/he should be able to:

  • Formulate a design, in a systematic way, to solve an open-ended computational problem in science or engineering.
  • Implement the design as a program in popular programming language, making use of procedural abstraction and appropriate data structures.
  • Effectively test and evaluate the program, and accurately interpret its results. Iterate the program’s design and implementation to achieve desired goals.
ABET CONTENT CATEGORY: 100% Engineering (Design component).