Student Capabilities
The following list gives an overview of the skills Computer Science students on the BSc Computer Science honours degree programme will be proficient in on successfully concluding their second year. The students develop their abilities through lectures, workshops, seminars and coursework.
If you are interested in offering a summer job please consult the Lancaster University Careers Web Site.
| Area | Skills | Description of Course Content |
|---|---|---|
| Programming | Java (Part I) |
Java as programming language; the World Wide Web. Declaring objects, Java resources via the World Wide Web, the Java API. Using variables and basic Java data types, handling strings and associated string operations, making decisions through conditional statements (if and switch statements), repeating actions through loops (for and while loops), declaring and handling arrays and linked lists |
| Object-oriented Programming (Part I) |
Objects and inheritance, class variables and methods, subclasses. Developing graphical user interfaces through Swing and the Abstract Windowing Toolkit (AWT), handling user events. Using Applets to develop interactive Web programs. Handling errors in a program through throwing and catching exceptions. Reading and writing files. More advanced topics such as creating threads and developing signed Applets | |
| Web-Technologies & Languages (Part I) |
Practical HTML; CSS style sheets; XLM; XHTML; Javascript; Servlets; SOAP. Web services platforms: Tomcat and Axis. | |
| C Programming (*Part II Alternating Years) |
Basic C programming. Concurrent programming: motivation; mutual exclusion and condition synchronisation; alternative primitives (e.g. semaphores, spin-locks, monitors, path expressions, message passing); case studies in Java and Unix/C. | |
| Software Engineering | Software Engineering Principles (Part I) |
Software engineering principles and activities comprising a software development project. Software life-cycle, different software process models and approaches to managing software projects |
| Software quality and testing, professional issues (Part II) |
Verification and validation techniques and approaches to manage the overall verification and validation process. Component testing Static approaches to program verification. Proofs of correctness. Safety Critical Systems and Reliability. IT and Security. IT and Privacy. Automation and the Workplace | |
| Requirements Engineering, Formal Specification (*Part II Alternating Years) |
Theory and practice of requirements engineering in the context of the software life-cycle. The role of formal specification, developing specifications in Z; Performing basic proofs | |
| Software Design - Group Work (Part II) |
Software design, reuse, design patterns, and modelling using the UML. | |
| Database Systems | Relational Databases in theory and praxis (*Part II Alternating Years) |
Structured Query Language (SQL), Entity-Relationship (ER) model, Three schema architecture and relational schema definitions in SQL, Relational database access from Java |
| Systems Architectures | Computer Architecture (Part I) |
Information representation and manipulation using logic gates. Controlling computers using microcode. Language compilation and interpretation. Communication with the outside world: input/output devices and techniques |
| Machine and assembly language programming (Part I) |
Introduction to machine and assembly language (incl. some practical experience of machine architecture) | |
| Computational Fundamentals (Part I) |
Basic analytical tools for analysing problems and designing solutions | |
| Networking and Systems Issues (*Part II Alternating Years) |
Network Architecture (layering and protocols), Internetworking, Operating and file system issues (processes and the process state model, memory management) | |
| Operating Systems (*Part II Alternating Years) |
Internal OS structure; file management; device drivers; memory management; process management: scheduling and threads, process management in Unix; OSs for multiprocessors; parallel I/O; case studies |
All students have participated in a group project in which they had to design and implement a system in a team. Apart from development skills (including UML modelling, JAVA programming, database programming) students will also have learned how to managed a project, how to work in a group and how to interact in such an environment. Social skills (such as conflict resolution) are also improved by these projects.
Additionally to the above set of expertise some students will also be familiar with the following. If you are a need of any of the following please make sure that the students have successfully participated in the respective courses.
| Area | Description |
|---|---|
| Networking (*Part II Alternating Years) |
Internetworking; bridges and gateways; WANs; ISDN and B-ISDN; ATM; frame relay; outline of DQDB and FDDI; switch design; protocol issues for gigabit networks; security. Reliable and high performance networks, Internetworking, telecommunication systems, Wireless and Mobile systems, Integrated Services networks, ATM, Advances in wide area data networking, Switching and network performance, Gigabit networking, Security in communication systems, and Network management Students should have basic practical skills as well |
| Human Computer Interaction (*Part II Alternating Years) |
Principles, theories and methods of human-computer interaction, to show importance of human aspects of system design. Supplemented with practical applications of the principles learnt in small but real system design |
| Distributed Systems (*Part II Alternating Years) |
Fundamental principles of modern distributed systems including the client-server model, RPC/ RMI, clock synchronisation, etc. Enabling to take into account key non-functional properties such as scalability, dependability and security in the design. The practical stream covers the practical development of distributed systems using Java RMI and J2EE and also associated tools and techniques (e.g. Java Messaging Service Java Groups, Aspect J, EJB) that can be employed. |
Members of staff will be happy to provide references for students they know.
If you require any specialist knowledge please get in touch with:
- Mrs. Cath Ewan : cath add @comp.lancs.ac.uk
- Dr. Andreas Mauthe : andreas add @comp.lancs.ac.uk
