Course Details

  • Course Number: 01:198:111
  • Course type: Undergraduate
  • Semester 1: Fall
  • Semester 2: Spring
  • Semester 3: Summer
  • SAS Core Curriculum Fulfillment: QQ, QR, ITR
  • Credits: 4
  • Description:

    Intensive introduction to computer science. Problem solving through decomposition. Writing, debugging, and analyzing programs in Java. Algorithms for sorting and searching. Introduction to data structures, recursion.

  • Prerequisite information:

    01:640:115 or placement in CALC1. Credit not given for this course and 14:332:252.

    - A grade below a "C" in a prerequisite course will not satisfy that prerequisite requirement.

  • This course is a Pre-requisite for the Following Courses: 01:198:112 - Data Structures, 01:198:205 - Introduction to Discrete Structures I
  • Topics:

    Programming process: problem analysis, program design, algorithm construction, coding, testing/debugging.
    Object-oriented programming using the Java language.
    Test case construction, driver development.
    Iteration.
    Recursion.
    Introduction to data structures (arrays, linked lists).
    Efficiency analysis (algorithm complexity).
    Exception handling.
    Inheritance and polymorphism.

  • Expected Work: 12 weekly programming assignments.Weekly lab exercises in recitation.
  • Exams: 4 programming exams (given on weekends), 1 written final exam
  • Notes:

    Computer Science majors ...

    • will be prepared to contribute to a rapidly changing field by acquiring a thorough grounding in the core principles and foundations of computer science (e.g., techniques of program design, creation, and testing; key aspects of computer hardware; algorithmic principles).
    • will acquire a deeper understanding on (elective) topics of more specialized interest, and be able to critically review, assess, and communicate current developments in the field.
    • will be prepared for the next step in their careers, for example, by having done a research project (for those headed to graduate school), a programming project (for those going into the software industry), or some sort of business plan (for those going into startups).