Course Description

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. The course uses Python and Java for the first and latter halves of the course, respectively.

Share your course experience

If you have already taken this course, we request you to share your experience, tips, suggestions, and resources regarding this course in the comment box below. Examples include textbooks, websites, YouTube Channels, software tools that were valuable for your study, and/or your general experience with the course. Please do mind that this is not to “review” the course, instead it’s a repository for students’ collective knowledge. Your feedback here helps prospective students understand more about the course and make use of the student recommended resources to succeed in this course.

Course Pairing

591 pairs well with 592, but if you’re new to computer science, it is suggested that you take 591 on its own to fully immerse and understand the true fundamentals of CS. The assignments are appropriately challenging but allow the student enough time to fully absorb the information, although the two homework at the middle and the end of the course takes a lot of time and were a major spike in difficulty to solve. Average Hours Per Week: 15-20

Supplemental Resources

The views, information, or opinions expressed in the comments are solely those of the individuals involved and do not necessarily represent those of MOSA and/or University of Pennsylvania. As long as commenting guidelines are followed, they get published.

Please note that the comments should be less of a “review” and more of a repository for institutional knowledge. The content of the course may be changed and may become out-of-date. If the course changes in future, this page will be archived.