About the course

This course is an introduction to fundamental concepts of programming and computer science. The course starts off with an introduction to modern programming languages and aspects such as basic data types, loops, and conditionals. The course will cover features of Object-Oriented programming languages including objects and classes, inheritance, and interfaces. In addition to programming, this course will also focus on best practices and aspects of software development such as software design and software testing. We will use Java for the entire course.

Instructor

Swapneel Sheth
swapneel [at] cis.upenn.edu

Prerequisites and Enrollment

There are no prerequisites for this class. No prior programming background is expected. Enrollment in this course is limited to MCIT students. If you're not in MCIT and are interested in this course, please consider taking CIT 590 instead, which covers similar material and is open to everyone.

Topics

Here's the tentative list of topics:

  • Introduction to Programming
  • Object-Oriented Programming in Java
  • Objects and Classes
  • Basic Data Types
  • Loops and Conditionals
  • Array and Array Lists
  • Inheritance
  • Interfaces
  • Software Design (CRCs, Design Principles, Design Patterns)
  • Software Testing
  • Best Practices
    • Pair Programming
    • Version Control with git/GitHub
    • Using Eclipse (Basics; Advanced Eclipse such as Eclipse Debugger and Refactoring)

Grading

The guidelines for the final grade are:

  • 48% individual assignments
  • 12% recitations
  • 20% midterm exam
  • 20% final exam

Textbook

Cay Horstmann - Big Java, Early Objects (Fifth Edition)