CS 221 - First Course in Computer Science for Engineers
Credits: 3
Note: This class is a service class for many of the other Engineering majors and is not open to computer science or electrical and computer engineering majors.
Course Description
Characteristics of a procedure-oriented language; description of a computer as to internal structure and the representation of information; introduction to algorithms. Emphasis will be placed on the solution of characteristic problems arising in engineering. Not open to students who have received credit for CS-115.
Needed Skills
Students should already have basic computing skills, like being able to copy files from one place to another, renaming files, printing files, browsing the Web.
Learning Outcomes
The student will be able to:
1. Design and implement well-written programs in C++ to solve problems: problem solving, testing and debugging programs, understand and use the fundamental structures of structured programming, understand and use concept of modular programming – functions
2. Understand and use simple data structures: strings and arrays
3. Understand and implement some sorting and searching algorithms
4. Become familiar with OOP - using objects of predefined class types: filestreams, strings
5. Become aware of ethical concerns for programmers
Measures
These outcomes will be measured by the grading of: quizzes, programs, lab reports and exams. Additional measurements will be obtained through evaluation questions gathered by University-level course assessment supplemented by questions given below.
CAC Categories
Topic
|
Core
|
Advanced
|
Math
Fundamentals
|
0
|
0
|
Data
Structures
|
7
|
0
|
Algorithms
& Software Design
|
5
|
0
|
Computer
Organization and Architecture
|
0
|
0
|
Concepts
of Programming Languages
|
17
|
0
|
Social
and ethical issues
|
1
|
0
|
Total
|
30
|
0
|
Math Fundamentals: none
Data structures (7): Core: Primitive types, strings, arrays
Algorithms and Software (5): Core: Structured design and programming, problem-solving strategies, implementation strategies for algorithms, debugging strategies, the concept and properties of algorithms, testing
Computer Organization and Architecture: none
Concepts of Programming Languages (17): Core: Fundamental programming constructs, Basic syntax and semantics, variables, types, expressions, and assignment, simple I/O (including files), conditional and iterative control structures, functions and parameter passing, structured decomposition
Social and ethical issues (1): Core: Plagiarism, ethics of programming
Oral Communication (presentations)
none
Written Communications
Excluding tests, quizzes, commented source code
Programs – 5, each 3-4 pages
Including separate pseudocode design documents 1 page each, test plans 1 page each, testing output captures 1-2 pages, other hand work
Content
Theoretical Content: 72%
· Basic syntax and semantics of a higher-level language
· Variables, types, expressions, and assignment
· Simple I/O (including files)
· Conditional and iterative control structures
· Functions and parameter passing
· Primitive types, arrays, strings
Problem Analysis: 13%
· Programming Assignments - designing and implementing their own designs
Solution Design: 10%
· Two lectures about structured programming, assignment on designing solutions for “Rik the Robot”
Other - Administration, Social and Ethical Issues: 5%
· Plagiarism, professionalism, ethics of programming, quizzes
· (Exams are common hour so do not count in the 30 contact hours)
Student evaluation and feedback
On graded programs - Teaching Assistants use a detailed grading sheet created by the instructor for each program assignment, as well as giving individualized comments on the source code printouts.
On test papers - usually the correct answer is written on test papers when a student misses a question
On quizzes - correct answers to quizzes given in lecture immediately after the quiz is over
All scores and attendance records are displayed to the student on a personal web page regularly updated by their TA, starting before midterm and continuing until the final grade is reported.
Course Evaluation Questions
37. Do you feel the course has taught you to design and write good C++ programs?
38. Do you feel the course has taught you to understand and apply the fundamental structures of programming?
39. Do you feel the course has enabled you to use data structures like strings and arrays?
40. Do you feel more aware of object-oriented methods?
41. Are you aware of the professional responsibilities and ethics of a computer programmer?
42. Would you want to take another course with the same TA?
Possible Textbook
Programming in C++
Nell Dale, Chip Weems & Mark Headington; Jones & Bartlett 2001
C++ for Engineers and Scientists,
Gary J. Bronson, Brooks/Cole, 1999.