Computer Science Undergraduate Handbook (2020-2021) - CS 1030/1410
University of Utah, School of Computing

Where to Start - CS 1030 or CS 1410

The first year of CS courses consists of the following requisite chain: CS 1030 → CS 1410 → CS 2420. Each course must be completed before the subsequent course may be taken. The purpose of CS 1030 is to expand the understanding of students with no background in computer science topics. If you feel that your background is sufficient, you may be able to enroll directly in CS 1410 (skipping CS 1030). The following information is intended to help you make this decision.

Join the CS Canvas Page

If you are planning to pursue CS and have not already done so, you must join the School of Computing Canvas page (where you will need to log in with your CIS credentials). At that point please click 'Enroll in Course'. All students are then encouraged to take the Pre-Major Survey.

After taking the Pre-Major Survey, you can also take the CS 1410 Proficiency Test to help decide if you should start in CS 1030 or in CS 1410.

CS 1030 - Foundations of Computer Science

CS 1030 is a prerequisite for students who are interested in taking CS 1410 - Introduction to Object-Oriented Programming, but who have no background in computing. CS 1030 provides a gentle introduction to the fundamental concepts of computer science. In particular, students learn problem-solving skills and apply them by writing programs in a visual and fun programming environment that is friendly to beginners. Students also study, simulate, and visualize the inner workings of a simple computer. CS 1030 gives students a sampling of what makes computer science an innovative and exciting field, and prepares them for the CS 1410 and the rest of the computer science degree program.

The following are some of the expected outcomes for students completing CS 1030:

  • Students learn how to approach (simplified versions of) scientific problems. The problem-solving skills acquired include how to follow and compose algorithms, as well as, how to use variables, assignment, selection, repetition, and lists. Students gain experience solving problems and applying these concepts through the use of a beginner-friendly, graphical programming environment.
  • Students study and simulate the fundamental workings of a simple computer. Concepts of data representation, logic gates and Boolean algebra, and digital circuits are highlighted. Students "program" a simple computer (made up of RAM, registers, an ALU, and a control path) to solve simple problems in a variety of ways (including direct manipulation of the control path, machine language instructions, and assembly language instructions).
  • Students begin to understand abstraction as a crucial mental technique of devising simple models for complicated things by selectively ignoring details. Students observe abstraction at work in the simple computer and in problem-solving techniques.

CS 1410 - Introduction to Object Oriented Programming

CS 1410 is a course for students who are interested in building on their prior experience in computing as they learn the fundamentals of object-oriented programming. Students should be able to make use of assignments, conditionals, loops, and function calls to express simple algorithms. While all the programming in CS 1410 is done in Java, all of the fundamental concepts are applicable to programing in other languages.

The following are some of the expected outcomes for students completing CS 1410:

  • Beginning from a problem statement, students design, implement, and test an object-oriented computer program that solves the problem.
  • Students exploit procedural abstraction (non-recursive and recursive methods), data abstraction (classes), and polymorphism (inheritance and generics) as cornerstones of the program design process.
  • Students leverage tools and techniques from software engineering (such as the Eclipse IDE, unit testing, pair programming, and documentation standards) to amplify their programming abilities.
  • Students understand the organization of common application types such as command-line programs, graphical user interfaces, and web server applications.
  • Students assess the efficiency of algorithms.

Should you enroll in CS 1030 or CS 1410 as your first course?

If you have some background in computing and are already familiar with many of the concepts mentioned in the description of CS 1030 (such as using variables, assignment, selection and repetition in problem solving; as well as, data representation, logic gates and Boolean algebra), you are likely ready for CS 1410. Even if you have little background in computing, but have a strong problem-solving nature and have done well in your previous math courses, you may be ready for CS 1410.

Every student is encouraged to attempt the CS 1410 Proficiency Test. There is no downside to taking this test, and you may find that you know more than you think.