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.

Contact

Department of Math and Computer Science

mcschair@ltu.edu

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

» Curriculum Documents

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

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

SSC Elective

Course not found.

SSC 2XX3

3

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*

4

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 (1st of 2)

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

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 Math

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

MCS2523

3

LLT Elective

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

LLT2xx3

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

Course not found.

BIO/PHY/CHM/

GLG/PSC 

xxx3

3

Natural Sciences Lab Elective

Course not found.

BIO/PHY/

CHM/ PSC

xxx1

1

Intro to Data Science

Course not found.

MCS2403

3

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:

15

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

MCS3653

3

Computer Architecture and Assembly

Course not found.

MCS3663

3

General Elective

Course not found.

GENxxx3

3

Natural Sciences Elective 2

Course not found.

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 (2nd of 2)

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:

16

Fall Semester

Course Name

Course #

Credits

LLT/PSY Junior/Senior Elective

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.

LLT/PSY 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

Course not found.

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

Course not found.

MCS4843

3

Ethics of Computation
Survey ethical theories, and investigate the ethical implications of modern computing technology for professionals, researchers, and society at large. Using case studies drawn from contemporary journalism and the academic literature, we will discuss topics such as intellectual property, safety, security, privacy, and artificial intelligence.

SSC 3743

3

Junior/Senior MCS Elective

Course not found.

MCS 3/4xx3

3

Web Server Programming

Prerequisite: Permission of department chair Introduction to the Web-server basis; Web authoring using HTML; advanced Web authoring with dynamic HTML, XML; JavaScript programming; CGI programming in C, C++ and PERL. Introduction to ASP to the middle tier. Lecture 3 hrs.

MCS5013

3

Total Credits:

15

» Computer Science Concentrations

Computer Science – Concentration in Artificial Intelligence
Bachelor of Science
Computer Science – Concentration in Business Software Development
Bachelor of Science
Design and develop the applications that have become the backbone of international business.
Computer Science – Concentration in Cybersecurity
Bachelor of Science
Computer Science – Concentration in Game Software Development
Bachelor of Science
Learn the tools to become experienced and adaptable programmers and leverage your creativity to create magical moments in video games.
Computer Science – Concentration in Scientific Software Development
Bachelor of Science
Computer Science – Concentration in Software Engineering
Bachelor of Science

» Integrated Master’s Bachelor’s Programs

Earn your Master degree and Bachelor degree in five years!

Computer Science – Concentration in Artificial Intelligence
Integrated Bachelor’s-Master’s
Computer Science – Concentration in Cybersecurity
Integrated Bachelor’s-Master’s
Computer Science – Concentration in Scientific Software Development
Integrated Bachelor’s-Master’s

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