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

Getting Started

Welcome to CCSE's First-Year Experience (FYE)!  If you're reading this, you're probably either in CSE 1300, CSE 1321 or CSE 1322.  This page is here to get you started and is intentionally minimalistic.  The FYE website serves as a central repository for just about everything in this course, so make sure you explore it thoroughly!

    • If you're taking a lab (CSE 1321L or CSE 1322L), make sure you're taking the correct languageLabs are language specific and all lab assignments/exams must be completed in the specfic language of your lab.  Students from the Engineering College (SPCEET) are required to take C++.  Computer Science and Information Technology majors historically take Java, and Software Engineering and Game Development majors historically take C#.  Other majors should ask their advisors.  If you're in the wrong lab and don't know how to switch, contact your advisor. Be careful - don't drop your lecture if you drop your lab.  You can see the language of your lab by looking at the comments section of the Dynamic Schedule.
    • For online courses, you should be able to log into D2L.  Go ahead and log in.
    • Buy a webcam if you do not already have one equipped on your computer or laptop.
    • The expected workload of these courses is between 6-10 hours per week for a 16-week period.  For summer courses, you can expect to double that.  Make sure you have (scheduled) time to complete the course.
    • Find a backup Internet connection - which is critical for exam days!  Some set up their phone as a "hotspot" while others hit the local coffee shop.  You only have 2 hours for an exam, so think about this ahead of time.
    • You likely have a different lecture professor and lab instructor.  Find out who both of them are and what their contact information is - which should be found in D2L.
    • Install an IDE (Integrated Development Environment) Right now, we're using Visual Studio for C++ and C#, and IntelliJ for Java.
    • Explore this website - and pay special attention to the Resources page.  Understand that we have tutoring, office hours, advising and so on.  We also have additional help there.
    • Read the syllabus and look at our Academic Policies.  We have a really interesting Final Exam policy that you might like.
    • Get familiar with the tech.
      • Gradescope is how you'll submit your assignments and labs.  You won't be able to log in until after Drop/Add week is over, at which point you'll receive an email from the system.
      • D2L is what we use as the "shell" for the course.  You should be able to log into that if you're enrolled in the class.  You should see a syllabus quiz there, so complete that.
      • Online exams use Respondus and Lockdown Browser, so watch this 2-minute video.
      • Some of you will be using GitHub, which is place to store and manage your code (called a repository).  Where applicable, you'll find out more about this later. 
    • Practice coding; you'll start to see patterns. Yes, we have a practice bank.  Becoming a good programmer is like becoming a good piano player.  You can't just watch a teacher play, you have to play the instrument yourself.  Practice builds confidence for exams as well.
    • Check your email.  We send you things and you need to know about them.
    • Start assignments early.  Assignments are easier at the beginning of the semester than the end of the semester -  becoming progressively harder.  You'll have a higher shot at success if you start early.
    • Ask questions.  If you get stuck, ask questions.  A rule of thumb is if you can't make even small progress in about 30-45 minutes, you should ask for help.
    • Don't cheat. If things go well, you're going to graduate in 4 or 5 years.  Chances are high that you'll have a technical job interview where they ask you to write code.  If you didn't learn what you needed to in these classes, this will be a highly embarrassing time for you.  We want you to get that high-paying job!
    • Learn all you can and master the content to the point you can teach others.  If you know the content and can teach others, consider becoming a Teaching Assistant (TA) here in the College of Computing and Software Engineering!

FYE Learning Outcomes by Course

  • 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.
  • 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.
  • 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.
  • 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.
  • 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.

Registration Courses for CSE 1321/L and CSE 1322/L

Welcome to the registration portal for CSE 1321/L and CSE 1322/L courses at the College of Computing and Software Engineering (CCSE). We are thrilled to invite you to embark on a transformative academic journey that combines innovative learning with practical experiences. Get to know the essential information and step-by-step guidance you need to successfully register for these courses. Discover the exciting world of computer science, guided by expert faculty and a supportive learning environment.

registration