Academics / Courses / DescriptionsCOMP_SCI 230: Programming for Engineers
VIEW ALL COURSE TIMES AND SESSIONS
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 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.