NOTE: This course can now be taught using either C++ or Java programming language.

ECS 102 is a one-semester course taught at Syracuse University to all freshmen engineering, computer science, visual and performing arts students, and most students at the S.I. Newhouse School of Public Communications and the Maxwell School of Citizenship and Public Affairs.

The course covers computing concepts, principles of programming, applications of computing concepts, and problem solving in engineering and computer science. Laboratory topics include problem solving projects from various engineering disciplines.

Course Outline

  • Week 1: What is Abstraction?; Course Requirements and Course Overview; Overview of Abstraction; Modeling (Verification, Correctness)
  • Week 2: Computer Abstraction; Program Development (editing, compiling, linking); Representing Information (variable declaration, data types); displaying information (format, output)
  • Week 3: Operational Abstractions; Arithmetic and Comparison Operations
  • Week 4: Functional Abstraction; Constructs (do while, for); Functions (return value, name, parameters); Functions (pass by value, prototypes, body)
  • Week 5: Ordering Abstraction; Arrays (linear ordering, index); Arrays (pointer constant, passing arrays as parameters); Arrays (multidimensional)
  • Week 6: Indirect Abstraction; Pointers (indirect reference, addresses); Pointers (to arrays); Pointers (passing by reference)
  • Week 7: Hierarchical Abstraction; Strings (characters, ASCII); Strings (comparison, I/O, appending); Scope (global functions)
  • Week 8: Structural Abstraction; Structures (data groups, access); Structures (Structure Pointers); Structures (passing by reference)
  • Week 9: What is Computer Based Problem Solving?; Overview of Problem Solving; Design Paradigm: Functional Decomposition (requirements, operations, hierarchical organization, function definition)
  • Week 10: Problem Solving: Performing Computation; Computation, Expressions (precedence); Precision (integer vs. real, type conversion)
  • Week 11: Problem Solving: Displaying Information; Display Management; I/O Streams; Files (fstream)
  • Week 12: Problem Solving: Advanced Operations; Libraries; I/O Streams; Graphics (color, drawing, images)
  • Week 13: Problem Solving: the Internet; HTML; Overview of the Internet; Creating a Home Page
  • Week 14: Problem Solving: Dynamic Allocation (new, delete); Error Handling; Review
  • Week 15: Final Exam