The campus will remain closed until 12 noon Thursday, 02/13/25. Students should log into Canvas for specific class information from their instructors. Please contact event organizers for information on specific activities. Normal operations will resume at 12pm on Thursday.

Computer Science – Concentration in Software Engineering

Bachelor of Science

Home » All Programs » Computer Science – Concentration in Software Engineering

» Program Overview

Write the code that will unleash the full power and potential of the computer.

Through a systematic process, software developers design, create, and assess the programs that enable almost every human endeavor, mastering the sophisticated languages that form the common indispensable tongue of the technological era.

Why LTU?

  • Experience hands-on learning to develop innovative solutions to real-world problems using advanced technology and software
  • Focus on technical communication skills prepares students for rigors of programming jobs.
  • Participate in course-based research experiences, gaining practical skills and knowledge that prepare you for success in today’s technology-driven world.

» Curriculum

Fall Semester

Course Name

Course #

Credits

College Composition
College Composition develops students’ acquisition of the fundamental principles of academic writing. This course focuses on the development of writing thesis statements and main arguments, topic sentences, transitional words and phrases, supporting paragraphs, use of evidence, essay organization, and research skills. Extensive writing and research practice is required.

COM1103

3

Foundations of CS
An overview of computer science for CS and non-CS majors with the overarching objective to develop a computational mindset. For CS majors, to gain an appreciation of the relevance of the various computing topics and interrelationships for future courses. For non-CS majors, to provide the necessary technological background to appreciate and integrate into today’s technical society.

MCS1243

3

Precalculus
Quadratic equations, functions and graphs, systems of equations, inequalities, logarithms, trigonometric functions, identities, equations. No credit after completion of MCS1224 or MCS1414.

MCS1074

4

Engaging Ancient Texts
A historical survey that develops students’ abilities to critically engage texts of the ancient global world, placing an emphasis on the way these texts reflect their context and human experience. Readings may draw from philosophy, history, literature, visual art, and more. Class activities include reading of primary sources, seminar discussion, and writing in various genres. May be taken concurrently with COM 1103.

HUM1213

3

Total Credits:

13

Spring Semester

Course Name

Course #

Credits

Engaging Modern Texts

A historical survey that develops students’ abilities to engage texts of the modern global world, placing an emphasis on the way these texts reflect their context and human experience. Readings may draw from philosophy, history, literature, visual art, photography, film, digital media, and more. Class activities include reading of primary sources, seminar discussion, and writing in various genres. May be taken concurrently with COM 1103.

HUM1223

3

LLT Elective

LLT2XX3

3

Calculus 1
Topics include, limits and continuity, differentiation of algebraic and transcendental functions, mean value theorem, applications of differentiation, anti-derivatives, indefinite integrals, inverse trigonometric functions, substitutions, definite integrals, the Fundamental Theorem of Calculus, applications of integration. Applications will be emphasized. In addition to regular class meetings, all students are required to participate in calculus lab sessions. The schedule, frequency, and modality of these labs may vary by section. Refer to the class schedule and course syllabus for details.

MCS1414

4

OR

Survey of Calculus
Must have placement. Limits and continuity, differentiation, curve sketching, applications of differentiation, integration, methods and applications of integration, multivariable calculus. No credit after completion of MCS1414. Lecture: 4 hrs

MCS1224

Computer Science 1
Introduction to programming with C++. Binary, two’s complement, decimal, hex, and octal representations. Variable types. Simple, iterative, and conditional statements. Procedure and functions with parameters by value and reference with or without a returning value. Arrays and vectors, multidimensional arrays, bubble and selection sorts, linear and binary search. Pointer and dynamic memory allocation, character and C-strings, file input/output (sequential). Classes, friends, array of objects, and operators’ overloading. Inheritance, polymorphism, virtual function, and recursion.

MCS1514

4

Coding Club
This one credit course will focus on programming languages such as Scratch, Python, Javascript, Ruby, R, PHP, C# or Matlab. Students will be expected to work in groups on coding projects that will focus on syntax and semantics with application to a specific language.

MCS1111

1

MCS Seminar
Each Spring, the faculty in Mathematics and Computer Science will provide students with an overview of the research they are working on. This will provide students with the opportunity gain critical exposure to research ideas early on in their academic careers. Each week a different faculty member will host the meeting to allow students to ask questions and to learn what is current in the field of math and computer science. Meetings will be hosted virtually, via Zoom.

MCS2111

1

Total Credits:

16

Fall Semester

Course Name

Course #

Credits

Statistics
This course covers descriptive statistics, probability, and probability distributions with an emphasis on statistical inference such as confidence intervals, hypothesis testing, correlation and regression, chi-square tests, t-and F-distributions, and selected nonparametric tests.

MCS2124

4

Java
Introduction to JAVA; comparing Java and C++, Java building elements; control structures, methods, object-oriented programming, arrays and strings, inheritance, graphics programming, applets, multithreading and multimedia.

MCS2603

3

Computer Science 2
Records, advanced file input/output (random access), dynamic memory allocation. Static and dynamic implementation of stacks, linked lists (ordered and unordered), queue (regular and priority), circular queues. Selection and insertion sort, binary search. Lecture 3 hrs., Lab 1hr.

MCS2514

4

Discrete Mathematics

Number Theory, review of induction and recursion, advanced counting, equivalence, partial ordering, graphs, trees.

MCS2523

3

SSC Elective

SSC2XX3

3

Total Credits:

17

Spring Semester

Course Name

Course #

Credits

Data Structures
Analysis of algorithms, Big Oh notation, asymptotic behavior. Advanced sorting (heapsort, quicksort), external sorting. Binary, multiway, and AVL trees. Lecture 4 hrs.

MCS2534

4

Software Engineering 1
This course is a brief overview of software engineering topics including software development models, requirements, software design & implementation, software debugging & testing, software maintenance, software quality & metrics, and software project management. Focused in depth learning goals include system modelling & analysis tools, model-based design, coding standards, IDE tools, version control systems, and the introduction of agile software development methodologies. In addition to theories, students will practice in the development of a long-running software project applying & utilizing software engineering techniques & tools covered in class.

MCS3643

3

Natural Sciences Elective 1
BIO/PHY/CHM/GLG/PSC

XXX3

3

Natural Sciences Lab Elective
BIO/PHY/CHM/GLG/PSC

XXX1

1

Intro to Data Science
Course description not found.

MCS2403

3

Total Credits:

14

Fall Semester

Course Name

Course #

Credits

Technical and Prof. Communication
Training in a systematic method for producing effective technical communication, written reports, letters, and memos as well as oral presentations. Lecture 3 hours. 3 hours credit

COM2103

3

Software Engineering 2
This course continues from Software Engineering I and covers overall software engineering topics especially for developing large software using modelling languages and object oriented design methodologies. In-depth learning topics include UML (Unified Modelling Language) & tools, Object Oriented Design (OOD) methodologies, model-based design, software reuse, and comparison of various version control systems. Students will gain practical experience in the development of a larger long-running software project with a focus on object oriented programming language utilizing UML diagrams such as Use-Case, State, Sequence, Class, and Component diagrams as well as OOD methodologies

MCS3643

3

Computer Architecture and Assembly
Course description not found.

MCS3663

3

General Elective

XXX3

3

Natural Sciences Elective 2
BIO/PHY/CHM/GLG/PSC

XXX3

3

Total Credits:

15

Spring Semester

Course Name

Course #

Credits

Software Architecture
Software Architecture course teaches the principles and concepts involved in the design and development of large-scale software systems. Various architectural styles such as layered, event-driven, service-oriented, cloud, etc are covered. How to design, select, and use appropriate reusable design patterns/core assets is also introduced. Object-oriented design & programming skills are reviewed in depth. Model-Based Design approaches are also covered in depth. Students will gain practical experience in the development of a software project by selecting/reusing appropriate architectural style and software design patterns. Students will also gain real-world model-based design and code generation experiences using tools such as SIMULINK.

MCS3513

3

Intro. to Database Systems
Organization of database systems. Data definition, retrieval, manipulation. Relational databases, SQL. Practice using standard databases.

MCS2543

3

Operating Systems
This course focuses on the core concepts that underlie contemporary operating systems. It introduces the structure and responsibilities of operating systems, discusses the cutting-edge advances in computing that are redefining operating systems, and addresses design considerations, such as performance, fault tolerance, security, modularity, and cost. Topics include Operating System Architecture, Process Concepts and Management, Thread Concepts, Asynchronous Concurrent Execution, Concurrent Programming, Deadlock and Indefinite Postponement, Processor Scheduling Algorithms, Real Memory Organization and Management, Virtual Memory Organization and Management, Disk Performance Optimization, RAID, File Systems, and Case Studies.

MCS4663

3

Topics in MCS
Topics of current interest in mathematics and computer science. (May be taken more than once if the topic is different.)

MCS4993

3

Applied Statistical Methods
Students will review the fundamentals of probability theory and then move to distribution theory and parameter estimation techniques to create a bases for understanding the application of statistical tests. Topics covered will include hypothesis testing and model building strategies, assumption checking such as checking for normality and outliers, visualization methods such as scatterplots and box plots, model diagnostics such as serial correlation and normality. We will use free statistical package R to do most problems in class and in homework. Students do not need to know R prior to this class. Basic R programming will be taught in class and more complex codes for simulations and other application.

MCS3123

3

Coding Club
This one credit course will focus on programming languages such as Scratch, Python, Javascript, Ruby, R, PHP, C# or Matlab. Students will be expected to work in groups on coding projects that will focus on syntax and semantics with application to a specific language.

MCS1111

1

Total Credits:

15

Fall Semester

Course Name

Course #

Credits

LLT Jr./Sr. Elective

3/4XX3

3

Software Quality and Proj. Mgmt.

This course presents theory and practice for testing software and assuring its quality. Topics include introduction to software quality, software standards, software reviews and inspections, software verification & validation, software quality management, software quality assurance, software measurements & metrics, software security, and formal/informal proofs of program correctness. Topics related to testing include stages of testing, types of testing, testing techniques, designing test-cases, test coverage analysis, automated testing tools, and performance testing tools. This course will provide students with practical experience using a different testing techniques such as Unit Testing, User Interface Testing, Continuous Integration, and Test-Driven Development (TDD) for software projects.
Students gain hands-on experience in planning and managing software development through real-world projects. By implementing a term project, students will learn how software projects are planned, developed, monitored, and controlled. This course will cover in-depth software project management topics such as project planning, estimation, scheduling, tracking, risk management, configuration and change management, and version management. This course will strongly emphasize collaboration, continuous integration, and continuous delivery using agile software development methodologies. Agile framework and tools such as SCRUM, XP, Kanban, and/or JIRA are covered and applied to the term project.

MCS4513

3

Computer Networks
Transmission media, local asynchronous communication (RS232) long distance communication, LAN Technologies, network topologies, hardware addressing, LAN wiring, physical topologies, interface hardware, extending LANs, fiber modems repeaters, bridges, and switches, WAN topologies and routing. Lecture 3 hrs.

MCS4613

3

Theory of Computation
Beginning course on theory of computation. Regular languages, finite automata, context-free language, Turing Machine, Chomsky hierarchy, applications to parsing. Lecture 3 hrs.

MCS4653

3

Senior Project
The senior project is an intensive study of problems in either Computer Science or Applied Mathematics. Problems in CS can include software system development where students participate in specifying, designing, developing, coding, and testing complex software systems. Problems in AM can include the development and implementation of mathematical and computational models to address problems of interest.

MCS4833

3

Pathways Capstone Lab
Pathways 4001 is the capstone course for CoAS majors’ Pathways Program. The course meets for 4 half-day Saturday sessions fall term. The course’s work requirements are satisfied throughout students’ final year under the supervision of the Pathways Program Director. Requirements include: a) mentoring first-year CoAS majors in the Pathways 1001 course, b) participation in an extra- or co- curricular activity related to major research field, c) incorporation of leadership / ethics issues in senior thesis / capstone project.

COM4001

1

Total Credits:

16

Spring Semester

Course Name

Course #

Credits

Comparative Prog. Languages
This course will cover survey of the four various programming languages in the imperative, multiprogramming, functional and logical domains. An understanding of the fundamental design and language concepts provides the foundation for the critical examination and implementation of programming language paradigms from lexical and syntactical perspective.

MCS4643

3

Senior Project 2
Continuation of Senior Project for projects that cannot be completed in one semester.

MCS4843

3

Jr./Sr. Elective
SSC/PSY

3/4XX3

3

MCS Jr./Sr. Elective

3/4XX3

3

General Jr./Sr. Elective

3/4XX3

3

Total Credits:

15

» Document Viewer

Use Your Cell Phone as a Document Camera in Zoom

  • What you will need to have and do
  • Download the mobile Zoom app (either App Store or Google Play)
  • Have your phone plugged in
  • Set up video stand phone holder

From Computer

Log in and start your Zoom session with participants

From Phone

  • Start the Zoom session on your phone app (suggest setting your phone to “Do not disturb” since your phone screen will be seen in Zoom)
  • Type in the Meeting ID and Join
  • Do not use phone audio option to avoid feedback
  • Select “share content” and “screen” to share your cell phone’s screen in your Zoom session
  • Select “start broadcast” from Zoom app. The home screen of your cell phone is now being shared with your participants.

To use your cell phone as a makeshift document camera

  • Open (swipe to switch apps) and select the camera app on your phone
  • Start in photo mode and aim the camera at whatever materials you would like to share
  • This is where you will have to position what you want to share to get the best view – but you will see ‘how you are doing’ in the main Zoom session.