First Year Experience
Welcome to FYE! If this is your first time with us, we recommend that you start out by reading our Getting Started page, then clicking through each of the navigation links on the left side of this website. Check back often because this site is continuously updated!
In general, FYE is the home for three foundational computing courses:
- CSE 1300 - Introduction to Computing Principles. This is a good course for those who are new to computing and does a great job for prepping you to take CSE 1321. You'll learn about a variety of computing concepts and do some programming as well. For many students, this can count as an elective, so ask your advisor about it.
- CSE 1321 - Programming and Problem Solving I. This is where you'll learn the foundations of programming. It focuses on problem solving (in pseudocode, but with examples in actual languages) and has a lab component - CSE 1321L - where you'll apply those problem-solving skills using either Java, C# or C++.
- CSE 1322 - Programming and Problem Solving II. This class extends what you learned in CSE 1321 and also has a lab component - CSE 1322L. Only Java and C# labs are available.
The FYE is a group of people dedicated to helping you become a successful computing
professional. Our team includes Lecturers, Graduate Teaching Assistants, Graduate
Research Assistants, Graders, and Tutors who are all here to help you do your very
best.
We're all here to help, so when you get stuck, make sure you ask for help! Our office
is in the J/Atrium building on the 3rd floor, room J353D. We're also available through
email.
Again, welcome to FYE. We’re excited to be here, and we’re looking forward to making
your first year of computing the best year ever.
The FYE Team
FYE Learning Outcomes by Course
CSE1300
This course is an introductory computing principles course. Instruction centers on an overview of the history, scope, and impact of computing as well as critical, algorithmic and computational thinking on problem decomposition and fundamental programming concepts.
Students who complete this course successfully will be able to:
- Synthesize how software has influenced innovations in other fields and helped people, organizations, and society to solve problems.
- Use computational thinking to ask questions and find different ways to solve problems.
- Design a solution to a problem as an algorithm and convert the algorithm into a procedural program.
- Describe the differences between computing disciplines and identify possible job opportunities in the computing field.
CSE1321
This course provides an introduction to computing with a focus on programming. Instruction centers on an overview of programming, problem-solving, and algorithm development. Particular topics include object-oriented design/programming, primitive data types, arithmetic and logical operators, selection and repetition structures, interactive user input, exception handling, using and designing basic classes, single-dimensional data structures with searching and sorting, and arrays. Programming assignments focus on techniques of good programming style including proper documentation. The student is taught to efficiently design, code, and debug problem solutions and the relationship between correct code and security.
Students who complete this course successfully will be able to:
- Accurately demonstrate the use of primitive data types and arithmetic expressions in programs.
- Apply basic programming structures in algorithmic solutions, including logical expressions, selection, and repetition.
- Solve programming problems that include 1D and 2D array creation, handling, searching, and sorting.
- Read and interpret simple programs written in multiple programming languages and understand what these programs do.
- Define methods and classes in program solutions.
CSE1321L
Students who complete this course successfully will be able to:
- Demonstrate the knowledge of the basic syntax of a specific programming language.
- Follow specified style guidelines in writing programs, and understand how the guidelines enhance readability and promote correctness in programs.
- Compile, debug, run, and test programs.
- Use primitive data types, data structures, and arithmetic expressions in programs.
- Apply selection and repetition structures in program solutions.
- Define and use methods and classes in program solutions.
- Create programming solutions, which include 1D and 2D array handling, searching, and sorting.
CSE1322
The second course in computing provides coverage of more advanced topics of object-oriented programming. This includes the use of static variables and classes, non-linear data structures, inheritance and polymorphism, file input/output, exception handling, recursion, and parameterized types. Elementary data structures (linked lists, stacks, and queues) are introduced to solve application problems. Graphical user interfaces, parallel programming, database programming, and event-driven programming are also introduced. Students will use good programming style including proper documentation.
Students who complete this course successfully will be able to:
- Demonstrate more advanced skills in programming, including the ability to handle multi- dimensional arrays
- Demonstrate file handling techniques and exception code.
- Recognize the difference between iterative and recursive approaches.
- Demonstrate the ability to use linked lists, stacks, and queues in problem solving.
- Compare "program driven" and "event-driven" approaches to user interaction, including the relationship between event-driven programs and Graphical User Interfaces
- Discuss principles of concurrency and parallelism.
CSE1322L
Students who complete this course successfully will be able to:
- Develop correct, secure, reasonably efficient and well-documented programs.
- Compile, test, debug, and run programs.
- Demonstrate more advanced skills in programming, including the ability to handle multi-dimensional arrays and inherited classes.
- Demonstrate file handling techniques and exception code in a program
- Demonstrate the ability to use linked lists, stacks, and queues in problem solutions.
- Implement simple algorithms in sequential and parallel environments.