create new tag
view all tags

CSE 20211 - Fundamentals of Computing I

Term: Fall 2006

Instructor: Dr. Aaron Striegel, striegel@nd.edu

Institution: University of Notre Dame, Department of Computer Science & Engineering

Quick Links: Lectures Labs - Fall 2006 Exams Homework


This course is the first of a two-course sequence that introduces students to the realm of computing and teaches them how to use computers effectively in problem solving. Students will learn how to formulate data and procedural abstractions, apply basic problem solving strategies, and apply techniques to problems from different domains. Students are automatically enrolled in the accompanying lab section, in which students will get practical hands-on experience with the material covered in the lecture.


  1. H. H. Tan, D. B. D'Orazio, C Programming for Engineering & Computer Science, ISBN 0-07-913678-8
  2. Deitel/Deitel, C++ How To Program, 5th Edition, ISBN 0-13-185757-6

Course Goals

This course teaches fundamental techniques of programming as a foundation for more advanced study of computer science. Considerable attention will be devoted to developing effective software engineering practice, emphasizing such principles as design, decomposition, encapsulation, procedural abstraction, testing, and software reuse. Topics include initial mastery of the C programming language coupled with an introduction to the C++ programming language. The primary aim of the course is to develop proficency in the aforementioned languages while thoroughly developing the student's problem solving abilities through interesting and timely problems. The course will be based on active learning components through both hands-on laboratories and interactive lecture sessions.

Course Objectives

At the end of the course, the student should:

  • Achieve proficiency in the C programming language
  • Achieve a basic understanding of the C++ programming language
  • Be able to work with pointers, arrays, typecasts
  • Be able to perform basic I/O operation
  • Be able to utilize basic data structures
  • Be able to formulate a computational approach to basic computer science problems
  • Understand the basic concepts of software engineering and the implications of effective design
  • Understand the basic concepts of complexity and approaches to problems (iterative vs. recursive)
  • Brief understanding of architectural concepts and the architectural implications on program design
  • Be able to compile, debug, and document effective C and C++ code
Edit | Attach | Watch | Print version | History: r1 | Backlinks | Raw View | More topic actions
Topic revision: r1 - 2007-09-27 - AaronStriegel
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2014 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback