Software Engineering bachelor`s degree Program

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software that is, the application of engineering to software. Therefore, developing and maintaining reliable and efficient software systems is the primary concern to software engineering professionals. Software systems should be affordable to develop and maintain and satisfy all the requirements that customers have defined. More recently, it has evolved in response to factors such as the growing impact of large and expensive software systems in a wide range of situations and the increased importance of software in safety-critical applications. Software engineering is different in character from other engineering disciplines due to both the intangible nature of software and the discontinuous nature of software operation. It seeks to integrate the principles of mathematics and computer science with the engineering practices developed for tangible, physical artifacts. Degree programs in computer science and in software engineering have many courses in common. Software engineering students learn more about software reliability and maintenance and focus more on techniques for developing and maintaining software that is correct from its inception. While CS students are likely to have heard of the importance of such techniques, the engineering knowledge and experience provided in SE programs go beyond what CS programs can provide. The importance of this fact is so great that students of SE should participate in the development of software to be used in earnest by others. SE students learn how to assess customer needs and develop usable software that meets those needs. Knowing how to provide genuinely useful and usable software is of paramount importance.

Software Engineering Program Objectives:

Graduates of the software engineering program at CCIT are expected, within a few years of graduation, to:
1. Have a sufficient understanding of the field of software engineering to be successfully employed, pursue graduate studies, or continue their professional education.
2. To solve diverse and unique problems in software design and development processes.
3. Be prepared for modern work environments where they apply and further develop their communication skills, teamwork capabilities, and time management, while committing to professional, ethical, legal, and societal considerations.

Software Engineering Student Outcomes:

Graduates of the program will have an ability to:
1. Identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics.
2. Apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors.
3. Communicate effectively with a range of audiences.
4. Recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts.
5. Function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives.
6. Develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions.
7. Acquire and apply new knowledge as needed, using appropriate learning strategies.
Number of students enrolled in all the college programs FALL 2021-2022

Semester 1    Semester 2    Semester 3    Semester 4    Semester 5    Semester 6    Semester 7    Semester 8   

Semester #1
CodeTitlePrequisitesCourse Material
BA101 Calculus 1 None
BA113 Physics None Course material
CS111 Introduction to Computers None Course material
IS171 Introduction to Information systems None Course material
LH135 English for Specific Purposes I (ESP I) None of LH130*
NC172 Fundamentals of Business None

Semester #2
CodeTitlePrequisitesCourse Material
BA102 Calculus 2 BA101 Course material
CS143 Introduction to Problem Solving and Programming CS111 Course material
EC134 Fundamentals of Electronics BA113 Course material
GM311 Introduction to Multimedia CS111
LH136 English for Specific Purposes II (ESP II) LH011
NC133 Communication Skills LH135

Semester #3
CodeTitlePrequisitesCourse Material
BA201 Calculus III BA102 Course material
BA203 Probability and Statistics BA102
BA216 Advanced Physics BA113
CE216 Digital Logic Design CS111 Course material
CS202 Discrete Structures CS111 Course material
CS243 Object Oriented Programming CS143 Course material

Semester #4
CodeTitlePrequisitesCourse Material
CE231 Introduction to Networks CS143
CE243 Intro. to Computer Architecture CE216
CS212 Data Structures and Algorithms CS243 Course material
CS244 Advanced Programming Applications CS243 Course material
IS273 Database Systems CS143 Course material
SE291 Introduction to Software Engineering CS243, IS171 Course material

Semester #5
CodeTitlePrequisitesCourse Material
BA304 Linear Algebra BA102
CS311 Theory of Computation CS202 Course material
CS333 Web Programming IS273 Course material
IT321 Professional Training in Programming I (.Net 1) None
SE391 Project Management SE291
SE392 Software Requirements and Specifications SE291

Semester #6
CodeTitlePrequisitesCourse Material
CS312 Computing Algorithms CS212 Course material
CS322 Operating Systems CS212, CE243 Course material
CS366 Introduction to Artificial Intelligence CS212, CS202 Course material
CS451 Human Computer Interaction SE291 Course material
IT322 Professional Training in Programming II (.Net 2) IT321
SE393 Principles of Software Architecture SE291 Course material

Semester #7
CodeTitlePrequisitesCourse Material
CS481 Computers & Society 96CR+
SE401 Project I GPA>=2.0 & 96 CR
SE491 Software Component Design SE291

Semester #8
CodeTitlePrequisitesCourse Material
CS421 Computer System Security CS322, CE231Course material
SE402 Project II SE401
SE492 Software Verification SE291 Course material

Elective courses
CS427Embedded Systems Programming CS143, CE243
CS428Cloud Computing CS322, CE231
SE493Software Quality Assurance SE291
SE494Formal Methods in Software Engineering SE291

Elective courses
CS301Numerical Methods BA304, CS143
CS305System Modeling and Simulation BA203, CS243
CS311Theory of Computation CS202
CS321Systems Programming CS243, CE243
CS352Computer Graphics CS212
CS443Game Programming CS243, CS352
CS445Structure of Programming Languages CS311, CS321