- Should I take CS 110 or CS 111?
- Which computer-related degree program is for me?
- Do any of the CS requirements also fill University Core Requirements?
- Can I transfer a CS class from another University?
- Is there a CS minor?
- Can I get a CS teaching minor if I am not an education major?
- Can I get credit for my internship or work experience?
- Can I study video game programming or something related to video games at BYU?
- What is the job market like for CS majors?
- Are there any classes that I should avoid taking together?
- How do I waive a course?
- What should I do if I need to take a class without taking the prerequisites?
- If I fill out a graduation plan, am I committed to following it?
- What sort of resources are available to CS students?
- How can I register for 300- and 400- level CS classes
- What computer should I buy?
1. Should I take CS 110 or CS 111?
CS 110: How to Program is designed for students who have little or no prior programming experience. Using Python, it teaches the basics of programming, including basic types (numbers, strings, booleans), control flow (while, if/else, for), functions, and data structures (lists and dictionaries). A significant focus of the course is problem decomposition, meaning learning how to break a problem down into smaller pieces using a set of functions.
CS 111: Introduction to Computer Science is designed to introduce students to core ideas in computer science, including higher-order functions, object-oriented programming, recursion, trees, iteration, regular expressions, and formal grammar. CS 111 is the beginning of the Computer Science core and is a prerequisite for most CS classes. Students taking CS 111 should already have experience with basic types, control flow, functions, and lists. The first two weeks is a review of how to program, so that students with prior experience in a different language can learn Python, and then the course moves quickly through the core CS concepts.
Ultimately, the choice of which class to take is up to the student. While it is impossible to know with certainty which option would be the best fit, the following advice help you choose.
You are likely a good fit for CS 110 if some of the following are true:
- You have never programmed before.
- You have struggled with programming in the past.
- You took one programming class but it has been several years and you are not sure you remember a lot of it.
- You have had only limited exposure to programming in very confined domains. For example, you have written R scripts for statistical analyses
You are likely a good fit for CS 111 if some of the following are true:
- You have taken AP Computer Science.
- You have written code already in an organized setting (coding club, class, job, etc.).
- You understand basic types, control flow, functions, and lists.
- You have prior experience with Java, C, C++, C#, or Python.
Most sections of CS 111 will have a corresponding section of CS 110 at the same time of day. If you try CS 111 first, and if during the 10 days of the semester you find the content and pace too challenging, in most cases you can easily switch to CS 110 without disrupting your class schedule.
2. Which computer-related degree program is for me?
Computer Science—(74-77 hours)—Students study the theory, design and development of software. The original Computer Science major and the Computer Engineering major share 29 hours of common core classes (11 hours math, 3 hours physics, 3 hours computer hardware, and 12 hours programming). This allows students interested in computers some time to explore both programs before deciding on a major. Computer science students receive a basic introduction to computer hardware (3 credit hours). The majority of the coursework (about 50 credit hours) concentrates on the theory and design of algorithms and algorithmic processes for a variety of software applications such as operating systems, artificial intelligence, graphics, compilers, databases, and networking. Students learn how to model, develop and program computer applications to solve significant problems. The department also offers a bioinformatics emphasis, designed for students who are interested in building software to assist in analyzing biological systems, and an animation emphasis, ideal for students wishing to pursue careers in animation and video game development studios. Computer science majors are in high demand and are best prepared for software design and development jobs.
Computer Engineering—(92-93 hours)—a cross between Computer Science and Electrical Engineering. Computer engineering students receive training in the fundamentals of software design and development from the computer science department (12 credit hours) as well as a basis in electronics and communications from electrical engineering (15 credit hours). Finally, they receive in depth training in the design of computer logic and circuitry (18 hours). Computer engineering students are in high demand and go into a variety of computer design and development jobs.
Information Technology—(77 hours)—focuses on the application of computer technology to solve problems. Students develop and design primarily at the system rather than the component level. Electronics Information Technology students receive a basic coverage of electronics (6 – 8 hours). Students receive a science background (8 hours calculus, 6 hours physics, 3 hours statistics) as well as a basic introduction to computers and computer programming (13 hours).The balance of the program (26 hours) concentrates on computer applications such as communications, networking, operating systems and databases with an emphasis on laboratory and project experience.
Information Systems—(74-75 hours)—teaches students to understand the effective and efficient use of information and communication technologies within a business setting. This major involves two broad areas: the acquisition, deployment, and management of an organization’s IS resources and services, and the development of computer-based systems and technology infrastructures for use in organization processes. The courses include programming (3 hours), database design (3 hours), systems analysis and design (6 hours), and data communications and enterprise applications (6 hours). Admission by application.
3. Do any of the CS requirements also fill General Education (University Core) Requirements?
- Physics 121 is a CS requirement which partially fills the Physical Science University Core requirement. The remainder of the Physical Science University Core requirement can be filled by taking an additional approved chemistry or geology course. Please see MyMap at http://mymap.byu.edu for more information.
- Physics 220 fulfills a CS elective. However, Physics 220 may NOT be used to fulfill any other University Core or departmental requirements if used to fulfill this elective.
- Math 112, Math 113, and Statistics 221 are CS requirements which fill the Advanced Languages/Quantitative Reasoning University Core requirement.
- English 316 is a CS requirement which fills the Advanced Writing GE requirement.
4. Can I transfer a CS class from another University?
Read our transfer and substitution policy here.
5. Is there a CS minor?
Yes. Information about the CS Minor is available at here. Students can sign up for the minor in the College of Physical and Mathematical Sciences Advisement Office, N-179 ESC.
6. Can I get a CS teaching minor if I am not an education major?
7. Can I get credit for my internship or work experience?
Although work experience, particularly high quality internships, is extremely valuable to students and is strongly encouraged by the department, no credit is offered. International students interested in taking CS 199R as an internship experience should speak to Dr. Dennis Ng (422-2835, 3322 TMCB)
8. Can I study video game programming or something related to video games at BYU?
Many of our students become computer game graphics programmers. Interested students should enroll in the CS Animation Emphasis or study as Computer Science Majors and specialize in graphics during their senior years. Students interested in the CS Animation Emphasis will need to speak to Dr. Parris Egbert, as the emphasis is not open enrollment.
9. Are there jobs in Computer Science?
The job market for CS majors is thriving. CS is one of the fastest growing fields in the nation, offering some of the highest salaries for new graduates. Students who have completed CS 240 should be able to get good summer programming jobs that will give them experience and help pay for college and living expenses. For more information on the CS industry, visit the Association for Computing Machinery's Computing Degrees and Careers website here.
10. Are there any classes that I should avoid taking together?
You should follow the prerequisite chart in selecting course order. We do not have any specific courses that students should avoid taking together. We do, however, recommend that students avoid taking more than 3 CS courses per semester.
11. How do I waive a course?
CS 142 is the only course that students can waive. If you are enrolled or considering enrollment in CS 142 and believe you already have a solid understanding of the course content, you have this option. The Computer Science Department will waive CS 142 for students who have sufficient C++ programming skill. If you wish to explore this option, please contact the undergraduate advisor, Lynnette Nelson (3361 TMCB, firstname.lastname@example.org), to pursue this option. You should make sure that you are competent in C++ programming since CS 235 requires this competence. If CS 142 is waived, you will not receive a grade or credit for the course.
12. What should I do if I need to take a class without taking the prerequisites?
Talk to the professor who will be teaching the course to find out on what information the class actually depends. If the professor agrees to let you into the class, you may have to do some extra work to fulfill those dependencies. The exception to this rule is for the 300- and 400-level CS courses that depend on CS 240. You will not be allowed to register for 300- or 400-level CS courses until you have passed CS 240 with a C- or above and met with the undergraduate program assistant.
13. If I fill out a graduation plan, am I committed to following it?
No, the graduation plan allows you to spot semesters when there may be conflicts with your courses and provides an opportunity for you to see when you might graduate. There is no problem if you decide to change things in the future. You should consult the class schedule and search future CS class offerings and MyMap as you are making your plans.
14. What sort of resources are available to CS students?
A list of resources available to CS majors and students taking CS classes is available in the Student Resources section of the CS website. You can also find on this site information on the courses offered and research in the CS department. For employment, both as a student or intern and for full-time placement options, check out the Careers & Employment and internship sections of the site. Also, major announcements and information are posted on the main page of the CS website. A Calendar of Events is also available. There are many more resources available of interest to the CS student; however, these will help get you started
15. How can I register for 300- or 400-level classes?
Students are only allowed to take 300- or 400-level classes once they have passed CS 240 with a C- or higher and have completed a department interview. Once both are complete, the student will receive a "CS 240 flag" that will allow them to register for upper-level courses. If students are trying to register for the next semester, they can have the interview once they finish their Index Server Program with a score of 70% or higher. A flag will be temporarily granted. If the student doesn't at least receive a C- as a final grade for the course, then the flag will be removed, and the student will no longer be allowed to register for upper-level courses.
16. What computer should I buy?
Please see our recommendations for computer requirements here.