CCIS HOME | NU HOME | SEARCH  
Northeastern College of Computer and Information Science
About the College
Undergraduate
Graduate
Research
Cooperative Education
People
Organizations
Resources
Colloquium & Seminars
Contact Information

Course Title:
 
CS U211
Fundamentals of Computer Science 1 (4 SH)

 
Course Descritption
 
Introduces the fundamentals of program design via study of increasingly complex 
data definitions: structures, containment, unions, self-referential, mutually 
referential. In addition, the course studies design via generative recursion, 
accumulator-style functions, and mutation of variables and structures. The course 
also introduces models of computations, which explain what programs do when they 
are applied to inputs.

 
Prerequisites:
 
An interest in learning about computer science in depth and a solid foundation in 
basic mathematical thinking.

 
Textbooks:
 
How to Design Programs, Felleisen, Flatt, Findler, Krishnamurthi, MIT Press, 2000.

 
Topics Covered
 
Computers and the nature of computation

(Formal) models of computation
  functions, function definitions
  conditional computation
  structures, structure definitions
  mutation

Information vs. Data

Structure of data:
  composite
  containment
  union
  self-referential
  mutually referential
  cyclically defined

Program design and design recipes:
  design based on the structure of data
  extensional equality of structured data;
  (automated) testing
  accumulators
  designing abstractions
  generative recursion
  state and mutation
  intensional equality of structured data

 
Course Outcomes
 
Upon completion of this course, a student should be able to:

Complete data analysis and definiton for problems that require the use of 
composition, containment, union, and self-reference, including the representation 
of the structure as a class diagram.

Design programs to solve problems that consume and produce data structures based on 
composition, containment, union, and self-reference.

Design test suites for these programs and evaluate the outcomes.

Design simple abstractions and test the design.

Design programs that mutate state variables and structures and test outcome and 
effects.

 
Measurement of Course Outcomes
 
How will the outcomes be measured and verified through:
	Weekly programming homeworks.
	Weekly short paper-and-pencil quizzes
	Two to four major exams. 
	Inclusion of student's work in an electronic portfolio.

 
Relation to Integrated Learning Models (ILM)
 

 
Relation to Curriculum 2001 (Optional Section)
 
 














360 Huntington Ave. • Boston, MA 02115 • Phone: (617) 373-2462